wxWidgets/interface/wx/checkbox.h
John Roberts e14b589e8e Add support for right-aligned checkboxes to wxOSX
Honour wxALIGN_RIGHT style.

Closes #17380.
2016-02-27 16:32:37 +01:00

188 lines
5.7 KiB
Objective-C

/////////////////////////////////////////////////////////////////////////////
// Name: checkbox.h
// Purpose: interface of wxCheckBox
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/*
* wxCheckBox style flags
* (Using wxCHK_* because wxCB_* is used by wxComboBox).
* Determine whether to use a 3-state or 2-state
* checkbox. 3-state enables to differentiate
* between 'unchecked', 'checked' and 'undetermined'.
*
* In addition to the styles here it is also possible to specify just 0 which
* is treated the same as wxCHK_2STATE for compatibility (but using explicit
* flag is preferred).
*/
#define wxCHK_2STATE 0x4000
#define wxCHK_3STATE 0x1000
/*
* If this style is set the user can set the checkbox to the
* undetermined state. If not set the undetermined set can only
* be set programmatically.
* This style can only be used with 3 state checkboxes.
*/
#define wxCHK_ALLOW_3RD_STATE_FOR_USER 0x2000
/**
The possible states of a 3-state wxCheckBox (Compatible with the 2-state
wxCheckBox).
*/
enum wxCheckBoxState
{
wxCHK_UNCHECKED,
wxCHK_CHECKED,
wxCHK_UNDETERMINED ///< 3-state checkbox only
};
/**
@class wxCheckBox
A checkbox is a labelled box which by default is either on (checkmark is
visible) or off (no checkmark). Optionally (when the wxCHK_3STATE style
flag is set) it can have a third state, called the mixed or undetermined
state. Often this is used as a "Does Not Apply" state.
@beginStyleTable
@style{wxCHK_2STATE}
Create a 2-state checkbox. This is the default.
@style{wxCHK_3STATE}
Create a 3-state checkbox. Not implemented in wxGTK1.
@style{wxCHK_ALLOW_3RD_STATE_FOR_USER}
By default a user can't set a 3-state checkbox to the third state.
It can only be done from code. Using this flags allows the user to
set the checkbox to the third state by clicking.
@style{wxALIGN_RIGHT}
Makes the text appear on the left of the checkbox.
@endStyleTable
@beginEventEmissionTable{wxCommandEvent}
@event{EVT_CHECKBOX(id, func)}
Process a @c wxEVT_CHECKBOX event, when the checkbox
is clicked.
@endEventTable
@library{wxcore}
@category{ctrl}
@appearance{checkbox}
@see wxRadioButton, wxCommandEvent
*/
class wxCheckBox : public wxControl
{
public:
/**
Default constructor.
@see Create(), wxValidator
*/
wxCheckBox();
/**
Constructor, creating and showing a checkbox.
@param parent
Parent window. Must not be @NULL.
@param id
Checkbox identifier. The value wxID_ANY indicates a default value.
@param label
Text to be displayed next to the checkbox.
@param pos
Checkbox position.
If ::wxDefaultPosition is specified then a default position is chosen.
@param size
Checkbox size.
If ::wxDefaultSize is specified then a default size is chosen.
@param style
Window style. See wxCheckBox.
@param validator
Window validator.
@param name
Window name.
@see Create(), wxValidator
*/
wxCheckBox(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 = wxCheckBoxNameStr);
/**
Destructor, destroying the checkbox.
*/
virtual ~wxCheckBox();
/**
Creates the checkbox for two-step construction. See wxCheckBox()
for 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 = wxCheckBoxNameStr);
/**
Gets the state of a 2-state checkbox.
@return Returns @true if it is checked, @false otherwise.
*/
virtual bool GetValue() const;
/**
Gets the state of a 3-state checkbox. Asserts when the function is used
with a 2-state checkbox.
*/
wxCheckBoxState Get3StateValue() const;
/**
Returns whether or not the checkbox is a 3-state checkbox.
@return @true if this checkbox is a 3-state checkbox, @false if it's
a 2-state checkbox.
*/
bool Is3State() const;
/**
Returns whether or not the user can set the checkbox to the third
state.
@return @true if the user can set the third state of this checkbox,
@false if it can only be set programmatically or if it's a
2-state checkbox.
*/
bool Is3rdStateAllowedForUser() const;
/**
This is just a maybe more readable synonym for GetValue(): just as the
latter, it returns @true if the checkbox is checked and @false
otherwise.
*/
bool IsChecked() const;
/**
Sets the checkbox to the given state. This does not cause a
@c wxEVT_CHECKBOX event to get emitted.
@param state
If @true, the check is on, otherwise it is off.
*/
virtual void SetValue(bool state);
/**
Sets the checkbox to the given state. This does not cause a
@c wxEVT_CHECKBOX event to get emitted.
Asserts when the checkbox is a 2-state checkbox and setting the state
to wxCHK_UNDETERMINED.
*/
void Set3StateValue(wxCheckBoxState state);
};