]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/slider.h
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}
27 Displays minimum, maximum and value labels.
29 Displays ticks on the left and forces the slider to be vertical.
31 Displays ticks on the right and forces the slider to be vertical.
33 Displays ticks on the top.
35 Displays ticks on the bottom (this is the default).
37 Allows the user to select a range on the slider. Windows only.
39 Inverses the mininum and maximum endpoints on the slider. Not
40 compatible with wxSL_SELRANGE.
43 @beginEventEmissionTable{wxScrollEvent}
44 You can use EVT_COMMAND_SCROLL... macros with window IDs for when intercepting
45 scroll events from controls, or EVT_SCROLL... macros without window IDs for
46 intercepting scroll events from the receiving window -- except for this,
47 the macros behave exactly the same.
48 @event{EVT_SCROLL(func)}
49 Process all scroll events.
50 @event{EVT_SCROLL_TOP(func)}
51 Process wxEVT_SCROLL_TOP scroll-to-top events (minimum position).
52 @event{EVT_SCROLL_BOTTOM(func)}
53 Process wxEVT_SCROLL_BOTTOM scroll-to-bottom events (maximum position).
54 @event{EVT_SCROLL_LINEUP(func)}
55 Process wxEVT_SCROLL_LINEUP line up events.
56 @event{EVT_SCROLL_LINEDOWN(func)}
57 Process wxEVT_SCROLL_LINEDOWN line down events.
58 @event{EVT_SCROLL_PAGEUP(func)}
59 Process wxEVT_SCROLL_PAGEUP page up events.
60 @event{EVT_SCROLL_PAGEDOWN(func)}
61 Process wxEVT_SCROLL_PAGEDOWN page down events.
62 @event{EVT_SCROLL_THUMBTRACK(func)}
63 Process wxEVT_SCROLL_THUMBTRACK thumbtrack events
64 (frequent events sent as the user drags the thumbtrack).
65 @event{EVT_SCROLL_THUMBRELEASE(func)}
66 Process wxEVT_SCROLL_THUMBRELEASE thumb release events.
67 @event{EVT_SCROLL_CHANGED(func)}
68 Process wxEVT_SCROLL_CHANGED end of scrolling events (MSW only).
69 @event{EVT_COMMAND_SCROLL(id, func)}
70 Process all scroll events.
71 @event{EVT_COMMAND_SCROLL_TOP(id, func)}
72 Process wxEVT_SCROLL_TOP scroll-to-top events (minimum position).
73 @event{EVT_COMMAND_SCROLL_BOTTOM(id, func)}
74 Process wxEVT_SCROLL_BOTTOM scroll-to-bottom events (maximum position).
75 @event{EVT_COMMAND_SCROLL_LINEUP(id, func)}
76 Process wxEVT_SCROLL_LINEUP line up events.
77 @event{EVT_COMMAND_SCROLL_LINEDOWN(id, func)}
78 Process wxEVT_SCROLL_LINEDOWN line down events.
79 @event{EVT_COMMAND_SCROLL_PAGEUP(id, func)}
80 Process wxEVT_SCROLL_PAGEUP page up events.
81 @event{EVT_COMMAND_SCROLL_PAGEDOWN(id, func)}
82 Process wxEVT_SCROLL_PAGEDOWN page down events.
83 @event{EVT_COMMAND_SCROLL_THUMBTRACK(id, func)}
84 Process wxEVT_SCROLL_THUMBTRACK thumbtrack events
85 (frequent events sent as the user drags the thumbtrack).
86 @event{EVT_COMMAND_SCROLL_THUMBRELEASE(func)}
87 Process wxEVT_SCROLL_THUMBRELEASE thumb release events.
88 @event{EVT_COMMAND_SCROLL_CHANGED(func)}
89 Process wxEVT_SCROLL_CHANGED end of scrolling events (MSW only).
92 @section slider_diff The difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED
94 The EVT_SCROLL_THUMBRELEASE event is only emitted when actually dragging the
95 thumb using the mouse and releasing it (This EVT_SCROLL_THUMBRELEASE event
96 is also followed by an EVT_SCROLL_CHANGED event).
98 The EVT_SCROLL_CHANGED event also occurs when using the keyboard to change
99 the thumb position, and when clicking next to the thumb
100 (In all these cases the EVT_SCROLL_THUMBRELEASE event does not happen).
101 In short, the EVT_SCROLL_CHANGED event is triggered when scrolling/ moving
102 has finished independently of the way it had started.
103 Please see the widgets sample ("Slider" page) to see the difference between
104 EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED in action.
108 @appearance{slider.png}
110 @see @ref overview_events, wxScrollBar
112 class wxSlider
: public wxControl
121 Constructor, creating and showing a slider.
124 Parent window. Must not be @NULL.
126 Window identifier. The value wxID_ANY indicates a default value.
128 Initial position for the slider.
130 Minimum slider position.
132 Maximum slider position.
135 If ::wxDefaultPosition is specified then a default position is chosen.
138 If ::wxDefaultSize is specified then a default size is chosen.
140 Window style. See wxSlider.
146 @see Create(), wxValidator
148 wxSlider(wxWindow
* parent
, wxWindowID id
, int value
,
149 int minValue
, int maxValue
,
150 const wxPoint
& pos
= wxDefaultPosition
,
151 const wxSize
& size
= wxDefaultSize
,
152 long style
= wxSL_HORIZONTAL
,
153 const wxValidator
& validator
= wxDefaultValidator
,
154 const wxString
& name
= wxSliderNameStr
);
157 Destructor, destroying the slider.
162 Clears the selection, for a slider with the @b wxSL_SELRANGE style.
166 virtual void ClearSel();
173 virtual void ClearTicks();
176 Used for two-step slider construction.
177 See wxSlider() for further details.
179 bool Create(wxWindow
* parent
, wxWindowID id
, int value
, int minValue
,
180 int maxValue
, const wxPoint
& point
= wxDefaultPosition
,
181 const wxSize
& size
= wxDefaultSize
, long style
= wxSL_HORIZONTAL
,
182 const wxValidator
& validator
= wxDefaultValidator
,
183 const wxString
& name
= wxSliderNameStr
);
186 Returns the line size.
190 virtual int GetLineSize() const;
193 Gets the maximum slider value.
195 @see GetMin(), SetRange()
197 virtual int GetMax() const;
200 Gets the minimum slider value.
202 @see GetMin(), SetRange()
204 virtual int GetMin() const;
207 Returns the page size.
211 virtual int GetPageSize() const;
214 Returns the selection end point.
218 @see GetSelStart(), SetSelection()
220 virtual int GetSelEnd() const;
223 Returns the selection start point.
227 @see GetSelEnd(), SetSelection()
229 virtual int GetSelStart() const;
232 Returns the thumb length.
236 @see SetThumbLength()
238 virtual int GetThumbLength() const;
241 Returns the tick frequency.
247 virtual int GetTickFreq() const;
250 Gets the current slider value.
252 @see GetMin(), GetMax(), SetValue()
254 virtual int GetValue() const;
257 Sets the line size for the slider.
260 The number of steps the slider moves when the user moves it up
265 virtual void SetLineSize(int lineSize
);
268 Sets the page size for the slider.
271 The number of steps the slider moves when the user pages up or down.
275 virtual void SetPageSize(int pageSize
);
278 Sets the minimum and maximum slider values.
280 @see GetMin(), GetMax()
282 virtual void SetRange(int minValue
, int maxValue
);
288 The selection start position.
290 The selection end position.
294 @see GetSelStart(), GetSelEnd()
296 virtual void SetSelection(int startPos
, int endPos
);
299 Sets the slider thumb length.
306 @see GetThumbLength()
308 virtual void SetThumbLength(int len
);
311 Sets a tick position.
320 virtual void SetTick(int tickPos
);
323 Sets the tick mark frequency and position.
326 Frequency. For example, if the frequency is set to two, a tick mark is
327 displayed for every other increment in the slider's range.
329 Position. Must be greater than zero. @todo: what is this for?
335 virtual void SetTickFreq(int n
, int pos
);
338 Sets the slider position.
343 virtual void SetValue(int value
);