1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of wxSpinCtrl
4 // Author: wxWidgets team
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
12 wxSpinCtrl combines wxTextCtrl and wxSpinButton in one control.
15 @style{wxSP_ARROW_KEYS}
16 The user can use arrow keys to change the value.
18 The value wraps at the minimum and maximum.
19 @style{wxTE_PROCESS_ENTER}
20 Indicates that the control should generate @c wxEVT_COMMAND_TEXT_ENTER
21 events. Using this style will prevent the user from using the Enter key
22 for dialog navigation (e.g. activating the default button in the
25 Same as wxTE_LEFT for wxTextCtrl: the text is left aligned.
26 @style{wxALIGN_CENTRE_HORIZONTAL}
27 Same as wxTE_CENTRE for wxTextCtrl: the text is centered.
29 Same as wxTE_RIGHT for wxTextCtrl: the text is right aligned (this is
34 @beginEventEmissionTable{wxSpinEvent}
35 @event{EVT_SPINCTRL(id, func)}
36 Process a wxEVT_COMMAND_SPINCTRL_UPDATED event, which is generated
37 whenever the numeric value of the spin control is updated.
40 You may also use the wxSpinButton event macros, however the corresponding events
41 will not be generated under all platforms. Finally, if the user modifies the
42 text in the edit part of the spin control directly, the EVT_TEXT is generated,
43 like for the wxTextCtrl. When the use enters text into the text area, the text
44 is not validated until the control loses focus (e.g. by using the TAB key).
45 The value is then adjusted to the range and a wxSpinEvent sent then if the value
46 is different from the last value sent.
50 @appearance{spinctrl.png}
52 @see wxSpinButton, wxSpinCtrlDouble, wxControl
54 class wxSpinCtrl
: public wxControl
63 Constructor, creating and showing a spin control.
65 If @a value is non-empty, it will be shown in the text entry part of
66 the control and if it has numeric value, the initial numeric value of
67 the control, as returned by GetValue() will also be determined by it
68 instead of by @a initial. Hence, it only makes sense to specify @a
69 initial if @a value is an empty string or is not convertible to a
70 number, otherwise @a initial is simply ignored and the number specified
74 Parent window. Must not be @NULL.
76 Default value (as text).
78 Window identifier. The value wxID_ANY indicates a default value.
81 If ::wxDefaultPosition is specified then a default position is chosen.
84 If ::wxDefaultSize is specified then a default size is chosen.
86 Window style. See wxSpinButton.
98 wxSpinCtrl(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
99 const wxString
& value
= wxEmptyString
,
100 const wxPoint
& pos
= wxDefaultPosition
,
101 const wxSize
& size
= wxDefaultSize
,
102 long style
= wxSP_ARROW_KEYS
,
103 int min
= 0, int max
= 100,
104 int initial
= 0, const wxString
& name
= "wxSpinCtrl");
107 Creation function called by the spin control constructor.
108 See wxSpinCtrl() for details.
110 bool Create(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
111 const wxString
& value
= wxEmptyString
,
112 const wxPoint
& pos
= wxDefaultPosition
,
113 const wxSize
& size
= wxDefaultSize
,
114 long style
= wxSP_ARROW_KEYS
, int min
= 0, int max
= 100,
115 int initial
= 0, const wxString
& name
= "wxSpinCtrl");
118 Returns the numerical base being currently used, 10 by default.
127 Gets maximal allowable value.
132 Gets minimal allowable value.
137 Gets the value of the spin control.
139 int GetValue() const;
142 Sets the base to use for the numbers in this control.
144 Currently the only supported values are 10 (which is the default) and
147 Changing the base allows the user to enter the numbers in the specified
148 base, e.g. with "0x" prefix for hexadecimal numbers, and also displays
149 the numbers in the specified base when they are changed using the spin
153 Numeric base, currently only 10 and 16 are supported.
155 @true if the base was successfully changed or @false if it failed,
156 usually meaning that either the base is not 10 or 16.
160 bool SetBase(int base
);
163 Sets range of allowable values.
165 Notice that calling this method may change the value of the control if
166 it's not inside the new valid range, e.g. it will become @a minVal if
167 it is less than it now. However no @c wxEVT_COMMAND_SPINCTRL_UPDATED
168 event is generated, even if it the value does change.
170 void SetRange(int minVal
, int maxVal
);
173 Select the text in the text part of the control between positions
174 @a from (inclusive) and @a to (exclusive).
175 This is similar to wxTextCtrl::SetSelection().
177 @note this is currently only implemented for Windows and generic versions
180 virtual void SetSelection(long from
, long to
);
183 Sets the value of the spin control. Use the variant using int instead.
185 virtual void SetValue(const wxString
& text
);
188 Sets the value of the spin control.
190 void SetValue(int value
);
194 @class wxSpinCtrlDouble
196 wxSpinCtrlDouble combines wxTextCtrl and wxSpinButton in one control and
197 displays a real number. (wxSpinCtrl displays an integer.)
200 @style{wxSP_ARROW_KEYS}
201 The user can use arrow keys to change the value.
203 The value wraps at the minimum and maximum.
206 @beginEventEmissionTable{wxSpinDoubleEvent}
207 @event{EVT_SPINCTRLDOUBLE(id, func)}
208 Generated whenever the numeric value of the spin control is changed,
209 that is, when the up/down spin button is clicked, when ENTER is pressed,
210 or the control loses focus and the new value is different from the last.
211 See wxSpinDoubleEvent.
216 @appearance{spinctrldouble.png}
218 @see wxSpinButton, wxSpinCtrl, wxControl
220 class wxSpinCtrlDouble
: public wxControl
229 Constructor, creating and showing a spin control.
232 Parent window. Must not be @NULL.
234 Default value (as text).
236 Window identifier. The value wxID_ANY indicates a default value.
239 If ::wxDefaultPosition is specified then a default position is chosen.
242 If ::wxDefaultSize is specified then a default size is chosen.
244 Window style. See wxSpinButton.
258 wxSpinCtrlDouble(wxWindow
* parent
, wxWindowID id
= -1,
259 const wxString
& value
= wxEmptyString
,
260 const wxPoint
& pos
= wxDefaultPosition
,
261 const wxSize
& size
= wxDefaultSize
,
262 long style
= wxSP_ARROW_KEYS
,
263 double min
= 0, double max
= 100,
264 double initial
= 0, double inc
= 1,
265 const wxString
& name
= wxT("wxSpinCtrlDouble"));
268 Creation function called by the spin control constructor.
269 See wxSpinCtrlDouble() for details.
271 bool Create(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
272 const wxString
& value
= wxEmptyString
,
273 const wxPoint
& pos
= wxDefaultPosition
,
274 const wxSize
& size
= wxDefaultSize
,
275 long style
= wxSP_ARROW_KEYS
, double min
= 0, double max
= 100,
276 double initial
= 0, double inc
= 1,
277 const wxString
& name
= "wxSpinCtrlDouble");
280 Gets the number of digits in the display.
282 unsigned int GetDigits() const;
285 Gets the increment value.
287 double GetIncrement() const;
290 Gets maximal allowable value.
292 double GetMax() const;
295 Gets minimal allowable value.
297 double GetMin() const;
300 Gets the value of the spin control.
302 double GetValue() const;
305 Sets the number of digits in the display.
307 void SetDigits(unsigned int digits
);
310 Sets the increment value.
311 @note You may also need to increase the number of visible digits
314 void SetIncrement(double inc
);
317 Sets range of allowable values.
319 void SetRange(double minVal
, double maxVal
);
322 Sets the value of the spin control. Use the variant using double instead.
324 virtual void SetValue(const wxString
& text
);
327 Sets the value of the spin control.
329 void SetValue(double value
);
333 @class wxSpinDoubleEvent
335 This event class is used for the events generated by wxSpinCtrlDouble.
337 @beginEventTable{wxSpinDoubleEvent}
338 @event{EVT_SPINCTRLDOUBLE(id, func)}
339 Generated whenever the numeric value of the spin control is changed,
340 that is, when the up/down spin button is clicked, when ENTER is pressed,
341 or the control loses focus and the new value is different from the last.
342 See wxSpinDoubleEvent.
348 @see wxSpinCtrlDouble
350 class wxSpinDoubleEvent
: public wxNotifyEvent
354 The constructor. Not normally used by the user code.
356 wxSpinDoubleEvent(wxEventType commandType
= wxEVT_NULL
, int winid
= 0,
360 The copy constructor.
362 wxSpinDoubleEvent(const wxSpinDoubleEvent
& event
);
365 Returns the value associated with this spin control event.
367 double GetValue() const;
370 Set the value associated with the event.
371 (Not normally used by user code.)
373 void SetValue(double value
);
376 wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED
;
377 wxEventType wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED
;