wxWidgets/interface/wx/radiobut.h
Vadim Zeitlin db4c025e42 Document wxRadioButton relationship with focus in wxMSW
Explain that calling SetValue(true) may change the focus, as this is
not really obvious (and doesn't happen in the other ports).
2020-01-20 13:21:44 +01:00

124 lines
4.2 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.
You can create a group of mutually-exclusive radio buttons by specifying
@c wxRB_GROUP for the first in the group. The group ends when another
radio button group is created, or there are no more radio buttons.
@beginStyleTable
@style{wxRB_GROUP}
Marks the beginning of a new group of radio buttons.
@style{wxRB_SINGLE}
In some circumstances, radio buttons that are not consecutive
siblings trigger a hang bug in Windows (only). If this happens, add
this style to mark the button as not belonging to a group, and
implement the mutually-exclusive group behaviour yourself.
@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);
};