Further simplificiation of the NSSlider/wxSlider interface such that the

various responder methods don't change the controls action but instead send
all actions through the normal wxCocoaNSControl action handling mechanism.
To determine what caused the action we save the message selector in a global
variable (safe since Cocoa does single-threaded event handling).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2007-08-15 04:12:44 +00:00
parent 71e33cfbbd
commit 4f46c20bc4
4 changed files with 110 additions and 190 deletions

View File

@@ -54,25 +54,20 @@ public:
// Cocoa callbacks
// ------------------------------------------------------------------------
protected:
// from NSSLider
// Override this so we can use wxCocoaNSControl's target
void AssociateNSSlider(WX_NSSlider theSlider);
// Helper method to do the real work
virtual void ProcessEventType(wxEventType commandType);
virtual void Cocoa_wxNSSliderUpArrowKeyDown(void) { ProcessEventType(wxEVT_SCROLL_PAGEDOWN); }
virtual void Cocoa_wxNSSliderDownArrowKeyDown(void) { ProcessEventType(wxEVT_SCROLL_PAGEUP); }
virtual void Cocoa_wxNSSliderLeftArrowKeyDown(void) { ProcessEventType(wxEVT_SCROLL_PAGEUP); }
virtual void Cocoa_wxNSSliderRightArrowKeyDown(void) { ProcessEventType(wxEVT_SCROLL_PAGEDOWN); }
virtual void Cocoa_wxNSSliderPageUpKeyDown(void) { ProcessEventType(wxEVT_SCROLL_BOTTOM); }
virtual void Cocoa_wxNSSliderPageDownKeyDown(void) { ProcessEventType(wxEVT_SCROLL_TOP); }
virtual void Cocoa_wxNSSliderMoveUp(void) { ProcessEventType(wxEVT_SCROLL_PAGEDOWN); }
virtual void Cocoa_wxNSSliderMoveDown(void) { ProcessEventType(wxEVT_SCROLL_PAGEUP); }
virtual void Cocoa_wxNSSliderMoveLeft(void) { ProcessEventType(wxEVT_SCROLL_PAGEUP); }
virtual void Cocoa_wxNSSliderMoveRight(void) { ProcessEventType(wxEVT_SCROLL_PAGEDOWN); }
virtual void Cocoa_wxNSSliderPageUp(void) { ProcessEventType(wxEVT_SCROLL_BOTTOM); }
virtual void Cocoa_wxNSSliderPageDown(void) { ProcessEventType(wxEVT_SCROLL_TOP); }
// from wxCocoaNSControl:
virtual void CocoaTarget_action();
// from wxCocoaNSSlider:
virtual void CocoaNotification_startTracking(WX_NSNotification notification);
virtual void CocoaNotification_continueTracking(WX_NSNotification notification);
virtual void CocoaNotification_stopTracking(WX_NSNotification notification);
// ------------------------------------------------------------------------
// Implementation
// ------------------------------------------------------------------------