Class ToggleButton

All Implemented Interfaces:
PointerInterface

public class ToggleButton extends Button
A `GtkToggleButton` is a button which remains “pressed-in” when
clicked.

Clicking again will cause the toggle button to return to its normal state.

A toggle button is created by calling either [ctor@Gtk.ToggleButton.new] or
[ctor@Gtk.ToggleButton.new_with_label]. If using the former, it is advisable
to pack a widget, (such as a `GtkLabel` and/or a `GtkImage`), into the toggle
button’s container. (See [class@Gtk.Button] for more information).

The state of a `GtkToggleButton` can be set specifically using
[method@Gtk.ToggleButton.set_active], and retrieved using
[method@Gtk.ToggleButton.get_active].

To simply switch the state of a toggle button, use
[method@Gtk.ToggleButton.toggled].

## Grouping

Toggle buttons can be grouped together, to form mutually exclusive
groups - only one of the buttons can be toggled at a time, and toggling
another one will switch the currently toggled one off.

To add a `GtkToggleButton` to a group, use [method@Gtk.ToggleButton.set_group].

## CSS nodes

`GtkToggleButton` has a single CSS node with name button. To differentiate
it from a plain `GtkButton`, it gets the `.toggle` style class.

## Creating two `GtkToggleButton` widgets.

```c
static void
output_state (GtkToggleButton *source,
gpointer user_data)
{
g_print ("Toggle button "%s" is active: %s",
gtk_button_get_label (GTK_BUTTON (source)),
gtk_toggle_button_get_active (source) ? "Yes" : "No");
}

static void
make_toggles (void)
{
GtkWidget *window, *toggle1, *toggle2;
GtkWidget *box;
const char *text;

window = gtk_window_new ();
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);

text = "Hi, I’m toggle button one";
toggle1 = gtk_toggle_button_new_with_label (text);

g_signal_connect (toggle1, "toggled",
G_CALLBACK (output_state),
NULL);
gtk_box_append (GTK_BOX (box), toggle1);

text = "Hi, I’m toggle button two";
toggle2 = gtk_toggle_button_new_with_label (text);
g_signal_connect (toggle2, "toggled",
G_CALLBACK (output_state),
NULL);
gtk_box_append (GTK_BOX (box), toggle2);

gtk_window_set_child (GTK_WINDOW (window), box);
gtk_widget_show (window);
}
```

https://docs.gtk.org/gtk4/class.ToggleButton.html

  • Field Details

  • Constructor Details

    • ToggleButton

      public ToggleButton(PointerContainer pointer)
    • ToggleButton

      public ToggleButton()
      Creates a new toggle button.

      A widget should be packed into the button, as in [ctor@Gtk.Button.new].
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newWithLabelToggleButton

      public static ToggleButton newWithLabelToggleButton(@Nonnull Str label)
      Creates a new toggle button with a text label.
      Parameters:
      label - a string containing the message to be placed in the toggle button.
      Returns:
      a new toggle button.
    • newWithLabelToggleButton

      public static ToggleButton newWithLabelToggleButton(String label)
      Creates a new toggle button with a text label.
      Parameters:
      label - a string containing the message to be placed in the toggle button.
      Returns:
      a new toggle button.
    • newWithMnemonicToggleButton

      public static ToggleButton newWithMnemonicToggleButton(@Nonnull Str label)
      Creates a new `GtkToggleButton` containing a label.

      The label will be created using [ctor@Gtk.Label.new_with_mnemonic],
      so underscores in @label indicate the mnemonic for the button.
      Parameters:
      label - the text of the button, with an underscore in front of the mnemonic character
      Returns:
      a new `GtkToggleButton`
    • newWithMnemonicToggleButton

      public static ToggleButton newWithMnemonicToggleButton(String label)
      Creates a new `GtkToggleButton` containing a label.

      The label will be created using [ctor@Gtk.Label.new_with_mnemonic],
      so underscores in @label indicate the mnemonic for the button.
      Parameters:
      label - the text of the button, with an underscore in front of the mnemonic character
      Returns:
      a new `GtkToggleButton`
    • getActive

      public boolean getActive()
      Queries a `GtkToggleButton` and returns its current state.

      Returns %TRUE if the toggle button is pressed in and %FALSE
      if it is raised.
      Returns:
      whether the button is pressed
    • setActive

      public void setActive(boolean is_active)
      Sets the status of the toggle button.

      Set to %TRUE if you want the `GtkToggleButton` to be “pressed in”,
      and %FALSE to raise it.

      If the status of the button changes, this action causes the
      [signal@GtkToggleButton::toggled] signal to be emitted.
      Parameters:
      is_active - %TRUE or %FALSE.
    • setGroup

      public void setGroup(@Nullable ToggleButton group)
      Adds @self to the group of @group.

      In a group of multiple toggle buttons, only one button can be active
      at a time.

      Setting up groups in a cycle leads to undefined behavior.

      Note that the same effect can be achieved via the [iface@Gtk.Actionable]
      API, by using the same action with parameter type and state type 's'
      for all buttons in the group, and giving each button its own target
      value.
      Parameters:
      group - another `GtkToggleButton` to form a group with
    • toggled

      public void toggled()
      Emits the ::toggled signal on the `GtkToggleButton`.

      There is no good reason for an application ever to call this function.
    • onToggled

      public SignalHandler onToggled(ToggleButton.OnToggled signal)
      Connect to signal "toggled".
      See ToggleButton.OnToggled.onToggled() for signal description.
      Field SIGNAL_ON_TOGGLED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • asAccessible

      public Accessible asAccessible()
      Implements interface Accessible. Call this to get access to interface functions.
      Overrides:
      asAccessible in class Button
      Returns:
      Accessible
    • asActionable

      public Actionable asActionable()
      Implements interface Actionable. Call this to get access to interface functions.
      Overrides:
      asActionable in class Button
      Returns:
      Actionable
    • asBuildable

      public Buildable asBuildable()
      Implements interface Buildable. Call this to get access to interface functions.
      Overrides:
      asBuildable in class Button
      Returns:
      Buildable
    • asConstraintTarget

      public ConstraintTarget asConstraintTarget()
      Implements interface ConstraintTarget. Call this to get access to interface functions.
      Overrides:
      asConstraintTarget in class Button
      Returns:
      ConstraintTarget
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()