X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4745f3c6ae5921a7f4242c479f60dc9a26347b7e..69659fd770f615210efac4b4fa741b3ad6223616:/src/common/toplvcmn.cpp diff --git a/src/common/toplvcmn.cpp b/src/common/toplvcmn.cpp index 428c54dac5..77cbec0582 100644 --- a/src/common/toplvcmn.cpp +++ b/src/common/toplvcmn.cpp @@ -40,8 +40,11 @@ BEGIN_EVENT_TABLE(wxTopLevelWindowBase, wxWindow) EVT_CLOSE(wxTopLevelWindowBase::OnCloseWindow) EVT_SIZE(wxTopLevelWindowBase::OnSize) EVT_WINDOW_DESTROY(wxTopLevelWindowBase::OnChildDestroy) + WX_EVENT_TABLE_CONTROL_CONTAINER(wxTopLevelWindowBase) END_EVENT_TABLE() +WX_DELEGATE_TO_CONTROL_CONTAINER(wxTopLevelWindowBase, wxWindow) + // ============================================================================ // implementation // ============================================================================ @@ -58,10 +61,14 @@ wxTopLevelWindowBase::wxTopLevelWindowBase() m_isShown = false; m_winDefault = NULL; m_winTmpDefault = NULL; + + WX_INIT_CONTROL_CONTAINER(); } wxTopLevelWindowBase::~wxTopLevelWindowBase() { + m_winDefault = m_winTmpDefault = NULL; + // don't let wxTheApp keep any stale pointers to us if ( wxTheApp && wxTheApp->GetTopWindow() == this ) wxTheApp->SetTopWindow(NULL); @@ -143,29 +150,12 @@ bool wxTopLevelWindowBase::IsLastBeforeExit() const void wxTopLevelWindowBase::SetMinSize(const wxSize& minSize) { - SetSizeHints( minSize.x, minSize.y, GetMaxWidth(), GetMaxHeight() ); + SetSizeHints(minSize, GetMaxSize()); } void wxTopLevelWindowBase::SetMaxSize(const wxSize& maxSize) { - SetSizeHints( GetMinWidth(), GetMinHeight(), maxSize.x, maxSize.y ); -} - -// set the min/max size of the window -void wxTopLevelWindowBase::DoSetSizeHints(int minW, int minH, - int maxW, int maxH, - int WXUNUSED(incW), int WXUNUSED(incH)) -{ - // setting min width greater than max width leads to infinite loops under - // X11 and generally doesn't make any sense, so don't allow it - wxCHECK_RET( (minW == wxDefaultCoord || maxW == wxDefaultCoord || minW <= maxW) && - (minH == wxDefaultCoord || maxH == wxDefaultCoord || minH <= maxH), - _T("min width/height must be less than max width/height!") ); - - m_minWidth = minW; - m_maxWidth = maxW; - m_minHeight = minH; - m_maxHeight = maxH; + SetSizeHints(GetMinSize(), maxSize); } void wxTopLevelWindowBase::GetRectForTopLevelChildren(int *x, int *y, int *w, int *h) @@ -429,14 +419,3 @@ void wxTopLevelWindowBase::RequestUserAttention(int WXUNUSED(flags)) // it's probably better than do nothing, isn't it? Raise(); } - -void wxTopLevelWindowBase::RemoveChild(wxWindowBase *child) -{ - if ( child == m_winDefault ) - m_winDefault = NULL; - - if ( child == m_winTmpDefault ) - m_winTmpDefault = NULL; - - wxWindow::RemoveChild(child); -}