| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: spinctrl.h
- // Purpose: interface of wxSpinCtrl
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /**
- @class wxSpinCtrl
- wxSpinCtrl combines wxTextCtrl and wxSpinButton in one control.
- @beginStyleTable
- @style{wxSP_ARROW_KEYS}
- The user can use arrow keys to change the value.
- @style{wxSP_WRAP}
- The value wraps at the minimum and maximum.
- @style{wxTE_PROCESS_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_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
- the default).
- @endStyleTable
- @beginEventEmissionTable{wxSpinEvent}
- @event{EVT_SPINCTRL(id, func)}
- 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
- will not be generated under all platforms. Finally, if the user modifies the
- text in the edit part of the spin control directly, the EVT_TEXT is generated,
- like for the wxTextCtrl. When the use enters text into the text area, the text
- is not validated until the control loses focus (e.g. by using the TAB key).
- The value is then adjusted to the range and a wxSpinEvent sent then if the value
- is different from the last value sent.
- @library{wxcore}
- @category{ctrl}
- @appearance{spinctrl}
- @see wxSpinButton, wxSpinCtrlDouble, wxControl
- */
- class wxSpinCtrl : public wxControl
- {
- public:
- /**
- Default constructor.
- */
- wxSpinCtrl();
- /**
- 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
- Default value (as text).
- @param id
- Window identifier. The value wxID_ANY indicates a default value.
- @param pos
- Window position.
- If ::wxDefaultPosition is specified then a default position is chosen.
- @param size
- Window size.
- If ::wxDefaultSize is specified then a default size is chosen.
- @param style
- Window style. See wxSpinButton.
- @param min
- Minimal value.
- @param max
- Maximal value.
- @param initial
- Initial value.
- @param name
- Window name.
- @see Create()
- */
- wxSpinCtrl(wxWindow* parent, wxWindowID id = wxID_ANY,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxSP_ARROW_KEYS,
- int min = 0, int max = 100,
- int initial = 0, const wxString& name = "wxSpinCtrl");
- /**
- Creation function called by the spin control constructor.
- See wxSpinCtrl() for details.
- */
- bool Create(wxWindow* parent, wxWindowID id = wxID_ANY,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- 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 GetMax() const;
- /**
- Gets minimal allowable value.
- */
- int GetMin() const;
- /**
- Gets the value of the spin control.
- */
- 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);
- /**
- Select the text in the text part of the control between positions
- @a from (inclusive) and @a to (exclusive).
- This is similar to wxTextCtrl::SetSelection().
- @note this is currently only implemented for Windows and generic versions
- of the control.
- */
- virtual void SetSelection(long from, long to);
- /**
- 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);
- };
- /**
- @class wxSpinCtrlDouble
- wxSpinCtrlDouble combines wxTextCtrl and wxSpinButton in one control and
- displays a real number. (wxSpinCtrl displays an integer.)
- @beginStyleTable
- @style{wxSP_ARROW_KEYS}
- The user can use arrow keys to change the value.
- @style{wxSP_WRAP}
- 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}
- @see wxSpinButton, wxSpinCtrl, wxControl
- */
- class wxSpinCtrlDouble : public wxControl
- {
- public:
- /**
- Default constructor.
- */
- wxSpinCtrlDouble();
- /**
- Constructor, creating and showing a spin control.
- @param parent
- Parent window. Must not be @NULL.
- @param value
- Default value (as text).
- @param id
- Window identifier. The value wxID_ANY indicates a default value.
- @param pos
- Window position.
- If ::wxDefaultPosition is specified then a default position is chosen.
- @param size
- Window size.
- If ::wxDefaultSize is specified then a default size is chosen.
- @param style
- Window style. See wxSpinButton.
- @param min
- Minimal value.
- @param max
- Maximal value.
- @param initial
- Initial value.
- @param inc
- Increment value.
- @param name
- Window name.
- @see Create()
- */
- wxSpinCtrlDouble(wxWindow* parent, wxWindowID id = -1,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxSP_ARROW_KEYS,
- double min = 0, double max = 100,
- double initial = 0, double inc = 1,
- const wxString& name = wxT("wxSpinCtrlDouble"));
- /**
- Creation function called by the spin control constructor.
- See wxSpinCtrlDouble() for details.
- */
- bool Create(wxWindow* parent, wxWindowID id = wxID_ANY,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxSP_ARROW_KEYS, double min = 0, double max = 100,
- double initial = 0, double inc = 1,
- const wxString& name = "wxSpinCtrlDouble");
- /**
- Gets the number of digits in the display.
- */
- unsigned int GetDigits() const;
- /**
- Gets the increment value.
- */
- double GetIncrement() const;
- /**
- Gets maximal allowable value.
- */
- double GetMax() const;
- /**
- Gets minimal allowable value.
- */
- double GetMin() const;
- /**
- Gets the value of the spin control.
- */
- double GetValue() const;
- /**
- Sets the number of digits in the display.
- */
- void SetDigits(unsigned int digits);
- /**
- Sets the increment value.
- @note You may also need to increase the number of visible digits
- using SetDigits
- */
- void SetIncrement(double inc);
- /**
- Sets range of allowable values.
- */
- void SetRange(double minVal, double maxVal);
- /**
- 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;
|