1///////////////////////////////////////////////////////////////////////////// 2// Name: src/cocoa/NSControl.mm 3// Purpose: wxCocoaNSControl 4// Author: David Elliott 5// Modified by: 6// Created: 2003/02/15 7// Copyright: (c) 2003 David Elliott 8// Licence: wxWindows licence 9///////////////////////////////////////////////////////////////////////////// 10 11// ============================================================================ 12// declarations 13// ============================================================================ 14 15// ---------------------------------------------------------------------------- 16// headers 17// ---------------------------------------------------------------------------- 18 19#include "wx/wxprec.h" 20#ifndef WX_PRECOMP 21 #include "wx/log.h" 22#endif // WX_PRECOMP 23 24#include "wx/cocoa/objc/objc_uniquifying.h" 25#include "wx/cocoa/ObjcRef.h" 26#include "wx/cocoa/NSControl.h" 27 28#import <Foundation/NSObject.h> 29 30// ============================================================================ 31// @class wxNSControlTarget 32// ============================================================================ 33@interface wxNSControlTarget : NSObject 34{ 35} 36 37- (void)wxNSControlAction: (id)sender; 38@end //interface wxNSControlTarget 39WX_DECLARE_GET_OBJC_CLASS(wxNSControlTarget,NSObject) 40 41@implementation wxNSControlTarget : NSObject 42 43- (void)wxNSControlAction: (id)sender 44{ 45 wxLogTrace(wxTRACE_COCOA,wxT("wxNSControlAction")); 46 wxCocoaNSControl *wxcontrol = wxCocoaNSControl::GetFromCocoa(sender); 47 wxCHECK_RET(wxcontrol,wxT("wxNSControlAction received but no wxCocoaNSControl exists!")); 48 wxcontrol->CocoaTarget_action(); 49} 50 51@end //implementation wxNSControlTarget 52WX_IMPLEMENT_GET_OBJC_CLASS(wxNSControlTarget,NSObject) 53 54// ============================================================================ 55// wxNSControl 56// ============================================================================ 57WX_IMPLEMENT_OBJC_INTERFACE(NSControl) 58 59// New CF-retained observer (this should have been using wxObjcAutoRefFromAlloc to begin with) 60wxObjcAutoRefFromAlloc<wxNSControlTarget*> s_cocoaNSControlTarget = [[WX_GET_OBJC_CLASS(wxNSControlTarget) alloc] init]; 61// For compatibility with old code 62struct objc_object *wxCocoaNSControl::sm_cocoaTarget = s_cocoaNSControlTarget; 63 64