added wxTLWBase::GetDefaultSize() to avoid creating windows with default size unsuitable for the current display size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
706f14210b
commit
0c089c0826
@ -152,9 +152,10 @@ protected:
|
||||
|
||||
// Get the default size for the new window if no explicit size given. If
|
||||
// there are better default sizes then these can be changed, just as long
|
||||
// as they are not too small for TLWs.
|
||||
static int WidthDefault(int w) { return w == -1 ? 400 : w; }
|
||||
static int HeightDefault(int h) { return h == -1 ? 250 : h; }
|
||||
// as they are not too small for TLWs (and not larger than screen).
|
||||
static wxSize GetDefaultSize();
|
||||
static int WidthDefault(int w) { return w == -1 ? GetDefaultSize().x : w; }
|
||||
static int HeightDefault(int h) { return h == -1 ? GetDefaultSize().y : h; }
|
||||
|
||||
// the frame icon
|
||||
wxIconBundle m_icons;
|
||||
|
@ -125,6 +125,30 @@ wxSize wxTopLevelWindowBase::GetMaxSize() const
|
||||
return size;
|
||||
}
|
||||
|
||||
/* static */
|
||||
wxSize wxTopLevelWindowBase::GetDefaultSize()
|
||||
{
|
||||
wxSize size = wxGetClientDisplayRect().GetSize();
|
||||
|
||||
// create proportionally bigger windows on small screens
|
||||
if ( size.x >= 1024 )
|
||||
size.x = 400;
|
||||
else if ( size.x >= 800 )
|
||||
size.x = 300;
|
||||
else if ( size.x >= 320 )
|
||||
size.x = 240;
|
||||
|
||||
if ( size.y >= 768 )
|
||||
size.y = 250;
|
||||
else if ( size.y > 200 )
|
||||
{
|
||||
size.y *= 2;
|
||||
size.y /= 3;
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxTopLevelWindow size management: we exclude the areas taken by
|
||||
// menu/status/toolbars from the client area, so the client area is what's
|
||||
|
Loading…
Reference in New Issue
Block a user