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 the RadioButton 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 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
    override public init!(gpointer op: gpointer?)

    Parameters

    op

    gpointer to the underlying object

  • Optional initialiser from a non-mutating gconstpointer to 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
    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 the RadioButton 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 the RadioButton 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 retain GtkRadioButton. i.e., ownership is transferred to the RadioButton 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 retain GtkRadioButton.

    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 as group. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label 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 as group. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label 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