X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/917afc7b81c6f806ea3d50b455f7c4e320ecd68f..a9249b2eb2a40d8c71f828669045c4ddaa8dc5ff:/src/mgl/toplevel.cpp?ds=sidebyside diff --git a/src/mgl/toplevel.cpp b/src/mgl/toplevel.cpp index 1cf60d5e6f..d02dac8c3e 100644 --- a/src/mgl/toplevel.cpp +++ b/src/mgl/toplevel.cpp @@ -55,6 +55,7 @@ void wxTopLevelWindowMGL::Init() m_isIconized = FALSE; m_isMaximized = FALSE; m_fsIsShowing = FALSE; + m_sizeSet = FALSE; } bool wxTopLevelWindowMGL::Create(wxWindow *parent, @@ -77,13 +78,13 @@ bool wxTopLevelWindowMGL::Create(wxWindow *parent, size.y = sizeDpy.y / 5; } - wxWindow::Create(parent, id, pos, sizeOrig, style, name); + wxWindow::Create(NULL, id, pos, sizeOrig, style, name); + SetParent(parent); + if ( parent ) + parent->AddChild(this); wxTopLevelWindows.Append(this); - m_title = title; - - // FIXME_MGL -- should activate itself when shown! return TRUE; } @@ -139,8 +140,20 @@ bool wxTopLevelWindowMGL::ShowFullScreen(bool show, long style) bool wxTopLevelWindowMGL::Show(bool show) { bool ret = wxTopLevelWindowBase::Show(show); - if ( ret && show ) + + // If this is the first time Show was called, send size event, + // so that the frame can adjust itself (think auto layout or single child) + if ( !m_sizeSet ) + { + m_sizeSet = TRUE; + wxSizeEvent event(GetSize(), GetId()); + event.SetEventObject(this); + GetEventHandler()->ProcessEvent(event); + } + + if ( ret && show && AcceptsFocus() ) SetFocus(); + // FIXME_MGL -- don't do this for popup windows? return ret; } @@ -183,9 +196,11 @@ void wxTopLevelWindowMGL::Restore() } } -void wxTopLevelWindowMGL::Iconize(bool iconize) +void wxTopLevelWindowMGL::Iconize(bool WXUNUSED(iconize)) { - // FIXME_MGL - use wxDesktop for this + wxFAIL_MSG(wxT("Iconize not supported under wxMGL")); + // FIXME_MGL - Iconize is not supported in fullscreen mode. + // It will be supported in windowed mode (if ever implemented in MGL...) } bool wxTopLevelWindowMGL::IsIconized() const