]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/menu.cpp
added wxShutdown (patch 547443)
[wxWidgets.git] / src / mac / carbon / menu.cpp
index e53992df980314615f8eeb073cd38801daf40392..213c14cd48c63c9b2897baab95a507650815cdd7 100644 (file)
@@ -614,33 +614,37 @@ void wxMenuBar::RebuildAccelTable()
 
 #endif // wxUSE_ACCEL
 
-
 void wxMenuBar::MacInstallMenuBar() 
 {
-       if ( s_macInstalledMenuBar == this )
-               return ;
+    if ( s_macInstalledMenuBar == this )
+        return ;
+               
+    wxStAppResource resload ;
                
-       Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
-       wxString message ;
-       wxCHECK_RET( menubar != NULL, "can't read MBAR resource" );
-       ::SetMenuBar( menubar ) ;
+    Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
+    wxString message ;
+    wxCHECK_RET( menubar != NULL, "can't read MBAR resource" );
+    ::SetMenuBar( menubar ) ;
 #if TARGET_API_MAC_CARBON
     ::DisposeMenuBar( menubar ) ;
 #else
-       ::DisposeHandle( menubar ) ;
+    ::DisposeHandle( menubar ) ;
 #endif
 
-               MenuHandle menu = ::GetMenuHandle( kwxMacAppleMenuId ) ;
 #if TARGET_API_MAC_OS8
-               ::AppendResMenu(menu, 'DRVR');
+    MenuHandle menu = ::GetMenuHandle( kwxMacAppleMenuId ) ;
+    if ( CountMenuItems( menu ) == 2 )
+    {
+        ::AppendResMenu(menu, 'DRVR');
+    }
 #endif
  
-       for (int i = 0; i < m_menus.GetCount(); i++)
+       for (size_t i = 0; i < m_menus.GetCount(); i++)
        {
-                       Str255  label;
-       wxNode *node;
-       wxMenuItem *item;
-       int pos ;
+            Str255     label;
+            wxNode *node;
+            wxMenuItem *item;
+            int pos ;
                        wxMenu* menu = m_menus[i] , *subMenu = NULL ;
                
                        if( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName )
@@ -713,7 +717,7 @@ void wxMenuBar::MacInstallMenuBar()
                                        }
                                }
                                ::InsertMenu(MAC_WXHMENU(m_menus[i]->GetHMenu()), 0);
-                               for ( int i = 0 ; i < submenus.GetCount() ; ++i )
+                               for ( size_t i = 0 ; i < submenus.GetCount() ; ++i )
                                {
                                  wxMenu* submenu = (wxMenu*) submenus[i] ;
                wxNode *subnode;
@@ -733,7 +737,6 @@ void wxMenuBar::MacInstallMenuBar()
                        }
                }
                ::DrawMenuBar() ;
-
        s_macInstalledMenuBar = this;
 }
 
@@ -888,7 +891,7 @@ void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId,
     }
     else
     {          
-        for (int i = 0; i < m_menus.GetCount() ; i++)
+        for (size_t i = 0; i < m_menus.GetCount() ; i++)
         {
             if ( m_menus[i]->MacGetMenuId() == macMenuId || ( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName ) ) )
             {
@@ -902,7 +905,7 @@ void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId,
             }
         }
        
-         for (int i = 0; i < m_menus.GetCount(); i++)
+         for (size_t i = 0; i < m_menus.GetCount(); i++)
          {
                if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
                {