]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/toplevel.cpp
a temporary hack to make testing wxTLW/Univ easier
[wxWidgets.git] / src / mgl / toplevel.cpp
index 4a098e2a7e1bd71a863fb6e9a751edd45c508ab1..1cf60d5e6f7469f68c4e6171f459de0b0a280cc1 100644 (file)
 
 #include "wx/defs.h"
 #include "wx/toplevel.h"
+#include "wx/app.h"
 
 // ----------------------------------------------------------------------------
 // idle system
 // ----------------------------------------------------------------------------
 
-extern void wxapp_install_idle_handler();
-extern bool g_isIdle;
 extern int g_openDialogs;
 
 // ----------------------------------------------------------------------------
@@ -45,12 +44,6 @@ extern int g_openDialogs;
     IMPLEMENT_DYNAMIC_CLASS(wxTopLevelWindow, wxWindow)
 #endif
 
-// ----------------------------------------------------------------------------
-// data
-// ----------------------------------------------------------------------------
-
-extern wxList wxPendingDelete;
-
 
 // ============================================================================
 // implementation
@@ -58,6 +51,7 @@ extern wxList wxPendingDelete;
 
 void wxTopLevelWindowMGL::Init()
 {
+    m_isShown = FALSE;
     m_isIconized = FALSE;
     m_isMaximized = FALSE;
     m_fsIsShowing = FALSE;
@@ -82,14 +76,14 @@ bool wxTopLevelWindowMGL::Create(wxWindow *parent,
         if ( size.y == -1 )
             size.y = sizeDpy.y / 5;
     }
+    
+    wxWindow::Create(parent, id, pos, sizeOrig, style, name);
 
     wxTopLevelWindows.Append(this);
 
     m_title = title;
-
-
-    if (m_parent) 
-        m_parent->AddChild(this);
+    
+    // FIXME_MGL -- should activate itself when shown!
 
     return TRUE;
 }
@@ -124,7 +118,7 @@ bool wxTopLevelWindowMGL::ShowFullScreen(bool show, long style)
         GetSize(&m_fsSaveFrame.width, &m_fsSaveFrame.height);
 
         if ( style & wxFULLSCREEN_NOCAPTION )
-            m_windowStyle &= !wxCAPTION;
+            m_windowStyle &= ~wxCAPTION;
         if ( style & wxFULLSCREEN_NOBORDER )
             m_windowStyle = wxSIMPLE_BORDER;
 
@@ -142,24 +136,33 @@ bool wxTopLevelWindowMGL::ShowFullScreen(bool show, long style)
     return TRUE;
 }
 
+bool wxTopLevelWindowMGL::Show(bool show)
+{
+    bool ret = wxTopLevelWindowBase::Show(show);
+    if ( ret && show )
+        SetFocus();
+    return ret;
+}
+
 void wxTopLevelWindowMGL::Maximize(bool maximize)
 {
     if ( maximize && !m_isMaximized )
     {
         int x, y, w, h;
         
+        m_isMaximized = TRUE;
+
         GetPosition(&m_savedFrame.x, &m_savedFrame.y);
         GetSize(&m_savedFrame.width, &m_savedFrame.height);
 
         wxClientDisplayRect(&x, &y, &w, &h);
         SetSize(x, y, w, h);
-        m_isMaximized = TRUE;
     }
     else if ( !maximize && m_isMaximized )
     {
+        m_isMaximized = FALSE;
         SetSize(m_savedFrame.x, m_savedFrame.y, 
                 m_savedFrame.width, m_savedFrame.height);
-        m_isMaximized = FALSE;
     }
 }
 
@@ -170,11 +173,11 @@ bool wxTopLevelWindowMGL::IsMaximized() const
 
 void wxTopLevelWindowMGL::Restore()
 {
-    if ( m_isIconized )
+    if ( IsIconized() )
     {
         Iconize(FALSE);
     }
-    if ( m_isMaximized )
+    if ( IsMaximized() )
     {
         Maximize(FALSE);
     }
@@ -182,7 +185,7 @@ void wxTopLevelWindowMGL::Restore()
 
 void wxTopLevelWindowMGL::Iconize(bool iconize)
 {
-    // FIXME_MGL
+    // FIXME_MGL - use wxDesktop for this
 }
 
 bool wxTopLevelWindowMGL::IsIconized() const