1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of wxSlider
4 // Author: wxWidgets team
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
12 A slider is a control with a handle which can be pulled back and forth to
15 On Windows, the track bar control is used.
17 Slider events are handled in the same way as a scrollbar.
20 @style{wxSL_HORIZONTAL}
21 Displays the slider horizontally (this is the default).
23 Displays the slider vertically.
24 @style{wxSL_AUTOTICKS}
25 Displays tick marks. Windows only.
26 @style{wxSL_MIN_MAX_LABELS}
27 Displays minimum, maximum labels.
28 @style{wxSL_VALUE_LABEL}
31 Displays minimum, maximum and value labels (same as the two above together).
33 Displays ticks on the left and forces the slider to be vertical.
35 Displays ticks on the right and forces the slider to be vertical.
37 Displays ticks on the top.
39 Displays ticks on the bottom (this is the default).
41 Allows the user to select a range on the slider. Windows only.
43 Inverses the mininum and maximum endpoints on the slider. Not
44 compatible with wxSL_SELRANGE.
47 @beginEventEmissionTable{wxScrollEvent}
48 You can use EVT_COMMAND_SCROLL... macros with window IDs for when intercepting
49 scroll events from controls, or EVT_SCROLL... macros without window IDs for
50 intercepting scroll events from the receiving window -- except for this,
51 the macros behave exactly the same.
52 @event{EVT_SCROLL(func)}
53 Process all scroll events.
54 @event{EVT_SCROLL_TOP(func)}
55 Process wxEVT_SCROLL_TOP scroll-to-top events (minimum position).
56 @event{EVT_SCROLL_BOTTOM(func)}
57 Process wxEVT_SCROLL_BOTTOM scroll-to-bottom events (maximum position).
58 @event{EVT_SCROLL_LINEUP(func)}
59 Process wxEVT_SCROLL_LINEUP line up events.
60 @event{EVT_SCROLL_LINEDOWN(func)}
61 Process wxEVT_SCROLL_LINEDOWN line down events.
62 @event{EVT_SCROLL_PAGEUP(func)}
63 Process wxEVT_SCROLL_PAGEUP page up events.
64 @event{EVT_SCROLL_PAGEDOWN(func)}
65 Process wxEVT_SCROLL_PAGEDOWN page down events.
66 @event{EVT_SCROLL_THUMBTRACK(func)}
67 Process wxEVT_SCROLL_THUMBTRACK thumbtrack events
68 (frequent events sent as the user drags the thumbtrack).
69 @event{EVT_SCROLL_THUMBRELEASE(func)}
70 Process wxEVT_SCROLL_THUMBRELEASE thumb release events.
71 @event{EVT_SCROLL_CHANGED(func)}
72 Process wxEVT_SCROLL_CHANGED end of scrolling events (MSW only).
73 @event{EVT_COMMAND_SCROLL(id, func)}
74 Process all scroll events.
75 @event{EVT_COMMAND_SCROLL_TOP(id, func)}
76 Process wxEVT_SCROLL_TOP scroll-to-top events (minimum position).
77 @event{EVT_COMMAND_SCROLL_BOTTOM(id, func)}
78 Process wxEVT_SCROLL_BOTTOM scroll-to-bottom events (maximum position).
79 @event{EVT_COMMAND_SCROLL_LINEUP(id, func)}
80 Process wxEVT_SCROLL_LINEUP line up events.
81 @event{EVT_COMMAND_SCROLL_LINEDOWN(id, func)}
82 Process wxEVT_SCROLL_LINEDOWN line down events.
83 @event{EVT_COMMAND_SCROLL_PAGEUP(id, func)}
84 Process wxEVT_SCROLL_PAGEUP page up events.
85 @event{EVT_COMMAND_SCROLL_PAGEDOWN(id, func)}
86 Process wxEVT_SCROLL_PAGEDOWN page down events.
87 @event{EVT_COMMAND_SCROLL_THUMBTRACK(id, func)}
88 Process wxEVT_SCROLL_THUMBTRACK thumbtrack events
89 (frequent events sent as the user drags the thumbtrack).
90 @event{EVT_COMMAND_SCROLL_THUMBRELEASE(func)}
91 Process wxEVT_SCROLL_THUMBRELEASE thumb release events.
92 @event{EVT_COMMAND_SCROLL_CHANGED(func)}
93 Process wxEVT_SCROLL_CHANGED end of scrolling events (MSW only).
96 @section slider_diff The difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED
98 The EVT_SCROLL_THUMBRELEASE event is only emitted when actually dragging the
99 thumb using the mouse and releasing it (This EVT_SCROLL_THUMBRELEASE event
100 is also followed by an EVT_SCROLL_CHANGED event).
102 The EVT_SCROLL_CHANGED event also occurs when using the keyboard to change
103 the thumb position, and when clicking next to the thumb
104 (In all these cases the EVT_SCROLL_THUMBRELEASE event does not happen).
105 In short, the EVT_SCROLL_CHANGED event is triggered when scrolling/ moving
106 has finished independently of the way it had started.
107 Please see the widgets sample ("Slider" page) to see the difference between
108 EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED in action.
112 @appearance{slider.png}
114 @see @ref overview_events, wxScrollBar
116 class wxSlider
: public wxControl
125 Constructor, creating and showing a slider.
128 Parent window. Must not be @NULL.
130 Window identifier. The value wxID_ANY indicates a default value.
132 Initial position for the slider.
134 Minimum slider position.
136 Maximum slider position.
139 If ::wxDefaultPosition is specified then a default position is chosen.
142 If ::wxDefaultSize is specified then a default size is chosen.
144 Window style. See wxSlider.
150 @see Create(), wxValidator
152 wxSlider(wxWindow
* parent
, wxWindowID id
, int value
,
153 int minValue
, int maxValue
,
154 const wxPoint
& pos
= wxDefaultPosition
,
155 const wxSize
& size
= wxDefaultSize
,
156 long style
= wxSL_HORIZONTAL
,
157 const wxValidator
& validator
= wxDefaultValidator
,
158 const wxString
& name
= wxSliderNameStr
);
161 Destructor, destroying the slider.
166 Clears the selection, for a slider with the @b wxSL_SELRANGE style.
170 virtual void ClearSel();
177 virtual void ClearTicks();
180 Used for two-step slider construction.
181 See wxSlider() for further details.
183 bool Create(wxWindow
* parent
, wxWindowID id
, int value
, int minValue
,
184 int maxValue
, const wxPoint
& point
= wxDefaultPosition
,
185 const wxSize
& size
= wxDefaultSize
, long style
= wxSL_HORIZONTAL
,
186 const wxValidator
& validator
= wxDefaultValidator
,
187 const wxString
& name
= wxSliderNameStr
);
190 Returns the line size.
194 virtual int GetLineSize() const;
197 Gets the maximum slider value.
199 @see GetMin(), SetRange()
201 virtual int GetMax() const;
204 Gets the minimum slider value.
206 @see GetMin(), SetRange()
208 virtual int GetMin() const;
211 Returns the page size.
215 virtual int GetPageSize() const;
218 Returns the selection end point.
222 @see GetSelStart(), SetSelection()
224 virtual int GetSelEnd() const;
227 Returns the selection start point.
231 @see GetSelEnd(), SetSelection()
233 virtual int GetSelStart() const;
236 Returns the thumb length.
240 @see SetThumbLength()
242 virtual int GetThumbLength() const;
245 Returns the tick frequency.
251 virtual int GetTickFreq() const;
254 Gets the current slider value.
256 @see GetMin(), GetMax(), SetValue()
258 virtual int GetValue() const;
261 Sets the line size for the slider.
264 The number of steps the slider moves when the user moves it up
269 virtual void SetLineSize(int lineSize
);
272 Sets the page size for the slider.
275 The number of steps the slider moves when the user pages up or down.
279 virtual void SetPageSize(int pageSize
);
282 Sets the minimum and maximum slider values.
284 @see GetMin(), GetMax()
286 virtual void SetRange(int minValue
, int maxValue
);
292 The selection start position.
294 The selection end position.
298 @see GetSelStart(), GetSelEnd()
300 virtual void SetSelection(int startPos
, int endPos
);
303 Sets the slider thumb length.
310 @see GetThumbLength()
312 virtual void SetThumbLength(int len
);
315 Sets a tick position.
324 virtual void SetTick(int tickPos
);
327 Sets the tick mark frequency and position.
330 Frequency. For example, if the frequency is set to two, a tick mark is
331 displayed for every other increment in the slider's range.
333 Position. Must be greater than zero. @todo: what is this for?
339 virtual void SetTickFreq(int n
, int pos
);
342 Sets the slider position.
347 virtual void SetValue(int value
);