X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ffad7b0dd2907634d93daacfb54d503c6f7a4ad4..55410bb4f67febe1ca20654f078ea4fb9a6223ae:/src/osx/cocoa/menuitem.mm?ds=sidebyside diff --git a/src/osx/cocoa/menuitem.mm b/src/osx/cocoa/menuitem.mm index 6b05d359fb..8b34b63bf3 100644 --- a/src/osx/cocoa/menuitem.mm +++ b/src/osx/cocoa/menuitem.mm @@ -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; }