1
<!-- ##### SECTION Title ##### -->
4
<!-- ##### SECTION Short_Description ##### -->
5
Create buttons which retain their state
7
<!-- ##### SECTION Long_Description ##### -->
9
A #GtkToggleButton is a #GtkButton which will remain 'pressed-in' when
10
clicked. Clicking again will cause the toggle button to return to its
14
A toggle button is created by calling either gtk_toggle_button_new() or
15
gtk_toggle_button_new_with_label(). If using the former, it is advisable to
16
pack a widget, (such as a #GtkLabel and/or a #GtkPixmap), into the toggle
17
button's container. (See #GtkButton for more information).
20
The state of a #GtkToggleButton can be set specifically using
21
gtk_toggle_button_set_active(), and retrieved using
22
gtk_toggle_button_get_active().
25
To simply switch the state of a toggle button, use gtk_toggle_button_toggled.
28
<title>Creating two <structname>GtkToggleButton</structname> widgets.</title>
31
void make_toggles (void) {
32
GtkWidget *dialog, *toggle1, *toggle2;
34
dialog = gtk_dialog_new (<!-- -->);
35
toggle1 = gtk_toggle_button_new_with_label ("Hi, i'm a toggle button.");
37
/* Makes this toggle button invisible */
38
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle1), TRUE);
40
g_signal_connect (toggle1, "toggled",
41
G_CALLBACK (output_state), NULL);
42
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
43
toggle1, FALSE, FALSE, 2);
45
toggle2 = gtk_toggle_button_new_with_label ("Hi, i'm another toggle button.");
46
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle2), FALSE);
47
g_signal_connect (toggle2, "toggled",
48
G_CALLBACK (output_state), NULL);
49
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
50
toggle2, FALSE, FALSE, 2);
52
gtk_widget_show_all (dialog);
58
<!-- ##### SECTION See_Also ##### -->
63
<term>#GtkButton</term>
64
<listitem><para>a more general button.</para></listitem>
68
<term>#GtkCheckButton</term>
69
<listitem><para>another way of presenting a toggle option.</para></listitem>
73
<term>#GtkCheckMenuItem</term>
74
<listitem><para>a #GtkToggleButton as a menu item.</para></listitem>
80
<!-- ##### SECTION Stability_Level ##### -->
83
<!-- ##### SECTION Image ##### -->
86
<!-- ##### STRUCT GtkToggleButton ##### -->
88
The #GtkToggleButton struct contains private data only, and should be manipulated using the functions below.
92
<!-- ##### SIGNAL GtkToggleButton::toggled ##### -->
94
Should be connected if you wish to perform an action whenever the
95
#GtkToggleButton's state is changed.
98
@togglebutton: the object which received the signal.
100
<!-- ##### ARG GtkToggleButton:active ##### -->
105
<!-- ##### ARG GtkToggleButton:draw-indicator ##### -->
110
<!-- ##### ARG GtkToggleButton:inconsistent ##### -->
115
<!-- ##### FUNCTION gtk_toggle_button_new ##### -->
117
Creates a new toggle button. A widget should be packed into the button, as in gtk_button_new().
121
@Returns: a new toggle button.
124
<!-- ##### FUNCTION gtk_toggle_button_new_with_label ##### -->
126
Creates a new toggle button with a text label.
129
@label: a string containing the message to be placed in the toggle button.
130
@Returns: a new toggle button.
133
<!-- ##### FUNCTION gtk_toggle_button_new_with_mnemonic ##### -->
142
<!-- ##### FUNCTION gtk_toggle_button_set_mode ##### -->
150
<!-- ##### FUNCTION gtk_toggle_button_get_mode ##### -->
159
<!-- ##### MACRO gtk_toggle_button_set_state ##### -->
161
This is a deprecated macro, and is only maintained for compatibility reasons.
164
@Deprecated: Use gtk_toggle_button_set_active() instead.
167
<!-- ##### FUNCTION gtk_toggle_button_toggled ##### -->
169
Emits the <link linkend="GtkToggleButton-toggled">toggled</link>
170
signal on the #GtkToggleButton. There is no good reason for an
171
application ever to call this function.
174
@toggle_button: a #GtkToggleButton.
177
<!-- ##### FUNCTION gtk_toggle_button_get_active ##### -->
179
Queries a #GtkToggleButton and returns its current state. Returns %TRUE if
180
the toggle button is pressed in and %FALSE if it is raised.
183
@toggle_button: a #GtkToggleButton.
184
@Returns: a #gboolean value.
187
<!-- ##### FUNCTION gtk_toggle_button_set_active ##### -->
189
Sets the status of the toggle button. Set to %TRUE if you want the
190
GtkToggleButton to be 'pressed in', and %FALSE to raise it.
191
This action causes the toggled signal to be emitted.
194
@toggle_button: a #GtkToggleButton.
195
@is_active: %TRUE or %FALSE.
198
<!-- ##### FUNCTION gtk_toggle_button_get_inconsistent ##### -->
207
<!-- ##### FUNCTION gtk_toggle_button_set_inconsistent ##### -->