]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/menu.cpp
using font substitution (allows for fallbacks when unicode chars are not available...
[wxWidgets.git] / src / mac / carbon / menu.cpp
index 71701a0a040112635b9e6a22e2429d5e49d8fc3e..e07057a303cb453149868f9c5b8581fa3b07e39a 100644 (file)
@@ -589,13 +589,13 @@ wxMenuBar::wxMenuBar( long WXUNUSED(style) )
 }
 
 
 }
 
 
-wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[])
+wxMenuBar::wxMenuBar(size_t count, wxMenu *menus[], const wxString titles[], long WXUNUSED(style))
 {
     Init();
 
     m_titles.Alloc(count);
 
 {
     Init();
 
     m_titles.Alloc(count);
 
-    for ( int i = 0; i < count; i++ )
+    for ( size_t i = 0; i < count; i++ )
     {
         m_menus.Append(menus[i]);
         m_titles.Add(titles[i]);
     {
         m_menus.Append(menus[i]);
         m_titles.Add(titles[i]);
@@ -675,6 +675,18 @@ void wxMenuBar::MacInstallMenuBar()
         else
             EnableMenuCommand( NULL , kHICommandPreferences ) ;
     }
         else
             EnableMenuCommand( NULL , kHICommandPreferences ) ;
     }
+    // Unlike preferences which may or may not exist, the Quit item should be always
+    // enabled unless it is added by the application and then disabled, otherwise
+    // a program would be required to add an item with wxID_EXIT in order to get the
+    // Quit menu item to be enabled, which seems a bit burdensome.
+    if ( UMAGetSystemVersion() >= 0x1000 && wxApp::s_macExitMenuItemId)
+    {
+        wxMenuItem *item = FindItem( wxApp::s_macExitMenuItemId , NULL ) ;
+        if ( item != NULL && !(item->IsEnabled()) )
+            DisableMenuCommand( NULL , kHICommandQuit ) ;
+        else
+            EnableMenuCommand( NULL , kHICommandQuit ) ;
+    }
 #endif
        wxMenuList::compatibility_iterator menuIter = m_menus.GetFirst();
        //
 #endif
        wxMenuList::compatibility_iterator menuIter = m_menus.GetFirst();
        //
@@ -808,10 +820,6 @@ int wxMenuBar::FindMenu(const wxString& title)
 }
 
 
 }
 
 
-// ---------------------------------------------------------------------------
-// wxMenuBar construction
-// ---------------------------------------------------------------------------
-
 // ---------------------------------------------------------------------------
 // wxMenuBar construction
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 // wxMenuBar construction
 // ---------------------------------------------------------------------------