]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/menu.cpp
workaround for incorrect find control results because of our non-embedding group...
[wxWidgets.git] / src / mac / carbon / menu.cpp
index c7a1407ab4816e9a65842f77973694e722b10c2f..b58d8e5d83827ce34060a779d79008da4728ad18 100644 (file)
@@ -504,23 +504,16 @@ void wxMenuBar::MacInstallMenuBar()
 
     wxStAppResource resload ;
 
-    Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
-    wxString message ;
-    wxCHECK_RET( menubar != NULL, wxT("can't read MBAR resource") );
+    MenuBarHandle menubar = NewHandleClear( 6 /* sizeof( MenuBarHeader ) */ ) ;
     ::SetMenuBar( menubar ) ;
-#if TARGET_API_MAC_CARBON
-    ::DisposeMenuBar( menubar ) ;
-#else
-    ::DisposeHandle( menubar ) ;
-#endif
+    DisposeMenuBar( menubar ) ;
+    MenuHandle appleMenu = NULL ;
+    char appleMenuTitle[3] = { 01 , kMenuAppleLogoFilledGlyph , 0 } ;
 
-#if TARGET_API_MAC_OS8
-    MenuHandle menu = ::GetMenuHandle( kwxMacAppleMenuId ) ;
-    if ( CountMenuItems( menu ) == 2 )
-    {
-        ::AppendResMenu(menu, 'DRVR');
-    }
-#endif
+    verify_noerr( CreateNewMenu( kwxMacAppleMenuId , 0 , &appleMenu ) ) ;
+    verify_noerr( SetMenuTitle( appleMenu , (ConstStr255Param) appleMenuTitle ) );
+    MacInsertMenuItem( appleMenu , "\pAbout..." , 0 ) ;
+    MacInsertMenu( appleMenu , 0 ) ;
 
     // clean-up the help menu before adding new items
     MenuHandle mh = NULL ;
@@ -617,6 +610,17 @@ void wxMenuBar::EnableTop(size_t pos, bool enable)
     Refresh();
 }
 
+bool wxMenuBar::Enable( bool enable)
+{
+    wxCHECK_MSG( IsAttached(), false, wxT("doesn't work with unattached menubars") );
+    size_t i;
+    for (i = 0; i < GetMenuCount(); i++)
+    {
+        EnableTop(i, enable);
+    }
+    return true;
+}
+
 void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
 {
     wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") );
@@ -856,7 +860,7 @@ int wxMenuBar::FindMenuItem(const wxString& menuString,
     for ( size_t i = 0; i < count; i++ )
     {
         wxString title = wxStripMenuCodes(m_titles[i]);
-        if ( menuString == title )
+        if ( menuLabel == title )
             return m_menus[i]->FindItem(itemString);
     }