X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d9f12f3b9f997b6308faf336d5381be591b71f4..4c7852186d48a5b8f406462c2c3fa020f0a052bb:/src/mgl/toplevel.cpp diff --git a/src/mgl/toplevel.cpp b/src/mgl/toplevel.cpp index 4a098e2a7e..1cf60d5e6f 100644 --- a/src/mgl/toplevel.cpp +++ b/src/mgl/toplevel.cpp @@ -28,13 +28,12 @@ #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