X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b466e85a7e81db84545bc44c83cbe4ccacd4fe8e..f54e5c1a4f6952c62ed4480f7d26feddc20f98ba:/include/wx/osx/cocoa/private.h diff --git a/include/wx/osx/cocoa/private.h b/include/wx/osx/cocoa/private.h index 26f1a90a50..d1c7059d7e 100644 --- a/include/wx/osx/cocoa/private.h +++ b/include/wx/osx/cocoa/private.h @@ -100,6 +100,10 @@ public : void PerformClick(); void SetLabel(const wxString& title, wxFontEncoding encoding); + void SetCursor( const wxCursor & cursor ); + void CaptureMouse(); + void ReleaseMouse(); + wxInt32 GetValue() const; void SetValue( wxInt32 v ); void SetBitmap( const wxBitmap& bitmap ); @@ -110,6 +114,8 @@ public : bool ButtonClickDidStateChange() { return true ;} void SetMinimum( wxInt32 v ); void SetMaximum( wxInt32 v ); + wxInt32 GetMinimum() const; + wxInt32 GetMaximum() const; void PulseGauge(); void SetScrollThumb( wxInt32 value, wxInt32 thumbSize ); @@ -118,12 +124,16 @@ public : void InstallEventHandler( WXWidget control = NULL ); virtual bool DoHandleMouseEvent(NSEvent *event); + virtual bool DoHandleKeyEvent(NSEvent *event); + virtual void DoNotifyFocusEvent(bool receivedFocus); protected: WXWidget m_osxView; DECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetCocoaImpl) }; +DECLARE_WXCOCOA_OBJC_CLASS( wxNSWindow ); + class wxNonOwnedWindowCocoaImpl : public wxNonOwnedWindowImpl { public : @@ -178,7 +188,7 @@ public : wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; } protected : - WX_NSWindow m_macWindow; + WX_wxNSWindow m_macWindow; void * m_macFullScreenData ; DECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowCocoaImpl) }; @@ -196,19 +206,29 @@ protected : // common code snippets for cocoa implementations // later to be done using injection in method table - #define WXCOCOAIMPL_COMMON_MOUSE_INTERFACE -(void)mouseDown:(NSEvent *)event ;\ - -(void)rightMouseDown:(NSEvent *)event ;\ - -(void)otherMouseDown:(NSEvent *)event ;\ - -(void)mouseUp:(NSEvent *)event ;\ - -(void)rightMouseUp:(NSEvent *)event ;\ - -(void)otherMouseUp:(NSEvent *)event ;\ - - #define WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION -(void)mouseDown:(NSEvent *)event \ - {\ - if ( !impl->DoHandleMouseEvent(event) )\ - [super mouseDown:event];\ - }\ - -(void)rightMouseDown:(NSEvent *)event\ + #define WXCOCOAIMPL_COMMON_EVENTS_INTERFACE -(void)mouseDown:(NSEvent *)event ;\ + - (void)rightMouseDown:(NSEvent *)event ;\ + - (void)otherMouseDown:(NSEvent *)event ;\ + - (void)mouseUp:(NSEvent *)event ;\ + - (void)rightMouseUp:(NSEvent *)event ;\ + - (void)otherMouseUp:(NSEvent *)event ;\ + - (void)mouseMoved:(NSEvent *)event;\ + - (void)mouseDragged:(NSEvent *)event;\ + - (void)rightMouseDragged:(NSEvent *)event;\ + - (void)otherMouseDragged:(NSEvent *)event;\ + - (void)scrollWheel:(NSEvent *)theEvent;\ + - (void)mouseEntered:(NSEvent *)event;\ + - (void)mouseExited:(NSEvent *)event;\ + - (void)keyDown:(NSEvent *)event;\ + - (void)keyUp:(NSEvent *)event;\ + - (BOOL)performKeyEquivalent:(NSEvent *)event;\ + - (void)flagsChanged:(NSEvent *)event;\ + - (BOOL)becomeFirstResponder;\ + - (BOOL)resignFirstResponder;\ + - (void)resetCursorRects; + + + #define WXCOCOAIMPL_COMMON_EVENTS_IMPLEMENTATION_NO_MOUSEDOWN -(void)rightMouseDown:(NSEvent *)event\ {\ if ( !impl->DoHandleMouseEvent(event) )\ [super rightMouseDown:event];\ @@ -232,18 +252,110 @@ protected : {\ if ( !impl->DoHandleMouseEvent(event) )\ [super otherMouseUp:event];\ + }\ + -(void)mouseMoved:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super mouseMoved:event];\ + }\ + -(void)mouseDragged:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super mouseDragged:event];\ + }\ + -(void)rightMouseDragged:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super rightMouseDragged:event];\ + }\ + -(void)otherMouseDragged:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super otherMouseDragged:event];\ + }\ + -(void)scrollWheel:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super scrollWheel:event];\ + }\ + -(void)mouseEntered:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super mouseEntered:event];\ + }\ + -(void)mouseExited:(NSEvent *)event\ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super mouseExited:event];\ + }\ + -(BOOL)performKeyEquivalent:(NSEvent *)event\ + {\ + if ( !impl->DoHandleKeyEvent(event) )\ + return [super performKeyEquivalent:event];\ + return YES;\ + }\ + -(void)keyDown:(NSEvent *)event\ + {\ + if ( !impl->DoHandleKeyEvent(event) )\ + [super keyDown:event];\ + }\ + -(void)keyUp:(NSEvent *)event\ + {\ + if ( !impl->DoHandleKeyEvent(event) )\ + [super keyUp:event];\ + }\ + -(void)flagsChanged:(NSEvent *)event\ + {\ + if ( !impl->DoHandleKeyEvent(event) )\ + [super flagsChanged:event];\ + }\ + - (BOOL) becomeFirstResponder\ + {\ + BOOL r = [super becomeFirstResponder];\ + if ( r )\ + impl->DoNotifyFocusEvent( true );\ + return r;\ + }\ + - (BOOL) resignFirstResponder\ + {\ + BOOL r = [super resignFirstResponder];\ + if ( r )\ + impl->DoNotifyFocusEvent( false );\ + return r;\ + }\ + - (void) resetCursorRects\ + {\ + if ( impl )\ + {\ + wxWindow* wxpeer = impl->GetWXPeer();\ + if ( wxpeer )\ + {\ + NSCursor *cursor = (NSCursor*)wxpeer->GetCursor().GetHCURSOR();\ + if (cursor == NULL)\ + [super resetCursorRects];\ + else\ + [self addCursorRect: [self bounds]\ + cursor: cursor];\ + }\ + }\ } - + + #define WXCOCOAIMPL_COMMON_EVENTS_IMPLEMENTATION -(void)mouseDown:(NSEvent *)event \ + {\ + if ( !impl->DoHandleMouseEvent(event) )\ + [super mouseDown:event];\ + }\ + WXCOCOAIMPL_COMMON_EVENTS_IMPLEMENTATION_NO_MOUSEDOWN + #define WXCOCOAIMPL_COMMON_MEMBERS wxWidgetCocoaImpl* impl; #define WXCOCOAIMPL_COMMON_INTERFACE \ - (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;\ - (wxWidgetCocoaImpl*) implementation;\ - (BOOL) isFlipped;\ - WXCOCOAIMPL_COMMON_MOUSE_INTERFACE + WXCOCOAIMPL_COMMON_EVENTS_INTERFACE - #define WXCOCOAIMPL_COMMON_IMPLEMENTATION WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION \ - - (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation\ + #define WXCOCOAIMPL_COMMON_IMPLEMENTATION_BASE - (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation\ {\ impl = theImplementation;\ }\ @@ -251,10 +363,28 @@ protected : {\ return impl;\ }\ + + #define WXCOCOAIMPL_COMMON_IMPLEMENTATION WXCOCOAIMPL_COMMON_EVENTS_IMPLEMENTATION \ + WXCOCOAIMPL_COMMON_IMPLEMENTATION_BASE \ - (BOOL) isFlipped\ {\ return YES;\ - }\ + } + + #define WXCOCOAIMPL_COMMON_IMPLEMENTATION_NO_MOUSEDOWN WXCOCOAIMPL_COMMON_EVENTS_IMPLEMENTATION_NO_MOUSEDOWN \ + WXCOCOAIMPL_COMMON_IMPLEMENTATION_BASE \ + - (BOOL) isFlipped\ + {\ + return YES;\ + } + + + #define WXCOCOAIMPL_COMMON_IMPLEMENTATION_NOT_FLIPPED WXCOCOAIMPL_COMMON_EVENTS_IMPLEMENTATION \ + WXCOCOAIMPL_COMMON_IMPLEMENTATION_BASE \ + - (BOOL) isFlipped\ + {\ + return NO;\ + } // used for many wxControls @@ -286,6 +416,28 @@ protected : @end + @interface wxNSMenu : NSMenu + { + wxMenuImpl* impl; + } + + - (void) setImplementation:(wxMenuImpl*) item; + - (wxMenuImpl*) implementation; + + @end + + @interface wxNSMenuItem : NSMenuItem + { + wxMenuItemImpl* impl; + } + + - (void) setImplementation:(wxMenuItemImpl*) item; + - (wxMenuItemImpl*) implementation; + + - (void)clickedAction:(id)sender; + - (BOOL)validateMenuItem:(NSMenuItem *)menuItem; + + @end #endif // __OBJC__