]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/frame.cpp
added wxUSE_STDPATHS
[wxWidgets.git] / src / msw / frame.cpp
index edc5c5c22c5d5e3d2b39cb0ae5f8b23896069c78..4d0045e87871b8e9450edd0c2aefc6276e1935b3 100644 (file)
@@ -169,15 +169,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
 
 void wxFrame::Init()
 {
+#if wxUSE_MENUS
+    m_hMenu = NULL;
+#endif // wxUSE_MENUS
+
 #if wxUSE_TOOLTIPS
     m_hwndToolTip = 0;
 #endif
 
-    // Data to save/restore when calling ShowFullScreen
-    m_fsStatusBarFields = 0;
-    m_fsStatusBarHeight = 0;
-    m_fsToolBarHeight = 0;
-
     m_wasMinimized = false;
 }
 
@@ -192,7 +191,7 @@ bool wxFrame::Create(wxWindow *parent,
     if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return false;
 
-    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
+    SetOwnBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
 
 #if defined(__SMARTPHONE__) && defined(__WXWINCE__)
     SetLeftMenu(wxID_EXIT, _("Done"));
@@ -420,7 +419,7 @@ void wxFrame::InternalSetMenuBar()
 // Responds to colour changes, and passes event on to children.
 void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
-    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
+    SetOwnBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
     Refresh();
 
 #if wxUSE_STATUSBAR
@@ -439,92 +438,75 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
 // Pass true to show full screen, false to restore.
 bool wxFrame::ShowFullScreen(bool show, long style)
 {
+    // TODO-CE: add support for CE
+#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
     if ( IsFullScreen() == show )
         return false;
 
     if (show)
     {
+        // zap the toolbar, menubar, and statusbar if needed
+        //
+        // TODO: hide commandbar for WINCE_WITH_COMMANDBAR
 #if wxUSE_TOOLBAR
-
-#if defined(WINCE_WITH_COMMANDBAR)
-        // TODO: hide commandbar
-#else
         wxToolBar *theToolBar = GetToolBar();
-        if (theToolBar)
-            theToolBar->GetSize(NULL, &m_fsToolBarHeight);
-
-        // zap the toolbar, menubar, and statusbar
 
         if ((style & wxFULLSCREEN_NOTOOLBAR) && theToolBar)
         {
-            theToolBar->SetSize(wxDefaultCoord,0);
-            theToolBar->Show(false);
+            if ( theToolBar->IsShown() )
+            {
+                theToolBar->SetSize(wxDefaultCoord,0);
+                theToolBar->Show(false);
+            }
+            else // prevent it from being restored later
+            {
+                style &= ~wxFULLSCREEN_NOTOOLBAR;
+            }
         }
-#endif // __WXWINCE__
 #endif // wxUSE_TOOLBAR
 
-#if defined(__WXMICROWIN__)
-#elif defined(__WXWINCE__)
-        // TODO: make it work for WinCE
-#else
         if (style & wxFULLSCREEN_NOMENUBAR)
             SetMenu((HWND)GetHWND(), (HMENU) NULL);
-#endif
 
 #if wxUSE_STATUSBAR
         wxStatusBar *theStatusBar = GetStatusBar();
-        if (theStatusBar)
-            theStatusBar->GetSize(NULL, &m_fsStatusBarHeight);
 
         // Save the number of fields in the statusbar
         if ((style & wxFULLSCREEN_NOSTATUSBAR) && theStatusBar)
         {
-            //m_fsStatusBarFields = theStatusBar->GetFieldsCount();
-            //SetStatusBar((wxStatusBar*) NULL);
-            //delete theStatusBar;
-            theStatusBar->Show(false);
+            if ( theStatusBar->IsShown() )
+                theStatusBar->Show(false);
+            else
+                style &= ~wxFULLSCREEN_NOSTATUSBAR;
         }
-        else
-            m_fsStatusBarFields = 0;
 #endif // wxUSE_STATUSBAR
     }
-    else
+    else // restore to normal
     {
+        // restore the toolbar, menubar, and statusbar if we had hid them
 #if wxUSE_TOOLBAR
-#if defined(WINCE_WITHOUT_COMMANDBAR)
-        // TODO: show commandbar
-#else
         wxToolBar *theToolBar = GetToolBar();
 
-        // restore the toolbar, menubar, and statusbar
-        if (theToolBar && (m_fsStyle & wxFULLSCREEN_NOTOOLBAR))
+        if ((m_fsStyle & wxFULLSCREEN_NOTOOLBAR) && theToolBar)
         {
-            theToolBar->SetSize(wxDefaultCoord, m_fsToolBarHeight);
             theToolBar->Show(true);
         }
-#endif // __WXWINCE__
 #endif // wxUSE_TOOLBAR
 
+        if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && m_hMenu)
+            ::SetMenu(GetHwnd(), (HMENU)m_hMenu);
+
 #if wxUSE_STATUSBAR
-        if ( m_fsStyle & wxFULLSCREEN_NOSTATUSBAR )
+        wxStatusBar *theStatusBar = GetStatusBar();
+
+        if ((m_fsStyle & wxFULLSCREEN_NOSTATUSBAR) && theStatusBar)
         {
-            //CreateStatusBar(m_fsStatusBarFields);
-            if (GetStatusBar())
-            {
-                GetStatusBar()->Show(true);
-                PositionStatusBar();
-            }
+            theStatusBar->Show(true);
+            PositionStatusBar();
         }
 #endif // wxUSE_STATUSBAR
-
-#if defined(__WXMICROWIN__)
-#elif defined(__WXWINCE__)
-        // TODO: make it work for WinCE
-#else
-        if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0))
-            SetMenu((HWND)GetHWND(), (HMENU)m_hMenu);
-#endif
     }
+#endif // !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
 
     return wxFrameBase::ShowFullScreen(show, style);
 }
@@ -681,7 +663,7 @@ void wxFrame::IconizeChildFrames(bool bIconize)
         wxFrame *frame = wxDynamicCast(win, wxFrame);
         if ( frame
 #if wxUSE_MDI_ARCHITECTURE
-                && !wxDynamicCast(frame, wxMDIChildFrame)
+                && !IsMDIChild()
 #endif // wxUSE_MDI_ARCHITECTURE
            )
         {