wxWidgets/interface/wx/spinbutt.h

190 lines
5.4 KiB
C
Raw Normal View History

/////////////////////////////////////////////////////////////////////////////
// Name: spinbutt.h
// Purpose: interface of wxSpinEvent, wxSpinButton
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
/**
@class wxSpinEvent
This event class is used for the events generated by wxSpinButton and wxSpinCtrl.
@beginEventTable{wxSpinEvent}
@event{EVT_SPIN(id, func)}
Generated whenever an arrow is pressed.
@event{EVT_SPIN_UP(id, func)}
Generated when left/up arrow is pressed.
@event{EVT_SPIN_DOWN(id, func)}
Generated when right/down arrow is pressed.
@endEventTable
Note that if you handle both SPIN and UP or DOWN events, you will be notified
about each of them twice: first the UP/DOWN event will be received and then,
if it wasn't vetoed, the SPIN event will be sent.
@library{wxcore}
@category{events}
@see wxSpinButton and wxSpinCtrl
*/
class wxSpinEvent : public wxNotifyEvent
{
public:
/**
The constructor is not normally used by the user code.
*/
wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
/**
Retrieve the current spin button or control value.
*/
int GetPosition() const;
/**
Set the value associated with the event.
*/
void SetPosition(int pos);
};
/**
@class wxSpinButton
A wxSpinButton has two small up and down (or left and right) arrow buttons.
It is often used next to a text control for increment and decrementing a value.
Portable programs should try to use wxSpinCtrl instead as wxSpinButton is not
implemented for all platforms but wxSpinCtrl is as it degenerates to a simple
wxTextCtrl on such platforms.
@note the range supported by this control (and wxSpinCtrl) depends on the
platform but is at least @c -0x8000 to @c 0x7fff. Under GTK and
Win32 with sufficiently new version of @c comctrl32.dll (at least 4.71
is required, 5.80 is recommended) the full 32 bit range is supported.
@beginStyleTable
@style{wxSP_HORIZONTAL}
Specifies a horizontal spin button (note that this style is not
supported in wxGTK).
@style{wxSP_VERTICAL}
Specifies a vertical spin button.
@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
@beginEventTable{wxSpinEvent}
@event{EVT_SPIN(id, func)}
Generated whenever an arrow is pressed.
@event{EVT_SPIN_UP(id, func)}
Generated when left/up arrow is pressed.
@event{EVT_SPIN_DOWN(id, func)}
Generated when right/down arrow is pressed.
@endEventTable
Note that if you handle both SPIN and UP or DOWN events, you will be notified
about each of them twice: first the UP/DOWN event will be received and then,
if it wasn't vetoed, the SPIN event will be sent.
@library{wxcore}
@category{ctrl}
<!-- @appearance{spinbutton.png} -->
@see wxSpinCtrl
*/
class wxSpinButton : public wxControl
{
public:
/**
Default constructor.
*/
wxSpinButton();
/**
Constructor, creating and showing a spin button.
@param parent
Parent window. Must not be @NULL.
@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 class description.
@param name
Window name.
@see Create()
*/
wxSpinButton(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSP_HORIZONTAL,
const wxString& name = "spinButton");
/**
Destructor, destroys the spin button control.
*/
virtual ~wxSpinButton();
/**
Scrollbar creation function called by the spin button constructor.
See wxSpinButton() for details.
*/
bool Create(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSP_HORIZONTAL,
const wxString& name = "spinButton");
/**
Returns the maximum permissible value.
@see SetRange()
*/
virtual int GetMax() const;
/**
Returns the minimum permissible value.
@see SetRange()
*/
virtual int GetMin() const;
/**
Returns the current spin button value.
@see SetValue()
*/
virtual int GetValue() const;
/**
Sets the range of the spin button.
@param min
The minimum value for the spin button.
@param max
The maximum value for the spin button.
@see GetMin(), GetMax()
*/
virtual void SetRange(int min, int max);
/**
Sets the value of the spin button.
@param value
The value for the spin button.
*/
virtual void SetValue(int value);
};