]>
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 @beginEventTable{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.
106 @todo are all strings "Windows 95 only" really up2date?
110 @appearance{slider.png}
112 @see @ref overview_eventhandling, wxScrollBar
114 class wxSlider
: public wxControl
123 Constructor, creating and showing a slider.
126 Parent window. Must not be @NULL.
128 Window identifier. The value wxID_ANY indicates a default value.
130 Initial position for the slider.
132 Minimum slider position.
134 Maximum slider position.
136 Window position. If wxDefaultPosition is specified then a default position is chosen.
138 Window size. 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
= "slider");
157 Destructor, destroying the slider.
162 Clears the selection, for a slider with the @b wxSL_SELRANGE style.
164 @remarks Windows 95 only.
166 virtual void ClearSel();
171 @remarks Windows 95 only.
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
,
180 int minValue
, int maxValue
,
181 const wxPoint
& point
= wxDefaultPosition
,
182 const wxSize
& size
= wxDefaultSize
,
183 long style
= wxSL_HORIZONTAL
,
184 const wxValidator
& validator
= wxDefaultValidator
,
185 const wxString
& name
= "slider");
188 Returns the line size.
192 virtual int GetLineSize() const;
195 Gets the maximum slider value.
197 @see GetMin(), SetRange()
199 virtual int GetMax() const;
202 Gets the minimum slider value.
204 @see GetMin(), SetRange()
206 virtual int GetMin() const;
209 Returns the page size.
213 virtual int GetPageSize() const;
216 Returns the selection end point.
218 @remarks Windows 95 only.
220 @see GetSelStart(), SetSelection()
222 virtual int GetSelEnd() const;
225 Returns the selection start point.
227 @remarks Windows 95 only.
229 @see GetSelEnd(), SetSelection()
231 virtual int GetSelStart() const;
234 Returns the thumb length.
236 @remarks Windows 95 only.
238 @see SetThumbLength()
240 virtual int GetThumbLength() const;
243 Returns the tick frequency.
245 @remarks Windows 95 only.
249 virtual int GetTickFreq() const;
252 Gets the current slider value.
254 @see GetMin(), GetMax(), SetValue()
256 virtual int GetValue() const;
259 Sets the line size for the slider.
262 The number of steps the slider moves when the user moves it up
267 virtual void SetLineSize(int lineSize
);
270 Sets the page size for the slider.
273 The number of steps the slider moves when the user pages up or down.
277 virtual void SetPageSize(int pageSize
);
280 Sets the minimum and maximum slider values.
282 @see GetMin(), GetMax()
284 virtual void SetRange(int minValue
, int maxValue
);
290 The selection start position.
292 The selection end position.
294 @remarks Windows 95 only.
296 @see GetSelStart(), GetSelEnd()
298 virtual void SetSelection(int startPos
, int endPos
);
301 Sets the slider thumb length.
306 @remarks Windows 95 only.
308 @see GetThumbLength()
310 virtual void SetThumbLength(int len
);
313 Sets a tick position.
318 @remarks Windows 95 only.
322 virtual void SetTick(int tickPos
);
325 Sets the tick mark frequency and position.
328 Frequency. For example, if the frequency is set to two, a tick mark is
329 displayed for every other increment in the slider's range.
331 Position. Must be greater than zero. @todo: what is this for?
333 @remarks Windows 95 only.
337 virtual void SetTickFreq(int n
, int pos
);
340 Sets the slider position.
345 virtual void SetValue(int value
);