]>
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.
134 Window position. If wxDefaultPosition is specified then a default position is chosen.
136 Window size. If wxDefaultSize is specified then a default size is chosen.
138 Window style. See wxSlider.
144 @see Create(), wxValidator
146 wxSlider(wxWindow
* parent
, wxWindowID id
, int value
,
147 int minValue
, int maxValue
,
148 const wxPoint
& pos
= wxDefaultPosition
,
149 const wxSize
& size
= wxDefaultSize
,
150 long style
= wxSL_HORIZONTAL
,
151 const wxValidator
& validator
= wxDefaultValidator
,
152 const wxString
& name
= wxSliderNameStr
);
155 Destructor, destroying the slider.
160 Clears the selection, for a slider with the @b wxSL_SELRANGE style.
164 virtual void ClearSel();
171 virtual void ClearTicks();
174 Used for two-step slider construction.
175 See wxSlider() for further details.
177 bool Create(wxWindow
* parent
, wxWindowID id
, int value
, int minValue
,
178 int maxValue
, const wxPoint
& point
= wxDefaultPosition
,
179 const wxSize
& size
= wxDefaultSize
, long style
= wxSL_HORIZONTAL
,
180 const wxValidator
& validator
= wxDefaultValidator
,
181 const wxString
& name
= wxSliderNameStr
);
184 Returns the line size.
188 virtual int GetLineSize() const;
191 Gets the maximum slider value.
193 @see GetMin(), SetRange()
195 virtual int GetMax() const;
198 Gets the minimum slider value.
200 @see GetMin(), SetRange()
202 virtual int GetMin() const;
205 Returns the page size.
209 virtual int GetPageSize() const;
212 Returns the selection end point.
216 @see GetSelStart(), SetSelection()
218 virtual int GetSelEnd() const;
221 Returns the selection start point.
225 @see GetSelEnd(), SetSelection()
227 virtual int GetSelStart() const;
230 Returns the thumb length.
234 @see SetThumbLength()
236 virtual int GetThumbLength() const;
239 Returns the tick frequency.
245 virtual int GetTickFreq() const;
248 Gets the current slider value.
250 @see GetMin(), GetMax(), SetValue()
252 virtual int GetValue() const;
255 Sets the line size for the slider.
258 The number of steps the slider moves when the user moves it up
263 virtual void SetLineSize(int lineSize
);
266 Sets the page size for the slider.
269 The number of steps the slider moves when the user pages up or down.
273 virtual void SetPageSize(int pageSize
);
276 Sets the minimum and maximum slider values.
278 @see GetMin(), GetMax()
280 virtual void SetRange(int minValue
, int maxValue
);
286 The selection start position.
288 The selection end position.
292 @see GetSelStart(), GetSelEnd()
294 virtual void SetSelection(int startPos
, int endPos
);
297 Sets the slider thumb length.
304 @see GetThumbLength()
306 virtual void SetThumbLength(int len
);
309 Sets a tick position.
318 virtual void SetTick(int tickPos
);
321 Sets the tick mark frequency and position.
324 Frequency. For example, if the frequency is set to two, a tick mark is
325 displayed for every other increment in the slider's range.
327 Position. Must be greater than zero. @todo: what is this for?
333 virtual void SetTickFreq(int n
, int pos
);
336 Sets the slider position.
341 virtual void SetValue(int value
);