]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/toplevel.cpp
oops, fixed typo breaking iconv constness detection in the previous commit
[wxWidgets.git] / src / mgl / toplevel.cpp
index 1cf60d5e6f7469f68c4e6171f459de0b0a280cc1..d02dac8c3e8593fbb3859b35b4962a1f814893aa 100644 (file)
@@ -55,6 +55,7 @@ void wxTopLevelWindowMGL::Init()
     m_isIconized = FALSE;
     m_isMaximized = FALSE;
     m_fsIsShowing = FALSE;
     m_isIconized = FALSE;
     m_isMaximized = FALSE;
     m_fsIsShowing = FALSE;
+    m_sizeSet = FALSE;
 }
 
 bool wxTopLevelWindowMGL::Create(wxWindow *parent,
 }
 
 bool wxTopLevelWindowMGL::Create(wxWindow *parent,
@@ -77,13 +78,13 @@ bool wxTopLevelWindowMGL::Create(wxWindow *parent,
             size.y = sizeDpy.y / 5;
     }
     
             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);
 
     wxTopLevelWindows.Append(this);
-
     m_title = title;
     m_title = title;
-    
-    // FIXME_MGL -- should activate itself when shown!
 
     return TRUE;
 }
 
     return TRUE;
 }
@@ -139,8 +140,20 @@ bool wxTopLevelWindowMGL::ShowFullScreen(bool show, long style)
 bool wxTopLevelWindowMGL::Show(bool show)
 {
     bool ret = wxTopLevelWindowBase::Show(show);
 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();
         SetFocus();
+        // FIXME_MGL -- don't do this for popup windows?
     return ret;
 }
 
     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
 }
 
 bool wxTopLevelWindowMGL::IsIconized() const