]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/cocoa/menuitem.mm
Fix compilation for OSX backend.
[wxWidgets.git] / src / osx / cocoa / menuitem.mm
index c0e1b058f6c9e55ef27b7798151b8316e5b9cd1b..543b64f321fa090b1b8ab05a58531b8c92a09e4a 100644 (file)
@@ -74,8 +74,8 @@ SEL wxOSXGetSelectorFromID(int menuId )
 
 - (id) initWithTitle:(NSString *)aString action:(SEL)aSelector keyEquivalent:(NSString *)charCode
 {
-    [super initWithTitle:aString action:aSelector keyEquivalent:charCode];
-     return self;
+    self = [super initWithTitle:aString action:aSelector keyEquivalent:charCode];
+    return self;
 }
 
 - (void) clickedAction: (id) sender
@@ -100,8 +100,12 @@ SEL wxOSXGetSelectorFromID(int menuId )
     wxUnusedVar(menuItem);
     if( impl )
     {
-        if ( impl->GetWXPeer()->GetMenu()->HandleCommandUpdateStatus(impl->GetWXPeer()) )
-            return impl->GetWXPeer()->IsEnabled();
+        wxMenuItem* wxmenuitem = impl->GetWXPeer();
+        if ( wxmenuitem )
+        {
+            wxmenuitem->GetMenu()->HandleCommandUpdateStatus(wxmenuitem);
+            return wxmenuitem->IsEnabled();
+        }
     }
     return YES ;
 }
@@ -120,6 +124,12 @@ SEL wxOSXGetSelectorFromID(int menuId )
 
 void wxMacCocoaMenuItemSetAccelerator( NSMenuItem* menuItem, wxAcceleratorEntry* entry )
 {
+    if ( entry == NULL )
+    {
+        [menuItem setKeyEquivalent:@""];
+        return;
+    }
+         
     unsigned int modifiers = 0 ;
     int key = entry->GetKeyCode() ;
     if ( key )
@@ -256,9 +266,7 @@ public :
         wxCFStringRef cfText(text);
         [m_osxMenuItem setTitle:cfText.AsNSString()];
 
-        if ( entry )
-            wxMacCocoaMenuItemSetAccelerator( m_osxMenuItem, entry );
-
+        wxMacCocoaMenuItemSetAccelerator( m_osxMenuItem, entry );
     }
     
     bool DoDefault();
@@ -320,7 +328,7 @@ wxMenuItemImpl* wxMenuItemImpl::Create( wxMenuItem* peer, wxMenu *pParentMenu,
         wxCFStringRef cfText(text);
         SEL selector = nil;
         bool targetSelf = false;
-        if ( ! pParentMenu->GetNoEventsMode() && pSubMenu == NULL )
+        if ( (pParentMenu == NULL || !pParentMenu->GetNoEventsMode()) && pSubMenu == NULL )
         {
             selector = wxOSXGetSelectorFromID(menuid);
             
@@ -342,8 +350,7 @@ wxMenuItemImpl* wxMenuItemImpl::Create( wxMenuItem* peer, wxMenu *pParentMenu,
         }
         else
         {
-            if ( entry )
-                wxMacCocoaMenuItemSetAccelerator( menuitem, entry );
+            wxMacCocoaMenuItemSetAccelerator( menuitem, entry );
         }
         item = menuitem;
     }