- wxTopLevelWindows.Append(this);
-
- m_title = title;
-
-
- if (m_parent)
- m_parent->AddChild(this);
-
- return TRUE;
-}
-
-wxTopLevelWindowMGL::~wxTopLevelWindowMGL()
-{
- m_isBeingDeleted = TRUE;
+ // for default positioning, centre the first top level window and
+ // cascade any addtional ones from there.
+ wxPoint pos = posOrig;
+ if ( pos.x == wxDefaultCoord || pos.y == wxDefaultCoord )
+ {
+ wxSize sizeDisplay = wxGetDisplaySize();
+ static wxPoint nextPos((sizeDisplay.x - size.x) / 2,
+ (sizeDisplay.y - size.y) / 2);
+
+ if ( pos.x == wxDefaultCoord )
+ pos.x = nextPos.x;
+ if ( pos.y == wxDefaultCoord )
+ 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;
+ }