wxWidgets/interface/wx/radiobut.h
Vadim Zeitlin 9e51389676 Improve radio button navigation functions documentation
Correct the previously wrong described behaviour for wxRB_SINGLE buttons
and also mention that Get{First,Last}InGroup() never return NULL.
2020-09-21 16:02:40 +02:00

193 lines
6.5 KiB
Objective-C

/////////////////////////////////////////////////////////////////////////////
// Name: radiobut.h
// Purpose: interface of wxRadioButton
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxRadioButton
A radio button item is a button which usually denotes one of several
mutually exclusive options. It has a text label next to a (usually) round
button.
Radio buttons are typically used in groups of mutually-exclusive buttons,
i.e. exactly one of the buttons in the group is checked, and the other ones
are unchecked automatically. Such groups are created implicitly, but can
also be started explicitly by using @c wxRB_GROUP style: a button with this
style starts a new group and will become the initial selection in this
group. Alternatively, a radio button may be excluded from the group that it
would otherwise belong to by using @c wxRB_SINGLE style.
To find the other elements of the same radio button group, you can use
GetFirstInGroup(), GetPreviousInGroup(), GetNextInGroup() and
GetLastInGroup() functions.
@beginStyleTable
@style{wxRB_GROUP}
Marks the beginning of a new group of radio buttons.
@style{wxRB_SINGLE}
Creates a radio button which is not part of any radio button group.
When this style is used, no other radio buttons will be turned off
automatically when this button is turned on and such behaviour will
need to be implemented manually, in the event handler for this
button.
@endStyleTable
@beginEventEmissionTable{wxCommandEvent}
@event{EVT_RADIOBUTTON(id, func)}
Process a @c wxEVT_RADIOBUTTON event, when the
radiobutton is clicked.
@endEventTable
@library{wxcore}
@category{ctrl}
@appearance{radiobutton}
@see @ref overview_events, wxRadioBox, wxCheckBox
*/
class wxRadioButton : public wxControl
{
public:
/**
Default constructor.
@see Create(), wxValidator
*/
wxRadioButton();
/**
Constructor, creating and showing a radio button.
@param parent
Parent window. Must not be @NULL.
@param id
Window identifier. The value @c wxID_ANY indicates a default value.
@param label
Label for the radio button.
@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 wxRadioButton.
@param validator
Window validator.
@param name
Window name.
@see Create(), wxValidator
*/
wxRadioButton(wxWindow* parent, wxWindowID id,
const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxRadioButtonNameStr);
/**
Destructor, destroying the radio button item.
*/
virtual ~wxRadioButton();
/**
Creates the choice for two-step construction. See wxRadioButton() for
further details.
*/
bool Create(wxWindow* parent, wxWindowID id, const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxRadioButtonNameStr);
/**
Returns @true if the radio button is checked, @false otherwise.
*/
virtual bool GetValue() const;
/**
Sets the radio button to checked or unchecked status. This does not cause a
@c wxEVT_RADIOBUTTON event to get emitted.
If the radio button belongs to a radio group exactly one button in the
group may be checked and so this method can be only called with @a
value set to @true. To uncheck a radio button in a group you must check
another button in the same group.
@note Under MSW, the focused radio button is always selected, i.e. its
value is @true. And, conversely, calling @c SetValue(true) will
also set focus to the radio button if the focus had previously been
on another radio button in the same group -- as otherwise setting
it on wouldn't work.
@param value
@true to check, @false to uncheck.
*/
virtual void SetValue(bool value);
/**
Returns the first button of the radio button group this button belongs
to.
For a radio button with @c wxRB_SINGLE style, this function returns this
button itself, as it is the only member of its group. Otherwise, the
function returns the closest previous radio button with @c wxRB_GROUP
style (which could still be this button itself) or the first radio
button in the same window.
The returned value is never @NULL.
@see GetPreviousInGroup(), GetNextInGroup(), GetLastInGroup()
@since 3.1.5
*/
wxRadioButton* GetFirstInGroup() const;
/**
Returns the last button of the radio button group this button belongs
to.
Similarly to GetFirstInGroup(), this function returns this button
itself if it has @c wxRB_SINGLE style. Otherwise, the function returns
the last button before the next button with @c wxRB_GROUP style or the
last radio button in the same window.
The returned value is never @NULL.
@see GetPreviousInGroup(), GetNextInGroup()
@since 3.1.5
*/
wxRadioButton* GetLastInGroup() const;
/**
Returns the previous radio button in the same group.
The return value is @NULL if there is no predecessor or if this button
has @c wxRB_SINGLE style.
@see GetFirstInGroup(), GetNextInGroup(), GetLastInGroup()
@since 3.1.5
*/
wxRadioButton* GetPreviousInGroup() const;
/**
Returns the next radio button in the same group.
The return value is @NULL if there is no successor or if this button
has @c wxRB_SINGLE style.
@see GetFirstInGroup(), GetPreviousInGroup(), GetLastInGroup()
@since 3.1.5
*/
wxRadioButton* GetNextInGroup() const;
};