]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/menu.cpp
Made ico files binary
[wxWidgets.git] / src / mac / carbon / menu.cpp
index b6e9dd9d3c1a8461c8cebc04fa8ed8048fcb2ded..a2df94bd84fcb2f00fddd69ac65eb06b0b5c8c68 100644 (file)
 // ----------------------
 #include <string.h>
 
-#if !USE_SHARED_LIBRARY
 IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler)
 IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler)
-#endif
 
 // the (popup) menu title has this special id
 static const int idMenuTitle = -3;
@@ -248,7 +246,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
         }
     }
     // if we're already attached to the menubar, we must update it
-    if ( IsAttached() )
+    if ( IsAttached() && GetMenuBar()->IsAttached() )
     {
         GetMenuBar()->Refresh();
     }
@@ -344,7 +342,7 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
 
     ::DeleteMenuItem(MAC_WXHMENU(m_hMenu) , pos + 1);
 
-    if ( IsAttached() )
+    if ( IsAttached() && GetMenuBar()->IsAttached() )
     {
         // otherwise, the change won't be visible
         GetMenuBar()->Refresh();
@@ -569,6 +567,8 @@ auto-merge for MDI in case this will be necessary
 
 wxMenuBar* wxMenuBar::s_macInstalledMenuBar = NULL ;
 wxMenuBar* wxMenuBar::s_macCommonMenuBar = NULL ;
+bool     wxMenuBar::s_macAutoWindowMenu = true ;
+WXHMENU  wxMenuBar::s_macWindowMenuHandle = NULL ;
 
 void wxMenuBar::Init()
 {
@@ -777,6 +777,14 @@ void wxMenuBar::MacInstallMenuBar()
             UMASetMenuItemShortcut( GetMenuHandle( kwxMacAppleMenuId ) , 1 , entry ) ;
         }
     }
+    if ( GetAutoWindowMenu() )
+    {
+        if ( MacGetWindowMenuHMenu() == NULL )
+        {
+            CreateStandardWindowMenu( 0 , (MenuHandle*) &s_macWindowMenuHandle ) ;
+        }
+        InsertMenu( (MenuHandle) MacGetWindowMenuHMenu() , 0 ) ;
+    }
     ::DrawMenuBar() ;
     s_macInstalledMenuBar = this;
 }