]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/menu.cpp
Use wxMBConvUTF8 when G_FILENAME_ENCODING is UTF-8, and set
[wxWidgets.git] / src / mac / carbon / menu.cpp
index c31a56fb598829f0fa3c79db3e9efb5ed3970f25..e07057a303cb453149868f9c5b8581fa3b07e39a 100644 (file)
@@ -9,7 +9,7 @@
 // Licence:       wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "menu.h"
 #pragma implementation "menuitem.h"
 #endif
@@ -21,6 +21,8 @@
 // wxWidgets headers
 // -----------------
 
+#include "wx/wxprec.h"
+
 #include "wx/app.h"
 #include "wx/menu.h"
 #include "wx/menuitem.h"
@@ -587,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);
 
-    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]);
@@ -673,6 +675,18 @@ void wxMenuBar::MacInstallMenuBar()
         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();
        //
@@ -806,10 +820,6 @@ int wxMenuBar::FindMenu(const wxString& title)
 }
 
 
-// ---------------------------------------------------------------------------
-// wxMenuBar construction
-// ---------------------------------------------------------------------------
-
 // ---------------------------------------------------------------------------
 // wxMenuBar construction
 // ---------------------------------------------------------------------------
@@ -917,6 +927,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
     {
         if (s_macInstalledMenuBar == this)
         {
+            menu->MacBeforeDisplay( false ) ;
             ::InsertMenu( MAC_WXHMENU(menu->GetHMenu()) , 0 ) ;
         }