RadioButton
open class RadioButton : CheckButton, RadioButtonProtocol
A single radio button performs the same basic function as a GtkCheckButton
,
as its position in the object hierarchy reflects. It is only when multiple
radio buttons are grouped together that they become a different user
interface component in their own right.
Every radio button is a member of some group of radio buttons. When one is
selected, all other radio buttons in the same group are deselected. A
GtkRadioButton
is one way of giving the user a choice from many options.
Radio button widgets are created with gtk_radio_button_new()
, passing nil
as the argument if this is the first radio button in a group. In subsequent
calls, the group you wish to add this button to should be passed as an
argument. Optionally, gtk_radio_button_new_with_label()
can be used if you
want a text label on the radio button.
Alternatively, when adding widgets to an existing group of radio buttons,
use gtk_radio_button_new_from_widget()
with a GtkRadioButton
that already
has a group assigned to it. The convenience function
gtk_radio_button_new_with_label_from_widget()
is also provided.
To retrieve the group a GtkRadioButton
is assigned to, use
gtk_radio_button_get_group()
.
To remove a GtkRadioButton
from one group and make it part of a new one,
use gtk_radio_button_set_group()
.
The group list does not need to be freed, as each GtkRadioButton
will remove
itself and its list item when it is destroyed.
CSS nodes
(plain Language Example):
radiobutton
├── radio
╰── <child>
A GtkRadioButton with indicator (see gtk_toggle_button_set_mode()
) has a
main CSS node with name radiobutton and a subnode with name radio.
(plain Language Example):
button.radio
├── radio
╰── <child>
A GtkRadioButton without indicator changes the name of its main node to button and adds a .radio style class to it. The subnode is invisible in this case.
How to create a group of two radio buttons.
(C Language Example):
void create_radio_buttons (void) {
GtkWidget *window, *radio1, *radio2, *box, *entry;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
gtk_box_set_homogeneous (GTK_BOX (box), TRUE);
// Create a radio button with a GtkEntry widget
radio1 = gtk_radio_button_new (NULL);
entry = gtk_entry_new ();
gtk_container_add (GTK_CONTAINER (radio1), entry);
// Create a radio button with a label
radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio1),
"I’m the second radio button.");
// Pack them into a box, then show all the widgets
gtk_box_pack_start (GTK_BOX (box), radio1);
gtk_box_pack_start (GTK_BOX (box), radio2);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_widget_show_all (window);
return;
}
When an unselected button in the group is clicked the clicked button
receives the GtkToggleButton::toggled
signal, as does the previously
selected button.
Inside the GtkToggleButton::toggled
handler, gtk_toggle_button_get_active()
can be used to determine if the button has been selected or deselected.
The RadioButton
type acts as a reference-counted owner of an underlying GtkRadioButton
instance.
It provides the methods that can operate on this data type through RadioButtonProtocol
conformance.
Use RadioButton
as a strong reference or owner of a GtkRadioButton
instance.
-
Constructor for creating a RadioButton with a text label, creating a new group.
Declaration
Swift
@inlinable public override init(label: UnsafePointer<gchar>!)
Parameters
label
the label to use for the button
-
Constructor for creating a RadioButton with a text label that contains menomics creates a new group. Underscores in
label
indicate the mnemonic for the button.Declaration
Swift
@inlinable public override init(mnemonic label: UnsafePointer<gchar>!)
Parameters
label
the label (including mnemonic) to use for the button
-
Designated initialiser from the underlying `C` data type.
This creates an instance without performing an unbalanced retain i.e., ownership is transferred to the
RadioButton
instance.Declaration
Swift
@inlinable public init(_ op: UnsafeMutablePointer<GtkRadioButton>)
Parameters
op
pointer to the underlying object
-
Designated initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theRadioButton
instance.Declaration
Swift
@inlinable public init(_ op: UnsafePointer<GtkRadioButton>)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a non-mutating
gpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theRadioButton
instance.Declaration
Swift
@inlinable override public init!(gpointer op: gpointer?)
Parameters
op
gpointer to the underlying object
-
Optional initialiser from a non-mutating
gconstpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theRadioButton
instance.Declaration
Swift
@inlinable override public init!(gconstpointer op: gconstpointer?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theRadioButton
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafePointer<GtkRadioButton>?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theRadioButton
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafeMutablePointer<GtkRadioButton>?)
Parameters
op
pointer to the underlying object
-
Designated initialiser from the underlying
C
data type. Will retainGtkRadioButton
. i.e., ownership is transferred to theRadioButton
instance.Declaration
Swift
@inlinable public init(retaining op: UnsafeMutablePointer<GtkRadioButton>)
Parameters
op
pointer to the underlying object
-
Reference intialiser for a related type that implements
RadioButtonProtocol
Will retainGtkRadioButton
.Declaration
Swift
@inlinable public init<T>(radioButton other: T) where T : RadioButtonProtocol
Parameters
other
an instance of a related type that implements
RadioButtonProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable override public init<T>(cPointer p: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe typed, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable override public init<T>(retainingCPointer cPointer: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable override public init(raw p: UnsafeRawPointer)
Parameters
p
raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable override public init(retainingRaw raw: UnsafeRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable public required init(raw p: UnsafeMutableRawPointer)
Parameters
p
mutable raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable required public init(retainingRaw raw: UnsafeMutableRawPointer)
Parameters
raw
mutable raw pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable override public init(opaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
RadioButtonProtocol
.Declaration
Swift
@inlinable override public init(retainingOpaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Creates a new
GtkRadioButton
. To be of any practical value, a widget should then be packed into the radio button.Declaration
Swift
@inlinable public init<SListT>(group: SListT?) where SListT : SListProtocol
-
Creates a new
GtkRadioButton
with a text label.Declaration
Swift
@inlinable public init<SListT>(group: SListT?, label: UnsafePointer<gchar>!) where SListT : SListProtocol
-
Creates a new
GtkRadioButton
containing a label, adding it to the same group asgroup
. The label will be created usinggtk_label_new_with_mnemonic()
, so underscores inlabel
indicate the mnemonic for the button.Declaration
Swift
@inlinable public init<SListT>(group: SListT?, mnemonic label: UnsafePointer<gchar>!) where SListT : SListProtocol
-
Creates a new
GtkRadioButton
with a text label.Declaration
Swift
@inlinable public static func newWith<SListT>(group: SListT?, label: UnsafePointer<gchar>!) -> Widget! where SListT : SListProtocol
-
Creates a new
GtkRadioButton
containing a label, adding it to the same group asgroup
. The label will be created usinggtk_label_new_with_mnemonic()
, so underscores inlabel
indicate the mnemonic for the button.Declaration
Swift
@inlinable public static func newWith<SListT>(group: SListT?, mnemonic label: UnsafePointer<gchar>!) -> Widget! where SListT : SListProtocol
-
Create a group of radio buttons with the given array of labels
Declaration
Swift
@inlinable static func groupWith(labels: [String]) -> [RadioButton]
Parameters
labels
array of labels for the radio buttons
Return Value
grouped array of radio buttons
-
Create a group of radio buttons with the given labels
Declaration
Swift
@inlinable static func groupLabeled(_ ls: String...) -> [RadioButton]
Parameters
ls
labels to use for the radio buttons
Return Value
grouped array of radio buttons
-
Create a group of radio buttons with the given labels. Underscores in the labels denote the mnemonics for the corresponding buttons.
Declaration
Swift
@inlinable static func groupWith(mnemonics: [String]) -> [RadioButton]
Parameters
mnemonics
labels to use for the buttons
Return Value
grouped array of radio buttons
-
Create a group of radio buttons with the given labels Underscores in the labels denote the mnemonics for the corresponding buttons.
Declaration
Swift
@inlinable static func groupWithMnemonics(_ ms: String...) -> [RadioButton]
Parameters
ms
labels to use for the buttons
Return Value
grouped array of radio buttons