X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bcf014878689fa97b8c67372ad616a398b245807..e69d5138dc8f95e294ae6d03beb4f321406f4e34:/src/cocoa/NSMenu.mm?ds=sidebyside diff --git a/src/cocoa/NSMenu.mm b/src/cocoa/NSMenu.mm index ca226efa44..ef19045c45 100644 --- a/src/cocoa/NSMenu.mm +++ b/src/cocoa/NSMenu.mm @@ -6,7 +6,7 @@ // Created: 2002/12/09 // RCS-ID: $Id$ // Copyright: (c) 2002 David Elliott -// Licence: wxWindows licence +// Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" @@ -16,12 +16,11 @@ #endif // WX_PRECOMP #include "wx/cocoa/NSMenu.h" -//#include "wx/cocoa/ObjcPose.h" +#include "wx/cocoa/ObjcPose.h" #import #import -#if 0 // There is no reason to pose for NSMenu at this time. // ============================================================================ // @class wxPoserNSMenu // ============================================================================ @@ -29,13 +28,22 @@ { } +- (void)dealloc; + @end // wxPoserNSMenu WX_IMPLEMENT_POSER(wxPoserNSMenu); @implementation wxPoserNSMenu : NSMenu +- (void)dealloc +{ + wxCocoaNSMenu *menu = wxCocoaNSMenu::GetFromCocoa(self); + if(menu) + menu->Cocoa_dealloc(); + [super dealloc]; +} + @end // wxPoserNSMenu -#endif // 0 // ============================================================================ // @class wxNSMenuNotificationObserver @@ -58,35 +66,35 @@ struct objc_object *wxCocoaNSMenu::sm_cocoaObserver = [[wxNSMenuNotificationObse - (void)menuDidAddItem: (NSNotification *)notification { wxCocoaNSMenu *menu = wxCocoaNSMenu::GetFromCocoa([notification object]); - wxCHECK_RET(menu,"menuDidAddItem received but no wxMenu exists"); + wxCHECK_RET(menu,wxT("menuDidAddItem received but no wxMenu exists")); menu->CocoaNotification_menuDidAddItem(notification); } - (void)menuDidChangeItem: (NSNotification *)notification { wxCocoaNSMenu *menu = wxCocoaNSMenu::GetFromCocoa([notification object]); - wxCHECK_RET(menu,"menuDidChangeItem received but no wxMenu exists"); + wxCHECK_RET(menu,wxT("menuDidChangeItem received but no wxMenu exists")); menu->CocoaNotification_menuDidChangeItem(notification); } - (void)menuDidRemoveItem: (NSNotification *)notification { wxCocoaNSMenu *menu = wxCocoaNSMenu::GetFromCocoa([notification object]); - wxCHECK_RET(menu,"menuDidRemoveItem received but no wxMenu exists"); + wxCHECK_RET(menu,wxT("menuDidRemoveItem received but no wxMenu exists")); menu->CocoaNotification_menuDidRemoveItem(notification); } - (void)menuDidSendAction: (NSNotification *)notification { wxCocoaNSMenu *menu = wxCocoaNSMenu::GetFromCocoa([notification object]); - wxCHECK_RET(menu,"menuDidSendAction received but no wxMenu exists"); + wxCHECK_RET(menu,wxT("menuDidSendAction received but no wxMenu exists")); menu->CocoaNotification_menuDidSendAction(notification); } - (void)menuWillSendAction: (NSNotification *)notification { wxCocoaNSMenu *menu = wxCocoaNSMenu::GetFromCocoa([notification object]); - wxCHECK_RET(menu,"menuWillSendAction received but no wxMenu exists"); + wxCHECK_RET(menu,wxT("menuWillSendAction received but no wxMenu exists")); menu->CocoaNotification_menuWillSendAction(notification); } @@ -95,6 +103,8 @@ struct objc_object *wxCocoaNSMenu::sm_cocoaObserver = [[wxNSMenuNotificationObse // ======================================================================== // wxCocoaNSMenu // ======================================================================== +WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSMenu) + void wxCocoaNSMenu::AssociateNSMenu(WX_NSMenu cocoaNSMenu, unsigned int flags) { if(cocoaNSMenu)