routing native events first to the wx class and only if skipped call native handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -117,7 +117,7 @@ public :
|
||||
|
||||
void InstallEventHandler( WXWidget control = NULL );
|
||||
|
||||
virtual void DoHandleMouseEvent(NSEvent *event);
|
||||
virtual bool DoHandleMouseEvent(NSEvent *event);
|
||||
|
||||
protected:
|
||||
WXWidget m_osxView;
|
||||
@@ -190,42 +190,6 @@ protected :
|
||||
extern NSPoint wxToNSPoint( NSView* parent, const wxPoint& p );
|
||||
extern wxPoint wxFromNSPoint( NSView* parent, const NSPoint& p );
|
||||
|
||||
// used for many wxControls
|
||||
|
||||
@interface wxNSButton : NSButton
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
- (void) clickedAction: (id) sender;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSBox : NSBox
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSTextField : NSTextField
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
|
||||
@end
|
||||
|
||||
NSRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size ,
|
||||
bool adjustForOrigin = true );
|
||||
|
||||
@@ -238,37 +202,91 @@ protected :
|
||||
-(void)mouseUp:(NSEvent *)event ;\
|
||||
-(void)rightMouseUp:(NSEvent *)event ;\
|
||||
-(void)otherMouseUp:(NSEvent *)event ;\
|
||||
-(void)handleMouseEvent:(NSEvent *)event;
|
||||
|
||||
#define WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION -(void)mouseDown:(NSEvent *)event \
|
||||
{\
|
||||
[self handleMouseEvent:event];\
|
||||
if ( !impl->DoHandleMouseEvent(event) )\
|
||||
[super mouseDown:event];\
|
||||
}\
|
||||
-(void)rightMouseDown:(NSEvent *)event\
|
||||
{\
|
||||
[self handleMouseEvent:event];\
|
||||
if ( !impl->DoHandleMouseEvent(event) )\
|
||||
[super rightMouseDown:event];\
|
||||
}\
|
||||
-(void)otherMouseDown:(NSEvent *)event\
|
||||
{\
|
||||
[self handleMouseEvent:event];\
|
||||
if ( !impl->DoHandleMouseEvent(event) )\
|
||||
[super otherMouseDown:event];\
|
||||
}\
|
||||
-(void)mouseUp:(NSEvent *)event\
|
||||
{\
|
||||
[self handleMouseEvent:event];\
|
||||
if ( !impl->DoHandleMouseEvent(event) )\
|
||||
[super mouseUp:event];\
|
||||
}\
|
||||
-(void)rightMouseUp:(NSEvent *)event\
|
||||
{\
|
||||
[self handleMouseEvent:event];\
|
||||
if ( !impl->DoHandleMouseEvent(event) )\
|
||||
[super rightMouseUp:event];\
|
||||
}\
|
||||
-(void)otherMouseUp:(NSEvent *)event\
|
||||
{\
|
||||
[self handleMouseEvent:event];\
|
||||
}\
|
||||
-(void)handleMouseEvent:(NSEvent *)event\
|
||||
{\
|
||||
impl->DoHandleMouseEvent(event);\
|
||||
if ( !impl->DoHandleMouseEvent(event) )\
|
||||
[super otherMouseUp:event];\
|
||||
}
|
||||
|
||||
#define WXCOCOAIMPL_COMMON_MEMBERS wxWidgetCocoaImpl* impl;
|
||||
|
||||
#define WXCOCOAIMPL_COMMON_INTERFACE \
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;\
|
||||
- (wxWidgetCocoaImpl*) implementation;\
|
||||
- (BOOL) isFlipped;\
|
||||
WXCOCOAIMPL_COMMON_MOUSE_INTERFACE
|
||||
|
||||
#define WXCOCOAIMPL_COMMON_IMPLEMENTATION WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION \
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation\
|
||||
{\
|
||||
impl = theImplementation;\
|
||||
}\
|
||||
- (wxWidgetCocoaImpl*) implementation\
|
||||
{\
|
||||
return impl;\
|
||||
}\
|
||||
- (BOOL) isFlipped\
|
||||
{\
|
||||
return YES;\
|
||||
}\
|
||||
|
||||
// used for many wxControls
|
||||
|
||||
@interface wxNSButton : NSButton
|
||||
{
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
- (void) clickedAction: (id) sender;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSBox : NSBox
|
||||
{
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSTextField : NSTextField
|
||||
{
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
@end
|
||||
|
||||
|
||||
#endif // __OBJC__
|
||||
|
||||
// NSCursor
|
||||
|
@@ -132,6 +132,8 @@ wxSize wxButton::GetDefaultSize()
|
||||
return self;
|
||||
}
|
||||
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
- (void) clickedAction: (id) sender
|
||||
{
|
||||
if ( impl )
|
||||
@@ -142,21 +144,6 @@ wxSize wxButton::GetDefaultSize()
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (int) intValue
|
||||
{
|
||||
switch ( [self state] )
|
||||
|
@@ -24,12 +24,11 @@
|
||||
|
||||
@interface wxNSPopUpButton : NSPopUpButton
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
- (void) clickedAction: (id) sender;
|
||||
|
||||
@end
|
||||
@@ -55,20 +54,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
- (int) intValue
|
||||
{
|
||||
|
@@ -19,12 +19,10 @@
|
||||
|
||||
@interface wxNSProgressIndicator : NSProgressIndicator
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
@end
|
||||
|
||||
@@ -37,20 +35,7 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
@end
|
||||
|
||||
|
@@ -229,14 +229,13 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const
|
||||
|
||||
@interface wxNSCustomOpenGLView : NSView
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
NSOpenGLContext* context;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(NSRect)frame;
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
@end
|
||||
|
||||
@@ -249,20 +248,7 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
- (BOOL)isOpaque
|
||||
{
|
||||
|
@@ -41,12 +41,10 @@
|
||||
|
||||
@interface wxNSTabView : NSTabView
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
@end
|
||||
|
||||
@@ -85,20 +83,7 @@
|
||||
|
||||
@implementation wxNSTabView
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
@end
|
||||
|
||||
|
@@ -23,12 +23,11 @@
|
||||
|
||||
@interface wxNSScroller : NSScroller
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
- (void) clickedAction: (id) sender;
|
||||
|
||||
@end
|
||||
@@ -54,20 +53,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl ;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
@end
|
||||
|
||||
|
@@ -18,12 +18,11 @@
|
||||
|
||||
@interface wxNSSlider : NSSlider
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
- (void) clickedAction: (id) sender;
|
||||
|
||||
@end
|
||||
@@ -49,20 +48,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
@end
|
||||
|
||||
|
@@ -18,12 +18,11 @@
|
||||
|
||||
@interface wxNSStepper : NSStepper
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
- (void) clickedAction: (id) sender;
|
||||
|
||||
@end
|
||||
@@ -49,20 +48,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
@end
|
||||
|
||||
|
@@ -31,9 +31,11 @@
|
||||
|
||||
@interface wxNSSearchField : NSSearchField
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
@end
|
||||
|
||||
@implementation wxNSSearchField
|
||||
@@ -47,20 +49,7 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
// use our common calls
|
||||
- (void) setTitle:(NSString *) title
|
||||
|
@@ -51,20 +51,7 @@
|
||||
|
||||
@implementation wxNSTextField
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
// use our common calls
|
||||
- (void) setTitle:(NSString *) title
|
||||
|
@@ -32,21 +32,18 @@ NSRect wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const
|
||||
|
||||
@interface wxNSView : NSView
|
||||
{
|
||||
wxWidgetCocoaImpl* impl;
|
||||
WXCOCOAIMPL_COMMON_MEMBERS
|
||||
}
|
||||
|
||||
- (void)drawRect: (NSRect) rect;
|
||||
|
||||
WXCOCOAIMPL_COMMON_MOUSE_INTERFACE
|
||||
|
||||
- (void)keyDown:(NSEvent *)event;
|
||||
- (void)keyUp:(NSEvent *)event;
|
||||
- (void)flagsChanged:(NSEvent *)event;
|
||||
- (void)handleKeyEvent:(NSEvent *)event;
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
|
||||
- (wxWidgetCocoaImpl*) implementation;
|
||||
- (BOOL) isFlipped;
|
||||
WXCOCOAIMPL_COMMON_INTERFACE
|
||||
|
||||
- (BOOL) becomeFirstResponder;
|
||||
- (BOOL) resignFirstResponder;
|
||||
- (BOOL) canBecomeKeyView;
|
||||
@@ -342,7 +339,7 @@ void SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEvent )
|
||||
}
|
||||
}
|
||||
|
||||
WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION
|
||||
WXCOCOAIMPL_COMMON_IMPLEMENTATION
|
||||
|
||||
- (void)keyDown:(NSEvent *)event
|
||||
{
|
||||
@@ -366,22 +363,6 @@ WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION
|
||||
impl->GetWXPeer()->HandleWindowEvent(wxevent);
|
||||
}
|
||||
|
||||
|
||||
- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
|
||||
{
|
||||
impl = theImplementation;
|
||||
}
|
||||
|
||||
- (wxWidgetCocoaImpl*) implementation
|
||||
{
|
||||
return impl;
|
||||
}
|
||||
|
||||
- (BOOL) isFlipped
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL) becomeFirstResponder
|
||||
{
|
||||
BOOL r = [super becomeFirstResponder];
|
||||
@@ -676,7 +657,7 @@ void wxWidgetCocoaImpl::InstallEventHandler( WXWidget control )
|
||||
{
|
||||
}
|
||||
|
||||
void wxWidgetCocoaImpl::DoHandleMouseEvent(NSEvent *event)
|
||||
bool wxWidgetCocoaImpl::DoHandleMouseEvent(NSEvent *event)
|
||||
{
|
||||
NSPoint clickLocation;
|
||||
clickLocation = [m_osxView convertPoint:[event locationInWindow] fromView:nil];
|
||||
@@ -685,7 +666,8 @@ void wxWidgetCocoaImpl::DoHandleMouseEvent(NSEvent *event)
|
||||
SetupMouseEvent( wxevent , event ) ;
|
||||
wxevent.m_x = pt.x;
|
||||
wxevent.m_y = pt.y;
|
||||
GetWXPeer()->HandleWindowEvent(wxevent);
|
||||
|
||||
return GetWXPeer()->HandleWindowEvent(wxevent);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user