X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fb896a322a2ed53d393ee738765ddd3f72cee004..2c53a80a097697483b10c022febe08f06afe2d3a:/src/cocoa/NSButton.mm diff --git a/src/cocoa/NSButton.mm b/src/cocoa/NSButton.mm index 11027892aa..e2436fca0a 100644 --- a/src/cocoa/NSButton.mm +++ b/src/cocoa/NSButton.mm @@ -4,9 +4,9 @@ // Author: David Elliott // Modified by: // Created: 2003/01/31 -// RCS-ID: $Id: -// Copyright: (c) 2003 David Elliott -// Licence: wxWindows license +// RCS-ID: $Id$ +// Copyright: (c) 2003-2004 David Elliott +// Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -31,32 +31,37 @@ WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSButton) // ============================================================================ -// @class wxPoserNSButton +// @class wxNSButtonTarget // ============================================================================ -@interface wxPoserNSButton : NSButton +@interface wxNSButtonTarget : NSObject { } - (void)wxNSButtonAction: (id)sender; -@end // wxPoserNSButton +@end // wxNSButtonTarget -WX_IMPLEMENT_POSER(wxPoserNSButton); - -@implementation wxPoserNSButton : NSButton +@implementation wxNSButtonTarget : NSObject - (void)wxNSButtonAction: (id)sender { - wxASSERT_MSG(self==sender,"Received wxNSButtonAction from another object"); - wxCocoaNSButton *button = wxCocoaNSButton::GetFromCocoa(self); - wxCHECK_RET(button,"wxNSButtonAction received without associated wx object"); + wxCocoaNSButton *button = wxCocoaNSButton::GetFromCocoa(sender); + wxCHECK_RET(button,wxT("wxNSButtonAction received without associated wx object")); button->Cocoa_wxNSButtonAction(); } -@end // implementation wxPoserNSButton +@end // implementation wxNSButtonTarget + +// ============================================================================ +// class wxCocoaNSButton +// ============================================================================ +const wxObjcAutoRefFromAlloc wxCocoaNSButton::sm_cocoaTarget = [[wxNSButtonTarget alloc] init]; void wxCocoaNSButton::AssociateNSButton(WX_NSButton cocoaNSButton) { - sm_cocoaHash.insert(wxCocoaNSButtonHash::value_type(cocoaNSButton,this)); - [cocoaNSButton setTarget: cocoaNSButton]; - [cocoaNSButton setAction: @selector(wxNSButtonAction:)]; + if(cocoaNSButton) + { + sm_cocoaHash.insert(wxCocoaNSButtonHash::value_type(cocoaNSButton,this)); + [cocoaNSButton setTarget: sm_cocoaTarget]; + [cocoaNSButton setAction: @selector(wxNSButtonAction:)]; + } }