GtkButton

GtkButton — A widget that creates a signal when clicked on

Synopsis


#include <gtk/gtk.h>


                    GtkButton;
GtkWidget*          gtk_button_new                      (void);
GtkWidget*          gtk_button_new_with_label           (const gchar *label);
GtkWidget*          gtk_button_new_with_mnemonic        (const gchar *label);
GtkWidget*          gtk_button_new_from_stock           (const gchar *stock_id);
void                gtk_button_pressed                  (GtkButton *button);
void                gtk_button_released                 (GtkButton *button);
void                gtk_button_clicked                  (GtkButton *button);
void                gtk_button_enter                    (GtkButton *button);
void                gtk_button_leave                    (GtkButton *button);
void                gtk_button_set_relief               (GtkButton *button,
                                                         GtkReliefStyle newstyle);
GtkReliefStyle      gtk_button_get_relief               (GtkButton *button);
const gchar*        gtk_button_get_label                (GtkButton *button);
void                gtk_button_set_label                (GtkButton *button,
                                                         const gchar *label);
gboolean            gtk_button_get_use_stock            (GtkButton *button);
void                gtk_button_set_use_stock            (GtkButton *button,
                                                         gboolean use_stock);
gboolean            gtk_button_get_use_underline        (GtkButton *button);
void                gtk_button_set_use_underline        (GtkButton *button,
                                                         gboolean use_underline);
void                gtk_button_set_focus_on_click       (GtkButton *button,
                                                         gboolean focus_on_click);
gboolean            gtk_button_get_focus_on_click       (GtkButton *button);
void                gtk_button_set_alignment            (GtkButton *button,
                                                         gfloat xalign,
                                                         gfloat yalign);
void                gtk_button_get_alignment            (GtkButton *button,
                                                         gfloat *xalign,
                                                         gfloat *yalign);
void                gtk_button_set_image                (GtkButton *button,
                                                         GtkWidget *image);
GtkWidget*          gtk_button_get_image                (GtkButton *button);
void                gtk_button_set_image_position       (GtkButton *button,
                                                         GtkPositionType position);
GtkPositionType     gtk_button_get_image_position       (GtkButton *button);


Description

The GtkButton widget is generally used to attach a function to that is called when the button is pressed. The various signals and how to use them are outlined below.

The GtkButton widget can hold any valid child widget. That is it can hold most any other standard GtkWidget. The most commonly used child is the GtkLabel.

Details

GtkButton

typedef struct {
  GtkBin bin;

  GdkWindow *event_window;

  gchar *label_text;

  guint activate_timeout;

  guint constructed : 1;
  guint in_button : 1;
  guint button_down : 1;
  guint relief : 2;
  guint use_underline : 1;
  guint use_stock : 1;
  guint depressed : 1;
  guint depress_on_activate : 1;
  guint focus_on_click : 1;
} GtkButton;

This should not be accessed directly. Use the accessor functions below.


gtk_button_new ()

GtkWidget*          gtk_button_new                      (void);

Creates a new GtkButton widget. To add a child widget to the button, use gtk_container_add().

Returns :

The newly created GtkButton widget.

gtk_button_new_with_label ()

GtkWidget*          gtk_button_new_with_label           (const gchar *label);

Creates a GtkButton widget with a GtkLabel child containing the given text.

label :

The text you want the GtkLabel to hold.

Returns :

The newly created GtkButton widget.

gtk_button_new_with_mnemonic ()

GtkWidget*          gtk_button_new_with_mnemonic        (const gchar *label);

Creates a new GtkButton containing a label. If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use '__' (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. Pressing Alt and that key activates the button.

label :

The text of the button, with an underscore in front of the mnemonic character

Returns :

a new GtkButton

gtk_button_new_from_stock ()

GtkWidget*          gtk_button_new_from_stock           (const gchar *stock_id);

Creates a new GtkButton containing the image and text from a stock item. Some stock ids have preprocessor macros like GTK_STOCK_OK and GTK_STOCK_APPLY.

If stock_id is unknown, then it will be treated as a mnemonic label (as for gtk_button_new_with_mnemonic()).

stock_id :

the name of the stock item

Returns :

a new GtkButton

gtk_button_pressed ()

void                gtk_button_pressed                  (GtkButton *button);

Emits a GtkButton::pressed signal to the given GtkButton.

button :

The GtkButton you want to send the signal to.

gtk_button_released ()

void                gtk_button_released                 (GtkButton *button);

Emits a GtkButton::released signal to the given GtkButton.

button :

The GtkButton you want to send the signal to.

gtk_button_clicked ()

void                gtk_button_clicked                  (GtkButton *button);

Emits a GtkButton::clicked signal to the given GtkButton.

button :

The GtkButton you want to send the signal to.

gtk_button_enter ()

void                gtk_button_enter                    (GtkButton *button);

Emits a GtkButton::enter signal to the given GtkButton.

button :

The GtkButton you want to send the signal to.

gtk_button_leave ()

void                gtk_button_leave                    (GtkButton *button);

Emits a GtkButton::leave signal to the given GtkButton.

button :

The GtkButton you want to send the signal to.

gtk_button_set_relief ()

void                gtk_button_set_relief               (GtkButton *button,
                                                         GtkReliefStyle newstyle);

Sets the relief style of the edges of the given GtkButton widget. Three styles exist, GTK_RELIEF_NORMAL, GTK_RELIEF_HALF, GTK_RELIEF_NONE. The default style is, as one can guess, GTK_RELIEF_NORMAL.

button :

The GtkButton you want to set relief styles of.

newstyle :

The GtkReliefStyle as described above.

gtk_button_get_relief ()

GtkReliefStyle      gtk_button_get_relief               (GtkButton *button);

Returns the current relief style of the given GtkButton.

button :

The GtkButton you want the GtkReliefStyle from.

Returns :

The current GtkReliefStyle

gtk_button_get_label ()

const gchar*        gtk_button_get_label                (GtkButton *button);

Fetches the text from the label of the button, as set by gtk_button_set_label(). If the label text has not been set the return value will be NULL. This will be the case if you create an empty button with gtk_button_new() to use as a container.

button :

a GtkButton

Returns :

The text of the label widget. This string is owned by the widget and must not be modified or freed.

gtk_button_set_label ()

void                gtk_button_set_label                (GtkButton *button,
                                                         const gchar *label);

Sets the text of the label of the button to str. This text is also used to select the stock item if gtk_button_set_use_stock() is used.

This will also clear any previously set labels.

button :

a GtkButton

label :

a string

gtk_button_get_use_stock ()

gboolean            gtk_button_get_use_stock            (GtkButton *button);

Returns whether the button label is a stock item.

button :

a GtkButton

Returns :

TRUE if the button label is used to select a stock item instead of being used directly as the label text.

gtk_button_set_use_stock ()

void                gtk_button_set_use_stock            (GtkButton *button,
                                                         gboolean use_stock);

If TRUE, the label set on the button is used as a stock id to select the stock item for the button.

button :

a GtkButton

use_stock :

TRUE if the button should use a stock item

gtk_button_get_use_underline ()

gboolean            gtk_button_get_use_underline        (GtkButton *button);

Returns whether an embedded underline in the button label indicates a mnemonic. See gtk_button_set_use_underline().

button :

a GtkButton

Returns :

TRUE if an embedded underline in the button label indicates the mnemonic accelerator keys.

gtk_button_set_use_underline ()

void                gtk_button_set_use_underline        (GtkButton *button,
                                                         gboolean use_underline);

If true, an underline in the text of the button label indicates the next character should be used for the mnemonic accelerator key.

button :

a GtkButton

use_underline :

TRUE if underlines in the text indicate mnemonics

gtk_button_set_focus_on_click ()

void                gtk_button_set_focus_on_click       (GtkButton *button,
                                                         gboolean focus_on_click);

Sets whether the button will grab focus when it is clicked with the mouse. Making mouse clicks not grab focus is useful in places like toolbars where you don't want the keyboard focus removed from the main area of the application.

button :

a GtkButton

focus_on_click :

whether the button grabs focus when clicked with the mouse

Since 2.4


gtk_button_get_focus_on_click ()

gboolean            gtk_button_get_focus_on_click       (GtkButton *button);

Returns whether the button grabs focus when it is clicked with the mouse. See gtk_button_set_focus_on_click().

button :

a GtkButton

Returns :

TRUE if the button grabs focus when it is clicked with the mouse.

Since 2.4


gtk_button_set_alignment ()

void                gtk_button_set_alignment            (GtkButton *button,
                                                         gfloat xalign,
                                                         gfloat yalign);

Sets the alignment of the child. This property has no effect unless the child is a GtkMisc or a GtkAligment.

button :

a GtkButton

xalign :

the horizontal position of the child, 0.0 is left aligned, 1.0 is right aligned

yalign :

the vertical position of the child, 0.0 is top aligned, 1.0 is bottom aligned

Since 2.4


gtk_button_get_alignment ()

void                gtk_button_get_alignment            (GtkButton *button,
                                                         gfloat *xalign,
                                                         gfloat *yalign);

Gets the alignment of the child in the button.

button :

a GtkButton

xalign :

return location for horizontal alignment

yalign :

return location for vertical alignment

Since 2.4


gtk_button_set_image ()

void                gtk_button_set_image                (GtkButton *button,
                                                         GtkWidget *image);

Set the image of button to the given widget. Note that it depends on the GtkSettings:gtk-button-images setting whether the image will be displayed or not, you don't have to call gtk_widget_show() on image yourself.

button :

a GtkButton

image :

a widget to set as the image for the button

Since 2.6


gtk_button_get_image ()

GtkWidget*          gtk_button_get_image                (GtkButton *button);

Gets the widget that is currenty set as the image of button. This may have been explicitly set by gtk_button_set_image() or constructed by gtk_button_new_from_stock().

button :

a GtkButton

Returns :

a GtkWidget or NULL in case there is no image

Since 2.6


gtk_button_set_image_position ()

void                gtk_button_set_image_position       (GtkButton *button,
                                                         GtkPositionType position);

Sets the position of the image relative to the text inside the button.

button :

a GtkButton

position :

the position

Since 2.10


gtk_button_get_image_position ()

GtkPositionType     gtk_button_get_image_position       (GtkButton *button);

Gets the position of the image relative to the text inside the button.

button :

a GtkButton

Returns :

the position

Since 2.10