]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/frame.cpp
use MoreFilesX instead of MoreFiles when building with Apple Developer Tools
[wxWidgets.git] / src / mac / frame.cpp
index 1c5f09ba7b41ee597af9c539f8a810186cc1ea42..7f1860a837a605dfcc91e3e140b98b93ff758e54 100644 (file)
@@ -37,7 +37,7 @@ BEGIN_EVENT_TABLE(wxFrame, wxFrameBase)
 //  EVT_CLOSE(wxFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
-IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
+IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
 #endif
 
 #if wxUSE_NATIVE_STATUSBAR
@@ -101,14 +101,15 @@ bool wxFrame::Create(wxWindow *parent,
            long style,
            const wxString& name)
 {
-  SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
+  SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
 
     if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return FALSE;
 
   MacCreateRealWindow( title, pos , size , MacRemoveBordersFromStyle(style) , name ) ;
   
-       m_macWindowData->m_macWindowBackgroundTheme = kThemeBrushDocumentWindowBackground ;
+       m_macWindowBackgroundTheme = kThemeBrushDocumentWindowBackground ;
+       SetThemeWindowBackground( (WindowRef) m_macWindow , m_macWindowBackgroundTheme , false ) ;
 
   wxModelessWindows.Append(this);
 
@@ -131,7 +132,8 @@ bool wxFrame::Enable(bool enable)
 
        if ( m_frameMenuBar && m_frameMenuBar == wxMenuBar::MacGetInstalledMenuBar() )
        {
-               for ( int i = 0 ; i < m_frameMenuBar->GetMenuCount() ; ++ i )
+               int iMaxMenu = m_frameMenuBar->GetMenuCount(); 
+               for ( int i = 0 ; i < iMaxMenu ; ++ i )
                {
                        m_frameMenuBar->EnableTop( i , enable ) ;
                }
@@ -170,7 +172,7 @@ void wxFrame::PositionStatusBar()
 // Responds to colour changes, and passes event on to children.
 void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
-    SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
+    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
     Refresh();
 
     if ( m_frameStatusBar )
@@ -229,9 +231,35 @@ void wxFrame::OnActivate(wxActivateEvent& event)
            {
                m_frameMenuBar->MacInstallMenuBar() ;
            }
+           else if (wxTheApp->GetTopWindow() && wxTheApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)))
+        {
+            // Trying toplevel frame menbar
+            if( ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar() )
+                   ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar()->MacInstallMenuBar();
+           }
        }
 }
 
+void wxFrame::DetachMenuBar()
+{
+    if ( m_frameMenuBar )
+    {
+        m_frameMenuBar->UnsetInvokingWindow();
+    }
+
+    wxFrameBase::DetachMenuBar();
+}
+
+void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
+{
+    wxFrameBase::AttachMenuBar(menuBar);
+
+    if (m_frameMenuBar)
+    {
+        m_frameMenuBar->SetInvokingWindow( this );
+    }
+}
+
 void wxFrame::DoGetClientSize(int *x, int *y) const
 {
        wxWindow::DoGetClientSize( x , y ) ;