Set default size and position for top level windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
b3f4c57077
commit
6807396fdf
@ -62,7 +62,7 @@ void wxTopLevelWindowMGL::Init()
|
||||
bool wxTopLevelWindowMGL::Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxString& title,
|
||||
const wxPoint& pos,
|
||||
const wxPoint& posOrig,
|
||||
const wxSize& sizeOrig,
|
||||
long style,
|
||||
const wxString &name)
|
||||
@ -72,14 +72,34 @@ bool wxTopLevelWindowMGL::Create(wxWindow *parent,
|
||||
wxSize size = sizeOrig;
|
||||
if ( size.x == -1 || size.y == -1 )
|
||||
{
|
||||
wxSize sizeDpy = wxGetDisplaySize();
|
||||
wxSize sizeDefault = GetDefaultSize();
|
||||
if ( size.x == -1 )
|
||||
size.x = sizeDpy.x / 3;
|
||||
size.x = sizeDefault.x;
|
||||
if ( size.y == -1 )
|
||||
size.y = sizeDpy.y / 5;
|
||||
size.y = sizeDefault.y;
|
||||
}
|
||||
|
||||
wxWindow::Create(NULL, id, pos, sizeOrig, style, name);
|
||||
// for default positioning, centre the first top level window and
|
||||
// cascade any addtional ones from there.
|
||||
wxPoint pos = posOrig;
|
||||
if ( pos.x == -1 || pos.y == -1 )
|
||||
{
|
||||
wxSize sizeDisplay = wxGetDisplaySize();
|
||||
static wxPoint nextPos((sizeDisplay.x - size.x) / 2,
|
||||
(sizeDisplay.y - size.y) / 2);
|
||||
|
||||
if ( pos.x == -1 )
|
||||
pos.x = nextPos.x;
|
||||
if ( pos.y == -1 )
|
||||
pos.y = nextPos.y;
|
||||
if ( pos.x + size.x > sizeDisplay.x || pos.y + size.y > sizeDisplay.y )
|
||||
pos = wxPoint();
|
||||
|
||||
const wxSize cascadeOffset(16, 20);
|
||||
nextPos = pos + cascadeOffset;
|
||||
}
|
||||
|
||||
wxWindow::Create(NULL, id, pos, size, style, name);
|
||||
SetParent(parent);
|
||||
if ( parent )
|
||||
parent->AddChild(this);
|
||||
|
Loading…
Reference in New Issue
Block a user