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 Gets maximal allowable value.
123 Gets minimal allowable value.
128 Gets the value of the spin control.
130 int GetValue() const;
133 Sets range of allowable values.
135 void SetRange(int minVal
, int maxVal
);
138 Select the text in the text part of the control between positions
139 @a from (inclusive) and @a to (exclusive).
140 This is similar to wxTextCtrl::SetSelection().
142 @note this is currently only implemented for Windows and generic versions
145 virtual void SetSelection(long from
, long to
);
148 Sets the value of the spin control. Use the variant using int instead.
150 virtual void SetValue(const wxString
& text
);
153 Sets the value of the spin control.
155 void SetValue(int value
);
159 @class wxSpinCtrlDouble
161 wxSpinCtrlDouble combines wxTextCtrl and wxSpinButton in one control and
162 displays a real number. (wxSpinCtrl displays an integer.)
165 @style{wxSP_ARROW_KEYS}
166 The user can use arrow keys to change the value.
168 The value wraps at the minimum and maximum.
171 @beginEventEmissionTable{wxSpinDoubleEvent}
172 @event{EVT_SPINCTRLDOUBLE(id, func)}
173 Generated whenever the numeric value of the spin control is changed,
174 that is, when the up/down spin button is clicked, when ENTER is pressed,
175 or the control loses focus and the new value is different from the last.
176 See wxSpinDoubleEvent.
181 @appearance{spinctrldouble.png}
183 @see wxSpinButton, wxSpinCtrl, wxControl
185 class wxSpinCtrlDouble
: public wxControl
194 Constructor, creating and showing a spin control.
197 Parent window. Must not be @NULL.
199 Default value (as text).
201 Window identifier. The value wxID_ANY indicates a default value.
204 If ::wxDefaultPosition is specified then a default position is chosen.
207 If ::wxDefaultSize is specified then a default size is chosen.
209 Window style. See wxSpinButton.
223 wxSpinCtrlDouble(wxWindow
* parent
, wxWindowID id
= -1,
224 const wxString
& value
= wxEmptyString
,
225 const wxPoint
& pos
= wxDefaultPosition
,
226 const wxSize
& size
= wxDefaultSize
,
227 long style
= wxSP_ARROW_KEYS
,
228 double min
= 0, double max
= 100,
229 double initial
= 0, double inc
= 1,
230 const wxString
& name
= wxT("wxSpinCtrlDouble"));
233 Creation function called by the spin control constructor.
234 See wxSpinCtrlDouble() for details.
236 bool Create(wxWindow
* parent
, wxWindowID id
= wxID_ANY
,
237 const wxString
& value
= wxEmptyString
,
238 const wxPoint
& pos
= wxDefaultPosition
,
239 const wxSize
& size
= wxDefaultSize
,
240 long style
= wxSP_ARROW_KEYS
, double min
= 0, double max
= 100,
241 double initial
= 0, double inc
= 1,
242 const wxString
& name
= "wxSpinCtrlDouble");
245 Gets the number of digits in the display.
247 unsigned int GetDigits() const;
250 Gets the increment value.
252 double GetIncrement() const;
255 Gets maximal allowable value.
257 double GetMax() const;
260 Gets minimal allowable value.
262 double GetMin() const;
265 Gets the value of the spin control.
267 double GetValue() const;
270 Sets the number of digits in the display.
272 void SetDigits(unsigned int digits
);
275 Sets the increment value.
277 void SetIncrement(double inc
);
280 Sets range of allowable values.
282 void SetRange(double minVal
, double maxVal
);
285 Sets the value of the spin control. Use the variant using double instead.
287 virtual void SetValue(const wxString
& text
);
290 Sets the value of the spin control.
292 void SetValue(double value
);
296 @class wxSpinDoubleEvent
298 This event class is used for the events generated by wxSpinCtrlDouble.
300 @beginEventTable{wxSpinDoubleEvent}
301 @event{EVT_SPINCTRLDOUBLE(id, func)}
302 Generated whenever the numeric value of the spin control is changed,
303 that is, when the up/down spin button is clicked, when ENTER is pressed,
304 or the control loses focus and the new value is different from the last.
305 See wxSpinDoubleEvent.
311 @see wxSpinCtrlDouble
313 class wxSpinDoubleEvent
: public wxNotifyEvent
317 The constructor. Not normally used by the user code.
319 wxSpinDoubleEvent(wxEventType commandType
= wxEVT_NULL
, int winid
= 0,
323 The copy constructor.
325 wxSpinDoubleEvent(const wxSpinDoubleEvent
& event
);
328 Returns the value associated with this spin control event.
330 double GetValue() const;
333 Set the value associated with the event.
334 (Not normally used by user code.)
336 void SetValue(double value
);
339 wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED
;
340 wxEventType wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED
;