1
<refentry id="GtkButton">
3
<refentrytitle role="top_of_page">GtkButton</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>GTK Library</refmiscinfo>
9
<refname>GtkButton</refname>
10
<refpurpose>A widget that creates a signal when clicked on</refpurpose>
11
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
14
<refsynopsisdiv role="synopsis">
15
<title role="synopsis.title">Synopsis</title>
19
#include <gtk/gtk.h>
22
<link linkend="GtkButton-struct">GtkButton</link>;
23
<link linkend="GtkWidget">GtkWidget</link>* <link linkend="gtk-button-new">gtk_button_new</link> (void);
24
<link linkend="GtkWidget">GtkWidget</link>* <link linkend="gtk-button-new-with-label">gtk_button_new_with_label</link> (const <link linkend="gchar">gchar</link> *label);
25
<link linkend="GtkWidget">GtkWidget</link>* <link linkend="gtk-button-new-with-mnemonic">gtk_button_new_with_mnemonic</link> (const <link linkend="gchar">gchar</link> *label);
26
<link linkend="GtkWidget">GtkWidget</link>* <link linkend="gtk-button-new-from-stock">gtk_button_new_from_stock</link> (const <link linkend="gchar">gchar</link> *stock_id);
27
<link linkend="void">void</link> <link linkend="gtk-button-pressed">gtk_button_pressed</link> (<link linkend="GtkButton">GtkButton</link> *button);
28
<link linkend="void">void</link> <link linkend="gtk-button-released">gtk_button_released</link> (<link linkend="GtkButton">GtkButton</link> *button);
29
<link linkend="void">void</link> <link linkend="gtk-button-clicked">gtk_button_clicked</link> (<link linkend="GtkButton">GtkButton</link> *button);
30
<link linkend="void">void</link> <link linkend="gtk-button-enter">gtk_button_enter</link> (<link linkend="GtkButton">GtkButton</link> *button);
31
<link linkend="void">void</link> <link linkend="gtk-button-leave">gtk_button_leave</link> (<link linkend="GtkButton">GtkButton</link> *button);
32
<link linkend="void">void</link> <link linkend="gtk-button-set-relief">gtk_button_set_relief</link> (<link linkend="GtkButton">GtkButton</link> *button,
33
<link linkend="GtkReliefStyle">GtkReliefStyle</link> newstyle);
34
<link linkend="GtkReliefStyle">GtkReliefStyle</link> <link linkend="gtk-button-get-relief">gtk_button_get_relief</link> (<link linkend="GtkButton">GtkButton</link> *button);
35
const <link linkend="gchar">gchar</link>* <link linkend="gtk-button-get-label">gtk_button_get_label</link> (<link linkend="GtkButton">GtkButton</link> *button);
36
<link linkend="void">void</link> <link linkend="gtk-button-set-label">gtk_button_set_label</link> (<link linkend="GtkButton">GtkButton</link> *button,
37
const <link linkend="gchar">gchar</link> *label);
38
<link linkend="gboolean">gboolean</link> <link linkend="gtk-button-get-use-stock">gtk_button_get_use_stock</link> (<link linkend="GtkButton">GtkButton</link> *button);
39
<link linkend="void">void</link> <link linkend="gtk-button-set-use-stock">gtk_button_set_use_stock</link> (<link linkend="GtkButton">GtkButton</link> *button,
40
<link linkend="gboolean">gboolean</link> use_stock);
41
<link linkend="gboolean">gboolean</link> <link linkend="gtk-button-get-use-underline">gtk_button_get_use_underline</link> (<link linkend="GtkButton">GtkButton</link> *button);
42
<link linkend="void">void</link> <link linkend="gtk-button-set-use-underline">gtk_button_set_use_underline</link> (<link linkend="GtkButton">GtkButton</link> *button,
43
<link linkend="gboolean">gboolean</link> use_underline);
44
<link linkend="void">void</link> <link linkend="gtk-button-set-focus-on-click">gtk_button_set_focus_on_click</link> (<link linkend="GtkButton">GtkButton</link> *button,
45
<link linkend="gboolean">gboolean</link> focus_on_click);
46
<link linkend="gboolean">gboolean</link> <link linkend="gtk-button-get-focus-on-click">gtk_button_get_focus_on_click</link> (<link linkend="GtkButton">GtkButton</link> *button);
47
<link linkend="void">void</link> <link linkend="gtk-button-set-alignment">gtk_button_set_alignment</link> (<link linkend="GtkButton">GtkButton</link> *button,
48
<link linkend="gfloat">gfloat</link> xalign,
49
<link linkend="gfloat">gfloat</link> yalign);
50
<link linkend="void">void</link> <link linkend="gtk-button-get-alignment">gtk_button_get_alignment</link> (<link linkend="GtkButton">GtkButton</link> *button,
51
<link linkend="gfloat">gfloat</link> *xalign,
52
<link linkend="gfloat">gfloat</link> *yalign);
53
<link linkend="void">void</link> <link linkend="gtk-button-set-image">gtk_button_set_image</link> (<link linkend="GtkButton">GtkButton</link> *button,
54
<link linkend="GtkWidget">GtkWidget</link> *image);
55
<link linkend="GtkWidget">GtkWidget</link>* <link linkend="gtk-button-get-image">gtk_button_get_image</link> (<link linkend="GtkButton">GtkButton</link> *button);
56
<link linkend="void">void</link> <link linkend="gtk-button-set-image-position">gtk_button_set_image_position</link> (<link linkend="GtkButton">GtkButton</link> *button,
57
<link linkend="GtkPositionType">GtkPositionType</link> position);
58
<link linkend="GtkPositionType">GtkPositionType</link> <link linkend="gtk-button-get-image-position">gtk_button_get_image_position</link> (<link linkend="GtkButton">GtkButton</link> *button);
64
<refsect1 role="object_hierarchy">
65
<title role="object_hierarchy.title">Object Hierarchy</title>
68
<link linkend="GObject">GObject</link>
69
+----<link linkend="GInitiallyUnowned">GInitiallyUnowned</link>
70
+----<link linkend="GtkObject">GtkObject</link>
71
+----<link linkend="GtkWidget">GtkWidget</link>
72
+----<link linkend="GtkContainer">GtkContainer</link>
73
+----<link linkend="GtkBin">GtkBin</link>
75
+----<link linkend="GtkToggleButton">GtkToggleButton</link>
76
+----<link linkend="GtkColorButton">GtkColorButton</link>
77
+----<link linkend="GtkFontButton">GtkFontButton</link>
78
+----<link linkend="GtkLinkButton">GtkLinkButton</link>
79
+----<link linkend="GtkOptionMenu">GtkOptionMenu</link>
86
<refsect1 role="impl_interfaces">
87
<title role="impl_interfaces.title">Implemented Interfaces</title>
90
<link linkend="AtkImplementorIface">AtkImplementorIface</link>.</para>
95
<refsect1 role="properties">
96
<title role="properties.title">Properties</title>
99
"<link linkend="GtkButton--focus-on-click">focus-on-click</link>" <link linkend="gboolean">gboolean</link> : Read / Write
100
"<link linkend="GtkButton--image">image</link>" <link linkend="GtkWidget">GtkWidget</link> : Read / Write
101
"<link linkend="GtkButton--image-position">image-position</link>" <link linkend="GtkPositionType">GtkPositionType</link> : Read / Write
102
"<link linkend="GtkButton--label">label</link>" <link linkend="gchararray">gchararray</link> : Read / Write / Construct
103
"<link linkend="GtkButton--relief">relief</link>" <link linkend="GtkReliefStyle">GtkReliefStyle</link> : Read / Write
104
"<link linkend="GtkButton--use-stock">use-stock</link>" <link linkend="gboolean">gboolean</link> : Read / Write / Construct
105
"<link linkend="GtkButton--use-underline">use-underline</link>" <link linkend="gboolean">gboolean</link> : Read / Write / Construct
106
"<link linkend="GtkButton--xalign">xalign</link>" <link linkend="gfloat">gfloat</link> : Read / Write
107
"<link linkend="GtkButton--yalign">yalign</link>" <link linkend="gfloat">gfloat</link> : Read / Write
110
<refsect1 role="style_properties">
111
<title role="style_properties.title">Style Properties</title>
114
"<link linkend="GtkButton--child-displacement-x">child-displacement-x</link>" <link linkend="gint">gint</link> : Read
115
"<link linkend="GtkButton--child-displacement-y">child-displacement-y</link>" <link linkend="gint">gint</link> : Read
116
"<link linkend="GtkButton--default-border">default-border</link>" <link linkend="GtkBorder">GtkBorder</link> : Read
117
"<link linkend="GtkButton--default-outside-border">default-outside-border</link>" <link linkend="GtkBorder">GtkBorder</link> : Read
118
"<link linkend="GtkButton--displace-focus">displace-focus</link>" <link linkend="gboolean">gboolean</link> : Read
119
"<link linkend="GtkButton--image-spacing">image-spacing</link>" <link linkend="gint">gint</link> : Read
120
"<link linkend="GtkButton--inner-border">inner-border</link>" <link linkend="GtkBorder">GtkBorder</link> : Read
124
<refsect1 role="signal_proto">
125
<title role="signal_proto.title">Signals</title>
128
"<link linkend="GtkButton-activate">activate</link>" : Run First / Action
129
"<link linkend="GtkButton-clicked">clicked</link>" : Run First / Action
130
"<link linkend="GtkButton-enter">enter</link>" : Run First
131
"<link linkend="GtkButton-leave">leave</link>" : Run First
132
"<link linkend="GtkButton-pressed">pressed</link>" : Run First
133
"<link linkend="GtkButton-released">released</link>" : Run First
138
<refsect1 role="desc">
139
<title role="desc.title">Description</title>
141
The <link linkend="GtkButton"><type>GtkButton</type></link> widget is generally used to attach a function to that
142
is called when the button is pressed. The various signals and how to use
143
them are outlined below.
146
The <link linkend="GtkButton"><type>GtkButton</type></link> widget can hold any valid child widget. That is it can
147
hold most any other standard <link linkend="GtkWidget"><type>GtkWidget</type></link>. The most commonly used child is
148
the <link linkend="GtkLabel"><type>GtkLabel</type></link>.
152
<refsect1 role="details">
153
<title role="details.title">Details</title>
155
<title><anchor id="GtkButton-struct" role="struct"/>GtkButton</title>
156
<indexterm><primary>GtkButton</primary></indexterm><programlisting>typedef struct _GtkButton GtkButton;</programlisting>
158
This should not be accessed directly. Use the accessor functions below.
161
<title><anchor id="gtk-button-new" role="function"/>gtk_button_new ()</title>
162
<indexterm><primary>gtk_button_new</primary></indexterm><programlisting><link linkend="GtkWidget">GtkWidget</link>* gtk_button_new (void);</programlisting>
164
Creates a new <link linkend="GtkButton"><type>GtkButton</type></link> widget. To add a child widget to the button,
165
use <link linkend="gtk-container-add"><function>gtk_container_add()</function></link>.
166
</para><variablelist role="params">
167
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The newly created <link linkend="GtkButton"><type>GtkButton</type></link> widget.
170
</simpara></listitem></varlistentry>
171
</variablelist></refsect2>
173
<title><anchor id="gtk-button-new-with-label" role="function"/>gtk_button_new_with_label ()</title>
174
<indexterm><primary>gtk_button_new_with_label</primary></indexterm><programlisting><link linkend="GtkWidget">GtkWidget</link>* gtk_button_new_with_label (const <link linkend="gchar">gchar</link> *label);</programlisting>
176
Creates a <link linkend="GtkButton"><type>GtkButton</type></link> widget with a <link linkend="GtkLabel"><type>GtkLabel</type></link> child containing the given
178
</para><variablelist role="params">
179
<varlistentry><term><parameter>label</parameter> :</term>
180
<listitem><simpara>The text you want the <link linkend="GtkLabel"><type>GtkLabel</type></link> to hold.
181
</simpara></listitem></varlistentry>
182
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The newly created <link linkend="GtkButton"><type>GtkButton</type></link> widget.
185
</simpara></listitem></varlistentry>
186
</variablelist></refsect2>
188
<title><anchor id="gtk-button-new-with-mnemonic" role="function"/>gtk_button_new_with_mnemonic ()</title>
189
<indexterm><primary>gtk_button_new_with_mnemonic</primary></indexterm><programlisting><link linkend="GtkWidget">GtkWidget</link>* gtk_button_new_with_mnemonic (const <link linkend="gchar">gchar</link> *label);</programlisting>
191
Creates a new <link linkend="GtkButton"><type>GtkButton</type></link> containing a label.
192
If characters in <parameter>label</parameter> are preceded by an underscore, they are underlined.
193
If you need a literal underscore character in a label, use '__' (two
194
underscores). The first underlined character represents a keyboard
195
accelerator called a mnemonic.
196
Pressing Alt and that key activates the button.</para>
199
</para><variablelist role="params">
200
<varlistentry><term><parameter>label</parameter> :</term>
201
<listitem><simpara> The text of the button, with an underscore in front of the
203
</simpara></listitem></varlistentry>
204
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="GtkButton"><type>GtkButton</type></link>
205
</simpara></listitem></varlistentry>
206
</variablelist></refsect2>
208
<title><anchor id="gtk-button-new-from-stock" role="function"/>gtk_button_new_from_stock ()</title>
209
<indexterm><primary>gtk_button_new_from_stock</primary></indexterm><programlisting><link linkend="GtkWidget">GtkWidget</link>* gtk_button_new_from_stock (const <link linkend="gchar">gchar</link> *stock_id);</programlisting>
211
Creates a new <link linkend="GtkButton"><type>GtkButton</type></link> containing the image and text from a stock item.
212
Some stock ids have preprocessor macros like <link linkend="GTK-STOCK-OK:CAPS"><type>GTK_STOCK_OK</type></link> and
213
<link linkend="GTK-STOCK-APPLY:CAPS"><type>GTK_STOCK_APPLY</type></link>.
216
If <parameter>stock_id</parameter> is unknown, then it will be treated as a mnemonic
217
label (as for <link linkend="gtk-button-new-with-mnemonic"><function>gtk_button_new_with_mnemonic()</function></link>).</para>
220
</para><variablelist role="params">
221
<varlistentry><term><parameter>stock_id</parameter> :</term>
222
<listitem><simpara> the name of the stock item
223
</simpara></listitem></varlistentry>
224
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="GtkButton"><type>GtkButton</type></link>
225
</simpara></listitem></varlistentry>
226
</variablelist></refsect2>
228
<title><anchor id="gtk-button-pressed" role="function"/>gtk_button_pressed ()</title>
229
<indexterm><primary>gtk_button_pressed</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_pressed (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
231
Emits a <link linkend="GtkButton-pressed"><type>GtkButton::pressed</type></link> signal to the given <link linkend="GtkButton"><type>GtkButton</type></link>.
232
</para><variablelist role="params">
233
<varlistentry><term><parameter>button</parameter> :</term>
234
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want to send the signal to.
237
</simpara></listitem></varlistentry>
238
</variablelist></refsect2>
240
<title><anchor id="gtk-button-released" role="function"/>gtk_button_released ()</title>
241
<indexterm><primary>gtk_button_released</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_released (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
243
Emits a <link linkend="GtkButton-released"><type>GtkButton::released</type></link> signal to the given <link linkend="GtkButton"><type>GtkButton</type></link>.
244
</para><variablelist role="params">
245
<varlistentry><term><parameter>button</parameter> :</term>
246
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want to send the signal to.
249
</simpara></listitem></varlistentry>
250
</variablelist></refsect2>
252
<title><anchor id="gtk-button-clicked" role="function"/>gtk_button_clicked ()</title>
253
<indexterm><primary>gtk_button_clicked</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_clicked (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
255
Emits a <link linkend="GtkButton-clicked"><type>GtkButton::clicked</type></link> signal to the given <link linkend="GtkButton"><type>GtkButton</type></link>.
256
</para><variablelist role="params">
257
<varlistentry><term><parameter>button</parameter> :</term>
258
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want to send the signal to.
261
</simpara></listitem></varlistentry>
262
</variablelist></refsect2>
264
<title><anchor id="gtk-button-enter" role="function"/>gtk_button_enter ()</title>
265
<indexterm><primary>gtk_button_enter</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_enter (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
267
Emits a <link linkend="GtkButton-enter"><type>GtkButton::enter</type></link> signal to the given <link linkend="GtkButton"><type>GtkButton</type></link>.
268
</para><variablelist role="params">
269
<varlistentry><term><parameter>button</parameter> :</term>
270
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want to send the signal to.
273
</simpara></listitem></varlistentry>
274
</variablelist></refsect2>
276
<title><anchor id="gtk-button-leave" role="function"/>gtk_button_leave ()</title>
277
<indexterm><primary>gtk_button_leave</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_leave (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
279
Emits a <link linkend="GtkButton-leave"><type>GtkButton::leave</type></link> signal to the given <link linkend="GtkButton"><type>GtkButton</type></link>.
280
</para><variablelist role="params">
281
<varlistentry><term><parameter>button</parameter> :</term>
282
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want to send the signal to.
285
</simpara></listitem></varlistentry>
286
</variablelist></refsect2>
288
<title><anchor id="gtk-button-set-relief" role="function"/>gtk_button_set_relief ()</title>
289
<indexterm><primary>gtk_button_set_relief</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_relief (<link linkend="GtkButton">GtkButton</link> *button,
290
<link linkend="GtkReliefStyle">GtkReliefStyle</link> newstyle);</programlisting>
292
Sets the relief style of the edges of the given <link linkend="GtkButton"><type>GtkButton</type></link> widget.
293
Three styles exist, GTK_RELIEF_NORMAL, GTK_RELIEF_HALF, GTK_RELIEF_NONE.
294
The default style is, as one can guess, GTK_RELIEF_NORMAL.
296
<!-- FIXME: put pictures of each style -->
297
</para><variablelist role="params">
298
<varlistentry><term><parameter>button</parameter> :</term>
299
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want to set relief styles of.
300
</simpara></listitem></varlistentry>
301
<varlistentry><term><parameter>newstyle</parameter> :</term>
302
<listitem><simpara>The GtkReliefStyle as described above.
305
</simpara></listitem></varlistentry>
306
</variablelist></refsect2>
308
<title><anchor id="gtk-button-get-relief" role="function"/>gtk_button_get_relief ()</title>
309
<indexterm><primary>gtk_button_get_relief</primary></indexterm><programlisting><link linkend="GtkReliefStyle">GtkReliefStyle</link> gtk_button_get_relief (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
311
Returns the current relief style of the given <link linkend="GtkButton"><type>GtkButton</type></link>.
312
</para><variablelist role="params">
313
<varlistentry><term><parameter>button</parameter> :</term>
314
<listitem><simpara>The <link linkend="GtkButton"><type>GtkButton</type></link> you want the <link linkend="GtkReliefStyle"><type>GtkReliefStyle</type></link> from.
315
</simpara></listitem></varlistentry>
316
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The current <link linkend="GtkReliefStyle"><type>GtkReliefStyle</type></link>
319
</simpara></listitem></varlistentry>
320
</variablelist></refsect2>
322
<title><anchor id="gtk-button-get-label" role="function"/>gtk_button_get_label ()</title>
323
<indexterm><primary>gtk_button_get_label</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* gtk_button_get_label (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
325
Fetches the text from the label of the button, as set by
326
<link linkend="gtk-button-set-label"><function>gtk_button_set_label()</function></link>. If the label text has not
327
been set the return value will be <link linkend="NULL:CAPS"><literal>NULL</literal></link>. This will be the
328
case if you create an empty button with <link linkend="gtk-button-new"><function>gtk_button_new()</function></link> to
329
use as a container.</para>
332
</para><variablelist role="params">
333
<varlistentry><term><parameter>button</parameter> :</term>
334
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
335
</simpara></listitem></varlistentry>
336
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The text of the label widget. This string is owned
337
by the widget and must not be modified or freed.
338
</simpara></listitem></varlistentry>
339
</variablelist></refsect2>
341
<title><anchor id="gtk-button-set-label" role="function"/>gtk_button_set_label ()</title>
342
<indexterm><primary>gtk_button_set_label</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_label (<link linkend="GtkButton">GtkButton</link> *button,
343
const <link linkend="gchar">gchar</link> *label);</programlisting>
345
Sets the text of the label of the button to <parameter>str</parameter>. This text is
346
also used to select the stock item if <link linkend="gtk-button-set-use-stock"><function>gtk_button_set_use_stock()</function></link>
350
This will also clear any previously set labels.</para>
353
</para><variablelist role="params">
354
<varlistentry><term><parameter>button</parameter> :</term>
355
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
356
</simpara></listitem></varlistentry>
357
<varlistentry><term><parameter>label</parameter> :</term>
358
<listitem><simpara> a string
359
</simpara></listitem></varlistentry>
360
</variablelist></refsect2>
362
<title><anchor id="gtk-button-get-use-stock" role="function"/>gtk_button_get_use_stock ()</title>
363
<indexterm><primary>gtk_button_get_use_stock</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gtk_button_get_use_stock (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
365
Returns whether the button label is a stock item.</para>
368
</para><variablelist role="params">
369
<varlistentry><term><parameter>button</parameter> :</term>
370
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
371
</simpara></listitem></varlistentry>
372
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the button label is used to
373
select a stock item instead of being
374
used directly as the label text.
375
</simpara></listitem></varlistentry>
376
</variablelist></refsect2>
378
<title><anchor id="gtk-button-set-use-stock" role="function"/>gtk_button_set_use_stock ()</title>
379
<indexterm><primary>gtk_button_set_use_stock</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_use_stock (<link linkend="GtkButton">GtkButton</link> *button,
380
<link linkend="gboolean">gboolean</link> use_stock);</programlisting>
382
If true, the label set on the button is used as a
383
stock id to select the stock item for the button.</para>
386
</para><variablelist role="params">
387
<varlistentry><term><parameter>button</parameter> :</term>
388
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
389
</simpara></listitem></varlistentry>
390
<varlistentry><term><parameter>use_stock</parameter> :</term>
391
<listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the button should use a stock item
392
</simpara></listitem></varlistentry>
393
</variablelist></refsect2>
395
<title><anchor id="gtk-button-get-use-underline" role="function"/>gtk_button_get_use_underline ()</title>
396
<indexterm><primary>gtk_button_get_use_underline</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gtk_button_get_use_underline (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
398
Returns whether an embedded underline in the button label indicates a
399
mnemonic. See <link linkend="gtk-button-set-use-underline"><function>gtk_button_set_use_underline()</function></link>.</para>
402
</para><variablelist role="params">
403
<varlistentry><term><parameter>button</parameter> :</term>
404
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
405
</simpara></listitem></varlistentry>
406
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if an embedded underline in the button label
407
indicates the mnemonic accelerator keys.
408
</simpara></listitem></varlistentry>
409
</variablelist></refsect2>
411
<title><anchor id="gtk-button-set-use-underline" role="function"/>gtk_button_set_use_underline ()</title>
412
<indexterm><primary>gtk_button_set_use_underline</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_use_underline (<link linkend="GtkButton">GtkButton</link> *button,
413
<link linkend="gboolean">gboolean</link> use_underline);</programlisting>
415
If true, an underline in the text of the button label indicates
416
the next character should be used for the mnemonic accelerator key.</para>
419
</para><variablelist role="params">
420
<varlistentry><term><parameter>button</parameter> :</term>
421
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
422
</simpara></listitem></varlistentry>
423
<varlistentry><term><parameter>use_underline</parameter> :</term>
424
<listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if underlines in the text indicate mnemonics
425
</simpara></listitem></varlistentry>
426
</variablelist></refsect2>
428
<title><anchor id="gtk-button-set-focus-on-click" role="function" condition="since:2.4"/>gtk_button_set_focus_on_click ()</title>
429
<indexterm role="2.4"><primary>gtk_button_set_focus_on_click</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_focus_on_click (<link linkend="GtkButton">GtkButton</link> *button,
430
<link linkend="gboolean">gboolean</link> focus_on_click);</programlisting>
432
Sets whether the button will grab focus when it is clicked with the mouse.
433
Making mouse clicks not grab focus is useful in places like toolbars where
434
you don't want the keyboard focus removed from the main area of the
438
</para><variablelist role="params">
439
<varlistentry><term><parameter>button</parameter> :</term>
440
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
441
</simpara></listitem></varlistentry>
442
<varlistentry><term><parameter>focus_on_click</parameter> :</term>
443
<listitem><simpara> whether the button grabs focus when clicked with the mouse
444
</simpara></listitem></varlistentry>
445
</variablelist><para role="since">Since 2.4
448
<title><anchor id="gtk-button-get-focus-on-click" role="function" condition="since:2.4"/>gtk_button_get_focus_on_click ()</title>
449
<indexterm role="2.4"><primary>gtk_button_get_focus_on_click</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gtk_button_get_focus_on_click (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
451
Returns whether the button grabs focus when it is clicked with the mouse.
452
See <link linkend="gtk-button-set-focus-on-click"><function>gtk_button_set_focus_on_click()</function></link>.</para>
455
</para><variablelist role="params">
456
<varlistentry><term><parameter>button</parameter> :</term>
457
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
458
</simpara></listitem></varlistentry>
459
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the button grabs focus when it is clicked with
462
</simpara></listitem></varlistentry>
463
</variablelist><para role="since">Since 2.4
466
<title><anchor id="gtk-button-set-alignment" role="function" condition="since:2.4"/>gtk_button_set_alignment ()</title>
467
<indexterm role="2.4"><primary>gtk_button_set_alignment</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_alignment (<link linkend="GtkButton">GtkButton</link> *button,
468
<link linkend="gfloat">gfloat</link> xalign,
469
<link linkend="gfloat">gfloat</link> yalign);</programlisting>
471
Sets the alignment of the child. This property has no effect unless
472
the child is a <link linkend="GtkMisc"><type>GtkMisc</type></link> or a <link linkend="GtkAligment"><type>GtkAligment</type></link>.</para>
475
</para><variablelist role="params">
476
<varlistentry><term><parameter>button</parameter> :</term>
477
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
478
</simpara></listitem></varlistentry>
479
<varlistentry><term><parameter>xalign</parameter> :</term>
480
<listitem><simpara> the horizontal position of the child, 0.0 is left aligned,
482
</simpara></listitem></varlistentry>
483
<varlistentry><term><parameter>yalign</parameter> :</term>
484
<listitem><simpara> the vertical position of the child, 0.0 is top aligned,
485
1.0 is bottom aligned
486
</simpara></listitem></varlistentry>
487
</variablelist><para role="since">Since 2.4
490
<title><anchor id="gtk-button-get-alignment" role="function" condition="since:2.4"/>gtk_button_get_alignment ()</title>
491
<indexterm role="2.4"><primary>gtk_button_get_alignment</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_get_alignment (<link linkend="GtkButton">GtkButton</link> *button,
492
<link linkend="gfloat">gfloat</link> *xalign,
493
<link linkend="gfloat">gfloat</link> *yalign);</programlisting>
495
Gets the alignment of the child in the button.</para>
498
</para><variablelist role="params">
499
<varlistentry><term><parameter>button</parameter> :</term>
500
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
501
</simpara></listitem></varlistentry>
502
<varlistentry><term><parameter>xalign</parameter> :</term>
503
<listitem><simpara> return location for horizontal alignment
504
</simpara></listitem></varlistentry>
505
<varlistentry><term><parameter>yalign</parameter> :</term>
506
<listitem><simpara> return location for vertical alignment
507
</simpara></listitem></varlistentry>
508
</variablelist><para role="since">Since 2.4
511
<title><anchor id="gtk-button-set-image" role="function" condition="since:2.6"/>gtk_button_set_image ()</title>
512
<indexterm role="2.6"><primary>gtk_button_set_image</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_image (<link linkend="GtkButton">GtkButton</link> *button,
513
<link linkend="GtkWidget">GtkWidget</link> *image);</programlisting>
515
Set the image of <parameter>button</parameter> to the given widget. Note that
516
it depends on the gtk-button-images setting whether the
517
image will be displayed or not, you don't have to call
518
<link linkend="gtk-widget-show"><function>gtk_widget_show()</function></link> on <parameter>image</parameter> yourself.</para>
521
</para><variablelist role="params">
522
<varlistentry><term><parameter>button</parameter> :</term>
523
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
524
</simpara></listitem></varlistentry>
525
<varlistentry><term><parameter>image</parameter> :</term>
526
<listitem><simpara> a widget to set as the image for the button
527
</simpara></listitem></varlistentry>
528
</variablelist><para role="since">Since 2.6
531
<title><anchor id="gtk-button-get-image" role="function" condition="since:2.6"/>gtk_button_get_image ()</title>
532
<indexterm role="2.6"><primary>gtk_button_get_image</primary></indexterm><programlisting><link linkend="GtkWidget">GtkWidget</link>* gtk_button_get_image (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
534
Gets the widget that is currenty set as the image of <parameter>button</parameter>.
535
This may have been explicitly set by <link linkend="gtk-button-set-image"><function>gtk_button_set_image()</function></link>
536
or constructed by <link linkend="gtk-button-new-from-stock"><function>gtk_button_new_from_stock()</function></link>.</para>
539
</para><variablelist role="params">
540
<varlistentry><term><parameter>button</parameter> :</term>
541
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
542
</simpara></listitem></varlistentry>
543
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a <link linkend="GtkWidget"><type>GtkWidget</type></link> or <link linkend="NULL:CAPS"><literal>NULL</literal></link> in case there is no image
545
</simpara></listitem></varlistentry>
546
</variablelist><para role="since">Since 2.6
549
<title><anchor id="gtk-button-set-image-position" role="function" condition="since:2.10"/>gtk_button_set_image_position ()</title>
550
<indexterm role="2.10"><primary>gtk_button_set_image_position</primary></indexterm><programlisting><link linkend="void">void</link> gtk_button_set_image_position (<link linkend="GtkButton">GtkButton</link> *button,
551
<link linkend="GtkPositionType">GtkPositionType</link> position);</programlisting>
553
Sets the position of the image relative to the text
554
inside the button.</para>
557
</para><variablelist role="params">
558
<varlistentry><term><parameter>button</parameter> :</term>
559
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
560
</simpara></listitem></varlistentry>
561
<varlistentry><term><parameter>position</parameter> :</term>
562
<listitem><simpara> the position
563
</simpara></listitem></varlistentry>
564
</variablelist><para role="since">Since 2.10
567
<title><anchor id="gtk-button-get-image-position" role="function" condition="since:2.10"/>gtk_button_get_image_position ()</title>
568
<indexterm role="2.10"><primary>gtk_button_get_image_position</primary></indexterm><programlisting><link linkend="GtkPositionType">GtkPositionType</link> gtk_button_get_image_position (<link linkend="GtkButton">GtkButton</link> *button);</programlisting>
570
Gets the position of the image relative to the text
571
inside the button.</para>
574
</para><variablelist role="params">
575
<varlistentry><term><parameter>button</parameter> :</term>
576
<listitem><simpara> a <link linkend="GtkButton"><type>GtkButton</type></link>
577
</simpara></listitem></varlistentry>
578
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the position
580
</simpara></listitem></varlistentry>
581
</variablelist><para role="since">Since 2.10
585
<refsect1 role="property_details">
586
<title role="property_details.title">Property Details</title>
587
<refsect2><title><anchor id="GtkButton--focus-on-click"/>The "<literal>focus-on-click</literal>" property</title>
588
<indexterm><primary>GtkButton:focus-on-click</primary></indexterm><programlisting> "focus-on-click" <link linkend="gboolean">gboolean</link> : Read / Write</programlisting>
589
<para>Whether the button grabs focus when it is clicked with the mouse.</para><para>Default value: TRUE</para>
591
<refsect2><title><anchor id="GtkButton--image"/>The "<literal>image</literal>" property</title>
592
<indexterm><primary>GtkButton:image</primary></indexterm><programlisting> "image" <link linkend="GtkWidget">GtkWidget</link> : Read / Write</programlisting>
593
<para>Child widget to appear next to the button text.</para></refsect2>
594
<refsect2><title><anchor id="GtkButton--image-position"/>The "<literal>image-position</literal>" property</title>
595
<indexterm role="2.10"><primary>GtkButton:image-position</primary></indexterm><programlisting> "image-position" <link linkend="GtkPositionType">GtkPositionType</link> : Read / Write</programlisting>
597
The position of the image relative to the text inside the button.</para>
600
</para><para>Default value: GTK_POS_LEFT</para>
604
<refsect2><title><anchor id="GtkButton--label"/>The "<literal>label</literal>" property</title>
605
<indexterm><primary>GtkButton:label</primary></indexterm><programlisting> "label" <link linkend="gchararray">gchararray</link> : Read / Write / Construct</programlisting>
606
<para>Text of the label widget inside the button, if the button contains a label widget.</para><para>Default value: NULL</para>
608
<refsect2><title><anchor id="GtkButton--relief"/>The "<literal>relief</literal>" property</title>
609
<indexterm><primary>GtkButton:relief</primary></indexterm><programlisting> "relief" <link linkend="GtkReliefStyle">GtkReliefStyle</link> : Read / Write</programlisting>
610
<para>The border relief style.</para><para>Default value: GTK_RELIEF_NORMAL</para>
612
<refsect2><title><anchor id="GtkButton--use-stock"/>The "<literal>use-stock</literal>" property</title>
613
<indexterm><primary>GtkButton:use-stock</primary></indexterm><programlisting> "use-stock" <link linkend="gboolean">gboolean</link> : Read / Write / Construct</programlisting>
614
<para>If set, the label is used to pick a stock item instead of being displayed.</para><para>Default value: FALSE</para>
616
<refsect2><title><anchor id="GtkButton--use-underline"/>The "<literal>use-underline</literal>" property</title>
617
<indexterm><primary>GtkButton:use-underline</primary></indexterm><programlisting> "use-underline" <link linkend="gboolean">gboolean</link> : Read / Write / Construct</programlisting>
618
<para>If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key.</para><para>Default value: FALSE</para>
620
<refsect2><title><anchor id="GtkButton--xalign"/>The "<literal>xalign</literal>" property</title>
621
<indexterm role="2.4"><primary>GtkButton:xalign</primary></indexterm><programlisting> "xalign" <link linkend="gfloat">gfloat</link> : Read / Write</programlisting>
623
If the child of the button is a <link linkend="GtkMisc"><type>GtkMisc</type></link> or <link linkend="GtkAlignment"><type>GtkAlignment</type></link>, this property
624
can be used to control it's horizontal alignment. 0.0 is left aligned,
625
1.0 is right aligned.</para>
628
</para><para>Allowed values: [0,1]</para>
629
<para>Default value: 0.5</para>
633
<refsect2><title><anchor id="GtkButton--yalign"/>The "<literal>yalign</literal>" property</title>
634
<indexterm role="2.4"><primary>GtkButton:yalign</primary></indexterm><programlisting> "yalign" <link linkend="gfloat">gfloat</link> : Read / Write</programlisting>
636
If the child of the button is a <link linkend="GtkMisc"><type>GtkMisc</type></link> or <link linkend="GtkAlignment"><type>GtkAlignment</type></link>, this property
637
can be used to control it's vertical alignment. 0.0 is top aligned,
638
1.0 is bottom aligned.</para>
641
</para><para>Allowed values: [0,1]</para>
642
<para>Default value: 0.5</para>
648
<refsect1 role="style_properties_details">
649
<title role="style_properties_details.title">Style Property Details</title>
650
<refsect2><title><anchor id="GtkButton--child-displacement-x"/>The "<literal>child-displacement-x</literal>" style property</title>
651
<indexterm><primary>GtkButton:child-displacement-x</primary></indexterm><programlisting> "child-displacement-x" <link linkend="gint">gint</link> : Read</programlisting>
652
<para>How far in the x direction to move the child when the button is depressed.</para><para>Default value: 0</para>
654
<refsect2><title><anchor id="GtkButton--child-displacement-y"/>The "<literal>child-displacement-y</literal>" style property</title>
655
<indexterm><primary>GtkButton:child-displacement-y</primary></indexterm><programlisting> "child-displacement-y" <link linkend="gint">gint</link> : Read</programlisting>
656
<para>How far in the y direction to move the child when the button is depressed.</para><para>Default value: 0</para>
658
<refsect2><title><anchor id="GtkButton--default-border"/>The "<literal>default-border</literal>" style property</title>
659
<indexterm><primary>GtkButton:default-border</primary></indexterm><programlisting> "default-border" <link linkend="GtkBorder">GtkBorder</link> : Read</programlisting>
660
<para>Extra space to add for CAN_DEFAULT buttons.</para></refsect2>
661
<refsect2><title><anchor id="GtkButton--default-outside-border"/>The "<literal>default-outside-border</literal>" style property</title>
662
<indexterm><primary>GtkButton:default-outside-border</primary></indexterm><programlisting> "default-outside-border" <link linkend="GtkBorder">GtkBorder</link> : Read</programlisting>
663
<para>Extra space to add for CAN_DEFAULT buttons that is always drawn outside the border.</para></refsect2>
664
<refsect2><title><anchor id="GtkButton--displace-focus"/>The "<literal>displace-focus</literal>" style property</title>
665
<indexterm role="2.6"><primary>GtkButton:displace-focus</primary></indexterm><programlisting> "displace-focus" <link linkend="gboolean">gboolean</link> : Read</programlisting>
667
Whether the child_displacement_x/child_displacement_y properties should also
668
affect the focus rectangle.</para>
671
</para><para>Default value: FALSE</para>
675
<refsect2><title><anchor id="GtkButton--image-spacing"/>The "<literal>image-spacing</literal>" style property</title>
676
<indexterm><primary>GtkButton:image-spacing</primary></indexterm><programlisting> "image-spacing" <link linkend="gint">gint</link> : Read</programlisting>
677
<para>Spacing in pixels between the image and label.</para><para>Allowed values: >= 0</para>
678
<para>Default value: 2</para>
680
<refsect2><title><anchor id="GtkButton--inner-border"/>The "<literal>inner-border</literal>" style property</title>
681
<indexterm role="2.10"><primary>GtkButton:inner-border</primary></indexterm><programlisting> "inner-border" <link linkend="GtkBorder">GtkBorder</link> : Read</programlisting>
683
Sets the border between the button edges and child.</para>
686
</para><para>Since 2.10
692
<refsect1 role="signals">
693
<title role="signals.title">Signal Details</title>
694
<refsect2><title><anchor id="GtkButton-activate"/>The "activate" signal</title>
695
<indexterm><primary>GtkButton::activate</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="GtkButton">GtkButton</link> *widget,
696
<link linkend="gpointer">gpointer</link> user_data) : Run First / Action</programlisting>
698
The "activate" signal on GtkButton is an action signal and
699
emitting it causes the button to animate press then release.
700
Applications should never connect to this signal, but use the
701
"clicked" signal.</para>
704
</para><variablelist role="params">
705
<varlistentry><term><parameter>widget</parameter> :</term>
706
<listitem><simpara> the object which received the signal.
707
</simpara></listitem></varlistentry>
708
<varlistentry><term><parameter>user_data</parameter> :</term>
709
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
710
</variablelist></refsect2><refsect2><title><anchor id="GtkButton-clicked"/>The "clicked" signal</title>
711
<indexterm><primary>GtkButton::clicked</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="GtkButton">GtkButton</link> *button,
712
<link linkend="gpointer">gpointer</link> user_data) : Run First / Action</programlisting>
714
Emitted when the button has been activated (pressed and released).</para>
717
</para><variablelist role="params">
718
<varlistentry><term><parameter>button</parameter> :</term>
719
<listitem><simpara> the object that received the signal
720
</simpara></listitem></varlistentry>
721
<varlistentry><term><parameter>user_data</parameter> :</term>
722
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
723
</variablelist></refsect2><refsect2><title><anchor id="GtkButton-enter"/>The "enter" signal</title>
724
<indexterm><primary>GtkButton::enter</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="GtkButton">GtkButton</link> *button,
725
<link linkend="gpointer">gpointer</link> user_data) : Run First</programlisting>
727
Emitted when the pointer enters the button.
730
<parameter>Deprecated</parameter>: Use the GtkWidget::enter-notify-event signal.</para>
733
</para><variablelist role="params">
734
<varlistentry><term><parameter>button</parameter> :</term>
735
<listitem><simpara> the object that received the signal
736
</simpara></listitem></varlistentry>
737
<varlistentry><term><parameter>user_data</parameter> :</term>
738
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
739
</variablelist></refsect2><refsect2><title><anchor id="GtkButton-leave"/>The "leave" signal</title>
740
<indexterm><primary>GtkButton::leave</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="GtkButton">GtkButton</link> *button,
741
<link linkend="gpointer">gpointer</link> user_data) : Run First</programlisting>
743
Emitted when the pointer leaves the button.
746
<parameter>Deprecated</parameter>: Use the GtkWidget::leave-notify-event signal.</para>
749
</para><variablelist role="params">
750
<varlistentry><term><parameter>button</parameter> :</term>
751
<listitem><simpara> the object that received the signal
752
</simpara></listitem></varlistentry>
753
<varlistentry><term><parameter>user_data</parameter> :</term>
754
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
755
</variablelist></refsect2><refsect2><title><anchor id="GtkButton-pressed"/>The "pressed" signal</title>
756
<indexterm><primary>GtkButton::pressed</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="GtkButton">GtkButton</link> *button,
757
<link linkend="gpointer">gpointer</link> user_data) : Run First</programlisting>
759
Emitted when the button is pressed.
762
<parameter>Deprecated</parameter>: Use the GtkWidget::button-press-event signal.</para>
765
</para><variablelist role="params">
766
<varlistentry><term><parameter>button</parameter> :</term>
767
<listitem><simpara> the object that received the signal
768
</simpara></listitem></varlistentry>
769
<varlistentry><term><parameter>user_data</parameter> :</term>
770
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
771
</variablelist></refsect2><refsect2><title><anchor id="GtkButton-released"/>The "released" signal</title>
772
<indexterm><primary>GtkButton::released</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="GtkButton">GtkButton</link> *button,
773
<link linkend="gpointer">gpointer</link> user_data) : Run First</programlisting>
775
Emitted when the button is released.
778
<parameter>Deprecated</parameter>: Use the GtkWidget::button-release-event signal.</para>
781
</para><variablelist role="params">
782
<varlistentry><term><parameter>button</parameter> :</term>
783
<listitem><simpara> the object that received the signal
784
</simpara></listitem></varlistentry>
785
<varlistentry><term><parameter>user_data</parameter> :</term>
786
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
787
</variablelist></refsect2>