Provide target/action mechanism for subclasses to use

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott 2003-09-08 19:00:45 +00:00
parent b6567e32ee
commit e0c691d13c
2 changed files with 34 additions and 4 deletions

View File

@ -19,8 +19,11 @@ WX_DECLARE_OBJC_HASHMAP(NSControl);
class wxCocoaNSControl
{
WX_DECLARE_OBJC_INTERFACE(NSControl)
protected:
public:
virtual void CocoaTarget_action() {}
// virtual void Cocoa_didChangeText(void) = 0;
protected:
static struct objc_object *sm_cocoaTarget;
};
#endif // _WX_COCOA_NSCONTROL_H_

View File

@ -19,12 +19,39 @@
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/log.h"
#endif // WX_PRECOMP
#include "wx/cocoa/NSControl.h"
// ----------------------------------------------------------------------------
// globals
// ----------------------------------------------------------------------------
#import <Foundation/NSObject.h>
// ============================================================================
// @class wxNSControlTarget
// ============================================================================
@interface wxNSControlTarget : NSObject
{
}
- (void)wxNSControlAction: (id)sender;
@end //interface wxNSControlTarget
@implementation wxNSControlTarget : NSObject
- (void)wxNSControlAction: (id)sender
{
wxLogDebug("wxNSControlAction");
wxCocoaNSControl *wxcontrol = wxCocoaNSControl::GetFromCocoa(sender);
wxCHECK_RET(wxcontrol,"wxNSControlAction received but no wxCocoaNSControl exists!");
wxcontrol->CocoaTarget_action();
}
@end //implementation wxNSControlTarget
// ============================================================================
// wxNSControl
// ============================================================================
WX_IMPLEMENT_OBJC_INTERFACE(NSControl)
struct objc_object *wxCocoaNSControl::sm_cocoaTarget = [[wxNSControlTarget alloc] init];