// Name: spinctrl.h
// Purpose: interface of wxSpinCtrl
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@style{wxSP_WRAP}
The value wraps at the minimum and maximum.
@style{wxTE_PROCESS_ENTER}
- Indicates that the control should generate wxEVT_COMMAND_TEXT_ENTER
+ Indicates that the control should generate @c wxEVT_TEXT_ENTER
events. Using this style will prevent the user from using the Enter key
for dialog navigation (e.g. activating the default button in the
dialog) under MSW.
@style{wxALIGN_LEFT}
Same as wxTE_LEFT for wxTextCtrl: the text is left aligned.
- @style{wxALIGN_CENTRE}
+ @style{wxALIGN_CENTRE_HORIZONTAL}
Same as wxTE_CENTRE for wxTextCtrl: the text is centered.
@style{wxALIGN_RIGHT}
Same as wxTE_RIGHT for wxTextCtrl: the text is right aligned (this is
@beginEventEmissionTable{wxSpinEvent}
@event{EVT_SPINCTRL(id, func)}
- Generated whenever the numeric value of the spinctrl is updated
+ Process a wxEVT_SPINCTRL event, which is generated
+ whenever the numeric value of the spin control is updated.
@endEventTable
You may also use the wxSpinButton event macros, however the corresponding events
@library{wxcore}
@category{ctrl}
- @appearance{spinctrl.png}
+ @appearance{spinctrl}
@see wxSpinButton, wxSpinCtrlDouble, wxControl
*/
/**
Constructor, creating and showing a spin control.
+ If @a value is non-empty, it will be shown in the text entry part of
+ the control and if it has numeric value, the initial numeric value of
+ the control, as returned by GetValue() will also be determined by it
+ instead of by @a initial. Hence, it only makes sense to specify @a
+ initial if @a value is an empty string or is not convertible to a
+ number, otherwise @a initial is simply ignored and the number specified
+ by @a value is used.
+
@param parent
Parent window. Must not be @NULL.
@param value
long style = wxSP_ARROW_KEYS, int min = 0, int max = 100,
int initial = 0, const wxString& name = "wxSpinCtrl");
+ /**
+ Returns the numerical base being currently used, 10 by default.
+
+ @see SetBase()
+
+ @since 2.9.5
+ */
+ int GetBase() const;
+
/**
Gets maximal allowable value.
*/
*/
int GetValue() const;
+ /**
+ Sets the base to use for the numbers in this control.
+
+ Currently the only supported values are 10 (which is the default) and
+ 16.
+
+ Changing the base allows the user to enter the numbers in the specified
+ base, e.g. with "0x" prefix for hexadecimal numbers, and also displays
+ the numbers in the specified base when they are changed using the spin
+ control arrows.
+
+ @param base
+ Numeric base, currently only 10 and 16 are supported.
+ @return
+ @true if the base was successfully changed or @false if it failed,
+ usually meaning that either the base is not 10 or 16.
+
+ @since 2.9.5
+ */
+ bool SetBase(int base);
+
/**
Sets range of allowable values.
+
+ Notice that calling this method may change the value of the control if
+ it's not inside the new valid range, e.g. it will become @a minVal if
+ it is less than it now. However no @c wxEVT_SPINCTRL
+ event is generated, even if it the value does change.
*/
void SetRange(int minVal, int maxVal);
virtual void SetSelection(long from, long to);
/**
- Sets the value of the spin control. Use the variant using int instead.
+ Sets the value of the spin control.
+
+ It is recommended to use the overload taking an integer value instead.
+
+ Notice that, unlike wxTextCtrl::SetValue(), but like most of the other
+ setter methods in wxWidgets, calling this method does not generate any
+ events as events are only generated for the user actions.
*/
virtual void SetValue(const wxString& text);
/**
Sets the value of the spin control.
+
+ Calling this method doesn't generate any @c wxEVT_SPINCTRL events.
*/
void SetValue(int value);
};
The value wraps at the minimum and maximum.
@endStyleTable
+ @beginEventEmissionTable{wxSpinDoubleEvent}
+ @event{EVT_SPINCTRLDOUBLE(id, func)}
+ Generated whenever the numeric value of the spin control is changed,
+ that is, when the up/down spin button is clicked, when ENTER is pressed,
+ or the control loses focus and the new value is different from the last.
+ See wxSpinDoubleEvent.
+ @endEventTable
+
@library{wxcore}
@category{ctrl}
- @appearance{spinctrldouble.png}
+ @appearance{spinctrldouble}
@see wxSpinButton, wxSpinCtrl, wxControl
*/
/**
Sets the increment value.
+ @note You may also need to increase the number of visible digits
+ using SetDigits
*/
void SetIncrement(double inc);
void SetRange(double minVal, double maxVal);
/**
- Sets the value of the spin control. Use the variant using double instead.
+ Sets the value of the spin control.
+
+ It is recommended to use the overload taking a double value instead.
+
+ Notice that, unlike wxTextCtrl::SetValue(), but like most of the other
+ setter methods in wxWidgets, calling this method does not generate any
+ events as events are only generated for the user actions.
*/
virtual void SetValue(const wxString& text);
/**
Sets the value of the spin control.
+
+ Calling this method doesn't generate any @c wxEVT_SPINCTRLDOUBLE events.
+ */
+ void SetValue(double value);
+};
+
+/**
+ @class wxSpinDoubleEvent
+
+ This event class is used for the events generated by wxSpinCtrlDouble.
+
+ @beginEventTable{wxSpinDoubleEvent}
+ @event{EVT_SPINCTRLDOUBLE(id, func)}
+ Generated whenever the numeric value of the spin control is changed,
+ that is, when the up/down spin button is clicked, when ENTER is pressed,
+ or the control loses focus and the new value is different from the last.
+ See wxSpinDoubleEvent.
+ @endEventTable
+
+ @library{wxcore}
+ @category{events}
+
+ @see wxSpinCtrlDouble
+*/
+class wxSpinDoubleEvent : public wxNotifyEvent
+{
+public:
+ /**
+ The constructor. Not normally used by the user code.
+ */
+ wxSpinDoubleEvent(wxEventType commandType = wxEVT_NULL, int winid = 0,
+ double value = 0);
+
+ /**
+ The copy constructor.
+ */
+ wxSpinDoubleEvent(const wxSpinDoubleEvent& event);
+
+ /**
+ Returns the value associated with this spin control event.
+ */
+ double GetValue() const;
+
+ /**
+ Set the value associated with the event.
+ (Not normally used by user code.)
*/
void SetValue(double value);
};
+
+wxEventType wxEVT_SPINCTRL;
+wxEventType wxEVT_SPINCTRLDOUBLE;