]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/cocoa/menuitem.mm
fix wxGTK1 compilation after wxTextEntry DoGetValue() change
[wxWidgets.git] / src / osx / cocoa / menuitem.mm
index 6b05d359fbd999f5b43dc99dfb022afa1f39120f..8b34b63bf3126a66d2ae56a7222c01a979d0b01f 100644 (file)
@@ -16,6 +16,7 @@
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
+    #include "wx/log.h"
     #include "wx/menu.h"
 #endif // WX_PRECOMP
 
@@ -170,6 +171,8 @@ class wxMenuItemCocoaImpl : public wxMenuItemImpl
 public :
     wxMenuItemCocoaImpl( wxMenuItem* peer, NSMenuItem* item ) : wxMenuItemImpl(peer), m_osxMenuItem(item)
     {
+        if ( ![m_osxMenuItem isSeparatorItem] )
+            [(wxNSMenuItem*)m_osxMenuItem setImplementation:this];
     }
     
     ~wxMenuItemCocoaImpl();
@@ -191,7 +194,11 @@ public :
     
     void Hide( bool hide )
     {
-        [m_osxMenuItem setHidden:hide ];
+        // NB: setHidden is new as of 10.5 so we should not call it below there
+        if ([m_osxMenuItem respondsToSelector:@selector(setHidden:)])
+            [m_osxMenuItem setHidden:hide ];
+        else
+            wxLogDebug("wxMenuItemCocoaImpl::Hide not yet supported under OS X < 10.5");
     }
     
     void SetLabel( const wxString& text, wxAcceleratorEntry *entry ) 
@@ -212,6 +219,8 @@ protected :
 
 wxMenuItemCocoaImpl::~wxMenuItemCocoaImpl()
 {
+    if ( ![m_osxMenuItem isSeparatorItem] )
+        [(wxNSMenuItem*)m_osxMenuItem setImplementation:nil];
 }
 
 
@@ -253,9 +262,5 @@ wxMenuItemImpl* wxMenuItemImpl::Create( wxMenuItem* peer, wxMenu *pParentMenu,
         item = temp;
     }
     c = new wxMenuItemCocoaImpl( peer, item );
-    if ( kind != wxITEM_SEPARATOR )
-    {
-        [(wxNSMenuItem*)item setImplementation:c];
-    }
     return c;
 }