]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/slider.h
1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxSlider interface
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 1996-2001 wxWidgets team
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_SLIDER_H_BASE_
13 #define _WX_SLIDER_H_BASE_
15 // ----------------------------------------------------------------------------
17 // ----------------------------------------------------------------------------
23 #include "wx/control.h"
25 extern WXDLLEXPORT_DATA(const wxChar
*) wxSliderNameStr
;
27 // ----------------------------------------------------------------------------
28 // wxSliderBase: define wxSlider interface
29 // ----------------------------------------------------------------------------
31 class WXDLLEXPORT wxSliderBase
: public wxControl
34 /* the ctor of the derived class should have the following form:
36 wxSlider(wxWindow *parent,
38 int value, int minValue, int maxValue,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize,
41 long style = wxSL_HORIZONTAL,
42 const wxValidator& validator = wxDefaultValidator,
43 const wxString& name = wxSliderNameStr);
47 // get/set the current slider value (should be in range)
48 virtual int GetValue() const = 0;
49 virtual void SetValue(int value
) = 0;
51 // retrieve/change the range
52 virtual void SetRange(int minValue
, int maxValue
) = 0;
53 virtual int GetMin() const = 0;
54 virtual int GetMax() const = 0;
55 void SetMin( int minValue
) { SetRange( minValue
, GetMax() ) ; }
56 void SetMax( int maxValue
) { SetRange( GetMin() , maxValue
) ; }
58 // the line/page size is the increment by which the slider moves when
59 // cursor arrow key/page up or down are pressed (clicking the mouse is like
60 // pressing PageUp/Down) and are by default set to 1 and 1/10 of the range
61 virtual void SetLineSize(int lineSize
) = 0;
62 virtual void SetPageSize(int pageSize
) = 0;
63 virtual int GetLineSize() const = 0;
64 virtual int GetPageSize() const = 0;
66 // these methods get/set the length of the slider pointer in pixels
67 virtual void SetThumbLength(int lenPixels
) = 0;
68 virtual int GetThumbLength() const = 0;
70 // warning: most of subsequent methods are currently only implemented in
71 // wxMSW under Win95 and are silently ignored on other platforms
73 virtual void SetTickFreq(int WXUNUSED(n
), int WXUNUSED(pos
)) { }
74 virtual int GetTickFreq() const { return 0; }
75 virtual void ClearTicks() { }
76 virtual void SetTick(int WXUNUSED(tickPos
)) { }
78 virtual void ClearSel() { }
79 virtual int GetSelEnd() const { return GetMin(); }
80 virtual int GetSelStart() const { return GetMax(); }
81 virtual void SetSelection(int WXUNUSED(min
), int WXUNUSED(max
)) { }
83 virtual void ApplyParentThemeBackground(const wxColour
& bg
)
84 { SetBackgroundColour(bg
); }
88 // adjust value according to wxSL_INVERSE style
89 virtual int ValueInvertOrNot(int value
) const
91 if (HasFlag(wxSL_INVERSE
))
92 return (GetMax() + GetMin()) - value
;
98 DECLARE_NO_COPY_CLASS(wxSliderBase
)
101 // ----------------------------------------------------------------------------
102 // include the real class declaration
103 // ----------------------------------------------------------------------------
105 #if defined(__WXUNIVERSAL__)
106 #include "wx/univ/slider.h"
107 #elif defined(__WXMSW__)
108 #include "wx/msw/slider95.h"
109 #if WXWIN_COMPATIBILITY_2_4
110 #define wxSlider95 wxSlider
112 #elif defined(__WXMOTIF__)
113 #include "wx/motif/slider.h"
114 #elif defined(__WXGTK__)
115 #include "wx/gtk/slider.h"
116 #elif defined(__WXMAC__)
117 #include "wx/mac/slider.h"
118 #elif defined(__WXCOCOA__)
119 #include "wx/cocoa/slider.h"
120 #elif defined(__WXPM__)
121 #include "wx/os2/slider.h"
122 #elif defined(__WXPALMOS__)
123 #include "wx/palmos/slider.h"
126 #endif // wxUSE_SLIDER
129 // _WX_SLIDER_H_BASE_