1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/cocoa/slider.h 3 // Purpose: wxSlider class 4 // Author: David Elliott 5 // Mark Oxenham 6 // Modified by: 7 // Created: 2003/06/19 8 // Copyright: (c) 2003 David Elliott 9 // (c) 2007 Software 2000 Ltd. 10 // Licence: wxWindows licence 11 ///////////////////////////////////////////////////////////////////////////// 12 13 #ifndef __WX_COCOA_SLIDER_H__ 14 #define __WX_COCOA_SLIDER_H__ 15 16 #include "wx/cocoa/NSSlider.h" 17 18 // ======================================================================== 19 // wxSlider 20 // ======================================================================== 21 class WXDLLIMPEXP_CORE wxSlider: public wxSliderBase, protected wxCocoaNSSlider 22 { 23 DECLARE_DYNAMIC_CLASS(wxSlider) DECLARE_EVENT_TABLE()24 DECLARE_EVENT_TABLE() 25 WX_DECLARE_COCOA_OWNER(NSSlider,NSControl,NSView) 26 // ------------------------------------------------------------------------ 27 // initialization 28 // ------------------------------------------------------------------------ 29 public: 30 wxSlider() { } 31 wxSlider(wxWindow *parent, wxWindowID winid, 32 int value, int minValue, int maxValue, 33 const wxPoint& pos = wxDefaultPosition, 34 const wxSize& size = wxDefaultSize, 35 long style = wxSL_HORIZONTAL, 36 const wxValidator& validator = wxDefaultValidator, 37 const wxString& name = wxSliderNameStr) 38 { 39 Create(parent, winid, value, minValue, maxValue, 40 pos, size, style, validator, name); 41 } 42 43 bool Create(wxWindow *parent, wxWindowID winid, 44 int value, int minValue, int maxValue, 45 const wxPoint& pos = wxDefaultPosition, 46 const wxSize& size = wxDefaultSize, 47 long style = wxSL_HORIZONTAL, 48 const wxValidator& validator = wxDefaultValidator, 49 const wxString& name = wxSliderNameStr); 50 virtual ~wxSlider(); 51 52 // ------------------------------------------------------------------------ 53 // Cocoa callbacks 54 // ------------------------------------------------------------------------ 55 protected: 56 // Override this so we can use wxCocoaNSControl's target 57 void AssociateNSSlider(WX_NSSlider theSlider); 58 59 // Helper method to do the real work 60 virtual void ProcessEventType(wxEventType commandType); 61 62 // from wxCocoaNSControl: 63 virtual void CocoaTarget_action(); 64 65 // from wxCocoaNSSlider: 66 virtual void CocoaNotification_startTracking(WX_NSNotification notification); 67 virtual void CocoaNotification_continueTracking(WX_NSNotification notification); 68 virtual void CocoaNotification_stopTracking(WX_NSNotification notification); 69 70 // ------------------------------------------------------------------------ 71 // Implementation 72 // ------------------------------------------------------------------------ 73 public: 74 // Pure Virtuals 75 virtual int GetValue() const; 76 virtual void SetValue(int value); 77 78 // retrieve/change the range 79 virtual void SetRange(int minValue, int maxValue); 80 virtual int GetMin() const; 81 virtual int GetMax() const; 82 83 // the line/page size is the increment by which the slider moves when 84 // cursor arrow key/page up or down are pressed (clicking the mouse is like 85 // pressing PageUp/Down) and are by default set to 1 and 1/10 of the range 86 virtual void SetLineSize(int lineSize); 87 virtual void SetPageSize(int pageSize); 88 virtual int GetLineSize() const; 89 virtual int GetPageSize() const; 90 91 // these methods get/set the length of the slider pointer in pixels 92 virtual void SetThumbLength(int lenPixels); 93 virtual int GetThumbLength() const; 94 95 // copied from (wxSliderCocoa.h) 96 virtual int GetTickFreq() const; ClearTicks()97 virtual void ClearTicks() { SetTickFreq(0); } 98 99 virtual void SetTickPos(int pos); 100 101 protected: 102 // Platform-specific implementation of SetTickFreq 103 virtual void DoSetTickFreq(int freq); 104 }; 105 106 #endif 107 // __WX_COCOA_SLIDER_H__ 108