X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/065e208ec09e3d08d51d9604497f92f53c210f93..9d5507f7a2701395e1d5c121bd877bb9066ee6ea:/src/cocoa/NSButton.mm?ds=sidebyside diff --git a/src/cocoa/NSButton.mm b/src/cocoa/NSButton.mm index fe70ab7f63..00bace286b 100644 --- a/src/cocoa/NSButton.mm +++ b/src/cocoa/NSButton.mm @@ -4,8 +4,8 @@ // Author: David Elliott // Modified by: // Created: 2003/01/31 -// RCS-ID: $Id: -// Copyright: (c) 2003 David Elliott +// RCS-ID: $Id$ +// Copyright: (c) 2003-2004 David Elliott // Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// @@ -22,8 +22,7 @@ #include "wx/log.h" #endif // WX_PRECOMP -#include "wx/cocoa/ObjcPose.h" - +#include "wx/cocoa/objc/objc_uniquifying.h" #include "wx/cocoa/NSButton.h" #import @@ -33,34 +32,38 @@ WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSButton) // ============================================================================ -// @class wxPoserNSButton +// @class wxNSButtonTarget // ============================================================================ -@interface wxPoserNSButton : NSButton +@interface wxNSButtonTarget : NSObject { } - (void)wxNSButtonAction: (id)sender; -@end // wxPoserNSButton - -WX_IMPLEMENT_POSER(wxPoserNSButton); +@end // wxNSButtonTarget +WX_DECLARE_GET_OBJC_CLASS(wxNSButtonTarget,NSObject) -@implementation wxPoserNSButton : NSButton +@implementation wxNSButtonTarget : NSObject - (void)wxNSButtonAction: (id)sender { - wxASSERT_MSG((id)self==sender,wxT("Received wxNSButtonAction from another object")); - wxCocoaNSButton *button = wxCocoaNSButton::GetFromCocoa(self); + wxCocoaNSButton *button = wxCocoaNSButton::GetFromCocoa(sender); wxCHECK_RET(button,wxT("wxNSButtonAction received without associated wx object")); button->Cocoa_wxNSButtonAction(); } -@end // implementation wxPoserNSButton +@end // implementation wxNSButtonTarget +WX_IMPLEMENT_GET_OBJC_CLASS(wxNSButtonTarget,NSObject) + +// ============================================================================ +// class wxCocoaNSButton +// ============================================================================ +const wxObjcAutoRefFromAlloc wxCocoaNSButton::sm_cocoaTarget = [[WX_GET_OBJC_CLASS(wxNSButtonTarget) alloc] init]; void wxCocoaNSButton::AssociateNSButton(WX_NSButton cocoaNSButton) { if(cocoaNSButton) { sm_cocoaHash.insert(wxCocoaNSButtonHash::value_type(cocoaNSButton,this)); - [cocoaNSButton setTarget: cocoaNSButton]; + [cocoaNSButton setTarget: sm_cocoaTarget]; [cocoaNSButton setAction: @selector(wxNSButtonAction:)]; } }