Class ToggleButton

All Implemented Interfaces:
Accessible, Actionable, Buildable, ConstraintTarget, Proxy

@Generated("org.javagi.JavaGI") public class ToggleButton extends Button implements Accessible, Actionable, Buildable, ConstraintTarget

Shows a button which remains “pressed-in” when clicked.

Example GtkToggleButtons

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

A toggle button is created by calling either ToggleButton() or withLabel(String). 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 Button for more information).

The state of a GtkToggleButton can be set specifically using setActive(boolean), and retrieved using getActive().

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 setGroup(ToggleButton).

CSS nodes

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

Accessibility

GtkToggleButton uses the Gtk.AccessibleRole.toggle_button role.

Creating two GtkToggleButton widgets.

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_window_present (GTK_WINDOW (window));
}
  • Constructor Details

    • ToggleButton

      public ToggleButton(MemorySegment address)
      Create a ToggleButton instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • ToggleButton

      public ToggleButton()
      Create a new ToggleButton.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the ToggleButton class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected ToggleButton asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class Button
      Returns:
      the instance as if it were its parent type
    • withLabel

      public static ToggleButton withLabel(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.
    • withMnemonic

      public static ToggleButton withMnemonic(String label)

      Creates a new GtkToggleButton containing a label.

      The label will be created using Label.withMnemonic(String), 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 isActive)

      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 Gtk.ToggleButton::toggled signal to be emitted.

      Parameters:
      isActive - 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 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

      @Deprecated public void toggled()
      Deprecated.
      There is no good reason for an application ever to call this function.
      Emits the ::toggled signal on the GtkToggleButton.
    • onToggled

      Emitted whenever the GtkToggleButton's state is changed.
      Parameters:
      handler - the signal handler
      Returns:
      a signal handler ID to keep track of the signal connection
      See Also:
    • emitToggled

      public void emitToggled()
      Emits the "toggled" signal. See onToggled(ToggleButton.ToggledCallback).
    • builder

      public static ToggleButton.Builder<? extends ToggleButton.Builder> builder()
      A ToggleButton.Builder object constructs a ToggleButton with the specified properties. Use the various set...() methods to set properties, and finish construction with ToggleButton.Builder.build().
      Returns:
      the builder object