Button

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

The gtk.Button widget can hold any valid child widget. That is, it can hold almost any other standard gtk.Widget The most commonly used child is the gtk.Label

CSS nodes

GtkButton has a single CSS node with name button. The node will get the style classes .image-button or .text-button, if the content is just an image or label, respectively. It may also receive the .flat style class.

Other style classes that are commonly used with GtkButton include .suggested-action and .destructive-action. In special cases, buttons can be made round by adding the .circular style class.

Button-like widgets like gtk.ToggleButton, gtk.MenuButton, gtk.VolumeButton, gtk.LockButton, gtk.ColorButton, gtk.FontButton or gtk.FileChooserButton use style classes such as .toggle, .popup, .scale, .lock, .color, .font, .file to differentiate themselves from a plain GtkButton.

class Button : Bin , ActionableIF , ActivatableIF {}

Constructors

this
this(GtkButton* gtkButton, bool ownedRef)

Sets our main struct and passes it to the parent class.

this
this(string label, bool mnemonic)

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.

this
this(StockID stockID, bool hideLabel)

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 Button.newWithMnemonic).

this
this(StockID stockID, void delegate(Button) dlg, bool hideLabel)
this
this(string label, void delegate(Button) dlg, bool mnemonic)
this
this(string label, void delegate(Button) dlg, string action)
this
this()

Creates a new gtk.Button widget. To add a child widget to the button, use Container.add.

this
this(string iconName, GtkIconSize size)

Creates a new button containing an icon from the current icon theme.

Members

Functions

addOnActivate
gulong addOnActivate(void delegate(Button) dlg, ConnectFlags connectFlags)

The ::activate signal on GtkButton is an action signal and emitting it causes the button to animate press then release. Applications should never connect to this signal, but use the clicked signal.

addOnClicked
gulong addOnClicked(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the button has been activated (pressed and released).

addOnEnter
gulong addOnEnter(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the pointer enters the button.

addOnLeave
gulong addOnLeave(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the pointer leaves the button.

addOnPressed
gulong addOnPressed(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the button is pressed.

addOnReleased
gulong addOnReleased(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the button is released.

clicked
void clicked()

Emits a clicked signal to the given gtk.Button

enter
void enter()

Emits a enter signal to the given gtk.Button

getAlignment
void getAlignment(float xalign, float yalign)

Gets the alignment of the child in the button.

getAlwaysShowImage
bool getAlwaysShowImage()

Returns whether the button will ignore the gtk-button-images setting and always show the image, if available.

getButtonStruct
GtkButton* getButtonStruct(bool transferOwnership)

Get the main Gtk struct

getEventWindow
Window getEventWindow()

Returns the button’s event window if it is realized, NULL otherwise. This function should be rarely needed.

getFocusOnClick
bool getFocusOnClick()

Returns whether the button grabs focus when it is clicked with the mouse. See Button.setFocusOnClick.

getImage
Widget getImage()

Gets the widget that is currenty set as the image of button. This may have been explicitly set by Button.setImage or constructed by Button.newFromStock.

getImagePosition
GtkPositionType getImagePosition()

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

getLabel
string getLabel()

Fetches the text from the label of the button, as set by Button.setLabel. 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 Button.new to use as a container.

getRelief
GtkReliefStyle getRelief()

Returns the current relief style of the given gtk.Button

getStruct
void* getStruct()

the main Gtk struct as a void*

getUseStock
bool getUseStock()

Returns whether the button label is a stock item.

getUseUnderline
bool getUseUnderline()

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

leave
void leave()

Emits a leave signal to the given gtk.Button

pressed
void pressed()

Emits a pressed signal to the given gtk.Button

released
void released()

Emits a released signal to the given gtk.Button

setAlignment
void setAlignment(float xalign, float yalign)

Sets the alignment of the child. This property has no effect unless the child is a gtk.Misc or a gtk.Alignment

setAlwaysShowImage
void setAlwaysShowImage(bool alwaysShow)

If TRUE, the button will ignore the gtk-button-images setting and always show the image, if available.

setFocusOnClick
void setFocusOnClick(bool focusOnClick)

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.

setImage
void setImage(Widget image)

Set the image of button to the given widget. The image will be displayed if the label text is NULL or if always-show-image is TRUE. You don’t have to call Widget.show on image yourself.

setImagePosition
void setImagePosition(GtkPositionType position)

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

setLabel
void setLabel(string label)

Sets the text of the label of the button to str. This text is also used to select the stock item if Button.setUseStock is used.

setRelief
void setRelief(GtkReliefStyle relief)

Sets the relief style of the edges of the given gtk.Button widget. Two styles exist, GTK_RELIEF_NORMAL and GTK_RELIEF_NONE. The default style is, as one can guess, GTK_RELIEF_NORMAL. The deprecated value GTK_RELIEF_HALF behaves the same as GTK_RELIEF_NORMAL.

setUseStock
void setUseStock(bool useStock)

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

setUseUnderline
void setUseUnderline(bool useUnderline)

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

Static functions

getIconSize
IconSize getIconSize()
getType
GType getType()
setIconSize
void setIconSize(IconSize iconSize)

Variables

gtkButton
GtkButton* gtkButton;

the main Gtk struct

Inherited Members

From Bin

gtkBin
GtkBin* gtkBin;

the main Gtk struct

getBinStruct
GtkBin* getBinStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

getType
GType getType()
getChild
Widget getChild()

Gets the child of the gtk.Bin, or NULL if the bin contains no child widget. The returned widget does not have a reference added, so you do not need to unref it.

From ActionableIF

getActionableStruct
GtkActionable* getActionableStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

getType
GType getType()
getActionName
string getActionName()

Gets the action name for actionable.

getActionTargetValue
Variant getActionTargetValue()

Gets the current target value of actionable.

setActionName
void setActionName(string actionName)

Specifies the name of the action with which this widget should be associated. If action_name is NULL then the widget will be unassociated from any previous action.

setActionTargetValue
void setActionTargetValue(Variant targetValue)

Sets the target value of an actionable widget.

setDetailedActionName
void setDetailedActionName(string detailedActionName)

Sets the action-name and associated string target value of an actionable widget.

From ActivatableIF

getActivatableStruct
GtkActivatable* getActivatableStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

getType
GType getType()
doSetRelatedAction
void doSetRelatedAction(Action action)

This is a utility function for GtkActivatable implementors.

getRelatedAction
Action getRelatedAction()

Gets the related gtk.Action for activatable.

getUseActionAppearance
bool getUseActionAppearance()

Gets whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance.

setRelatedAction
void setRelatedAction(Action action)

Sets the related action on the activatable object.

setUseActionAppearance
void setUseActionAppearance(bool useAppearance)

Sets whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance

syncActionProperties
void syncActionProperties(Action action)

This is called to update the activatable completely, this is called internally when the related-action property is set or unset and by the implementing class when use-action-appearance changes.