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}
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 a non-empty string not convertible to a number,
70 otherwise @a initial is simply ignored.
73 Parent window. Must not be @NULL.
75 Default value (as text).
77 Window identifier. The value wxID_ANY indicates a default value.
80 If ::wxDefaultPosition is specified then a default position is chosen.
83 If ::wxDefaultSize is specified then a default size is chosen.
85 Window style. See wxSpinButton.
97 wxSpinCtrl(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
98 const wxString
& value
= wxEmptyString
,
99 const wxPoint
& pos
= wxDefaultPosition
,
100 const wxSize
& size
= wxDefaultSize
,
101 long style
= wxSP_ARROW_KEYS
,
102 int min
= 0, int max
= 100,
103 int initial
= 0, const wxString
& name
= "wxSpinCtrl");
106 Creation function called by the spin control constructor.
107 See wxSpinCtrl() for details.
109 bool Create(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
110 const wxString
& value
= wxEmptyString
,
111 const wxPoint
& pos
= wxDefaultPosition
,
112 const wxSize
& size
= wxDefaultSize
,
113 long style
= wxSP_ARROW_KEYS
, int min
= 0, int max
= 100,
114 int initial
= 0, const wxString
& name
= "wxSpinCtrl");
117 Gets maximal allowable value.
122 Gets minimal allowable value.
127 Gets the value of the spin control.
129 int GetValue() const;
132 Sets range of allowable values.
134 void SetRange(int minVal
, int maxVal
);
137 Select the text in the text part of the control between positions
138 @a from (inclusive) and @a to (exclusive).
139 This is similar to wxTextCtrl::SetSelection().
141 @note this is currently only implemented for Windows and generic versions
144 virtual void SetSelection(long from
, long to
);
147 Sets the value of the spin control. Use the variant using int instead.
149 virtual void SetValue(const wxString
& text
);
152 Sets the value of the spin control.
154 void SetValue(int value
);
158 @class wxSpinCtrlDouble
160 wxSpinCtrlDouble combines wxTextCtrl and wxSpinButton in one control and
161 displays a real number. (wxSpinCtrl displays an integer.)
164 @style{wxSP_ARROW_KEYS}
165 The user can use arrow keys to change the value.
167 The value wraps at the minimum and maximum.
170 @beginEventEmissionTable{wxSpinDoubleEvent}
171 @event{EVT_SPINCTRLDOUBLE(id, func)}
172 Generated whenever the numeric value of the spin control is changed,
173 that is, when the up/down spin button is clicked, when ENTER is pressed,
174 or the control loses focus and the new value is different from the last.
175 See wxSpinDoubleEvent.
180 @appearance{spinctrldouble.png}
182 @see wxSpinButton, wxSpinCtrl, wxControl
184 class wxSpinCtrlDouble
: public wxControl
193 Constructor, creating and showing a spin control.
196 Parent window. Must not be @NULL.
198 Default value (as text).
200 Window identifier. The value wxID_ANY indicates a default value.
203 If ::wxDefaultPosition is specified then a default position is chosen.
206 If ::wxDefaultSize is specified then a default size is chosen.
208 Window style. See wxSpinButton.
222 wxSpinCtrlDouble(wxWindow
* parent
, wxWindowID id
= -1,
223 const wxString
& value
= wxEmptyString
,
224 const wxPoint
& pos
= wxDefaultPosition
,
225 const wxSize
& size
= wxDefaultSize
,
226 long style
= wxSP_ARROW_KEYS
,
227 double min
= 0, double max
= 100,
228 double initial
= 0, double inc
= 1,
229 const wxString
& name
= wxT("wxSpinCtrlDouble"));
232 Creation function called by the spin control constructor.
233 See wxSpinCtrlDouble() for details.
235 bool Create(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
236 const wxString
& value
= wxEmptyString
,
237 const wxPoint
& pos
= wxDefaultPosition
,
238 const wxSize
& size
= wxDefaultSize
,
239 long style
= wxSP_ARROW_KEYS
, double min
= 0, double max
= 100,
240 double initial
= 0, double inc
= 1,
241 const wxString
& name
= "wxSpinCtrlDouble");
244 Gets the number of digits in the display.
246 unsigned int GetDigits() const;
249 Gets the increment value.
251 double GetIncrement() const;
254 Gets maximal allowable value.
256 double GetMax() const;
259 Gets minimal allowable value.
261 double GetMin() const;
264 Gets the value of the spin control.
266 double GetValue() const;
269 Sets the number of digits in the display.
271 void SetDigits(unsigned int digits
);
274 Sets the increment value.
276 void SetIncrement(double inc
);
279 Sets range of allowable values.
281 void SetRange(double minVal
, double maxVal
);
284 Sets the value of the spin control. Use the variant using double instead.
286 virtual void SetValue(const wxString
& text
);
289 Sets the value of the spin control.
291 void SetValue(double value
);
295 @class wxSpinDoubleEvent
297 This event class is used for the events generated by wxSpinCtrlDouble.
299 @beginEventTable{wxSpinDoubleEvent}
300 @event{EVT_SPINCTRLDOUBLE(id, func)}
301 Generated whenever the numeric value of the spin control is changed,
302 that is, when the up/down spin button is clicked, when ENTER is pressed,
303 or the control loses focus and the new value is different from the last.
304 See wxSpinDoubleEvent.
310 @see wxSpinCtrlDouble
312 class wxSpinDoubleEvent
: public wxNotifyEvent
316 The constructor. Not normally used by the user code.
318 wxSpinDoubleEvent(wxEventType commandType
= wxEVT_NULL
, int winid
= 0,
322 The copy constructor.
324 wxSpinDoubleEvent(const wxSpinDoubleEvent
& event
);
327 Returns the value associated with this spin control event.
329 double GetValue() const;
332 Set the value associated with the event.
333 (Not normally used by user code.)
335 void SetValue(double value
);
338 wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED
;
339 wxEventType wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED
;