]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/uma.cpp
Use typesafe wxVariantList in wxVariant instead of wxList
[wxWidgets.git] / src / mac / carbon / uma.cpp
index 161708406b5628f33a84abd36051524c723605b9..88b5771bddbf174085ab9d6b4d7eb8bb10fb4394 100644 (file)
@@ -11,6 +11,8 @@
 
 #include "wx/wxprec.h"
 
+#include "wx/mac/uma.h"
+
 #if wxUSE_GUI
 
 #include "wx/toplevel.h"
@@ -33,8 +35,6 @@
 #  include <Scrap.h>
 #endif
 
-#include "wx/mac/uma.h"
-
 // since we have decided that we only support 8.6 upwards we are
 // checking for these minimum requirements in the startup code of
 // the application so all wxWidgets code can safely assume that appearance 1.1
@@ -645,14 +645,29 @@ static OSStatus helpMenuStatus = noErr ;
 static MenuItemIndex firstCustomItemIndex = 0 ;
 #endif
 
-OSStatus UMAGetHelpMenu(
+static OSStatus UMAGetHelpMenu(
     MenuRef *        outHelpMenu,
-    MenuItemIndex *  outFirstCustomItemIndex)
+    MenuItemIndex *  outFirstCustomItemIndex,
+    bool             allowHelpMenuCreation);
+
+static OSStatus UMAGetHelpMenu(
+    MenuRef *        outHelpMenu,
+    MenuItemIndex *  outFirstCustomItemIndex,
+    bool             allowHelpMenuCreation)
 {
 #if TARGET_CARBON
-    return HMGetHelpMenu( outHelpMenu , outFirstCustomItemIndex ) ;
+    static bool s_createdHelpMenu = false ;
+
+    if ( !s_createdHelpMenu && !allowHelpMenuCreation )
+    {
+        return paramErr ;
+    }
 
+    OSStatus status = HMGetHelpMenu( outHelpMenu , outFirstCustomItemIndex ) ;
+    s_createdHelpMenu = ( status == noErr ) ;
+    return status ;
 #else
+    wxUnusedVar( allowHelpMenuCreation ) ;
     MenuRef helpMenuHandle ;
 
     helpMenuStatus = HMGetHelpMenuHandle( &helpMenuHandle ) ;
@@ -668,6 +683,20 @@ OSStatus UMAGetHelpMenu(
 #endif
 }
 
+OSStatus UMAGetHelpMenu(
+    MenuRef *        outHelpMenu,
+    MenuItemIndex *  outFirstCustomItemIndex)
+{
+    return UMAGetHelpMenu( outHelpMenu , outFirstCustomItemIndex , true );
+}
+
+OSStatus UMAGetHelpMenuDontCreate(
+    MenuRef *        outHelpMenu,
+    MenuItemIndex *  outFirstCustomItemIndex)
+{
+    return UMAGetHelpMenu( outHelpMenu , outFirstCustomItemIndex , false );
+}
+
 #ifndef __LP64__
 
 wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport )