GtkToggleButton create buttons which retain their state. A #GtkToggleButton is a #GtkButton which will remain '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 gtk_toggle_button_new() or gtk_toggle_button_new_with_label(). If using the former, it is advisable to pack a widget, (such as a #GtkLabel and/or a #GtkPixmap), into the toggle button's container. (See #GtkButton for more information). The state of a #GtkToggleButton can be set specifically using gtk_toggle_button_set_active(), and retrieved using gtk_toggle_button_get_active(). To simply switch the state of a toggle button, use gtk_toggle_button_toggled. Creating two <structname>GtkToggleButton</structname> widgets. void make_toggles (void) { GtkWidget *dialog, *toggle1, *toggle2; dialog = gtk_dialog_new (); toggle1 = gtk_toggle_button_new_with_label ("Hi, i'm a toggle button."); /* Makes this toggle button invisible */ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle1), TRUE); g_signal_connect (toggle1, "toggled", G_CALLBACK (output_state), NULL); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), toggle1, FALSE, FALSE, 2); toggle2 = gtk_toggle_button_new_with_label ("Hi, i'm another toggle button."); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle2), FALSE); g_signal_connect (toggle2, "toggled", G_CALLBACK (output_state), NULL); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), toggle2, FALSE, FALSE, 2); gtk_widget_show_all (dialog); } #GtkButton a more general button. #GtkCheckButton another way of presenting a toggle option. #GtkCheckMenuItem a #GtkToggleButton as a menu item. The #GtkToggleButton struct contains private data only, and should be manipulated using the functions below. Should be connected if you wish to perform an action whenever the #GtkToggleButton's state is changed. @togglebutton: the object which received the signal. Creates a new toggle button. A widget should be packed into the button, as in gtk_button_new(). @Returns: a new toggle button. Creates a new toggle button with a text label. @label: a string containing the message to be placed in the toggle button. @Returns: a new toggle button. @label: @Returns: @toggle_button: @draw_indicator: @toggle_button: @Returns: This is a deprecated macro, and is only maintained for compatibility reasons. Emits the toggled signal on the #GtkToggleButton. There is no good reason for an application ever to call this function. @toggle_button: a #GtkToggleButton. Queries a #GtkToggleButton and returns its current state. Returns %TRUE if the toggle button is pressed in and %FALSE if it is raised. @toggle_button: a #GtkToggleButton. @Returns: a #gboolean value. Sets the status of the toggle button. Set to %TRUE if you want the GtkToggleButton to be 'pressed in', and %FALSE to raise it. This action causes the toggled signal to be emitted. @toggle_button: a #GtkToggleButton. @is_active: %TRUE or %FALSE. @toggle_button: @Returns: @toggle_button: @setting: