ModelButton

GtkModelButton is a button class that can use a #GAction as its model. In contrast to #GtkToggleButton or #GtkRadioButton, which can also be backed by a #GAction via the #GtkActionable:action-name property, GtkModelButton will adapt its appearance according to the kind of action it is backed by, and appear either as a plain, check or radio button.

Model buttons are used when popovers from a menu model with gtk_popover_new_from_model(); they can also be used manually in a #GtkPopoverMenu.

When the action is specified via the #GtkActionable:action-name and #GtkActionable:action-target properties, the role of the button (i.e. whether it is a plain, check or radio button) is determined by the type of the action and doesn't have to be explicitly specified with the #GtkModelButton:role property.

The content of the button is specified by the #GtkModelButton:text and #GtkModelButton:icon properties.

The appearance of model buttons can be influenced with the #GtkModelButton:centered and #GtkModelButton:iconic properties.

Model buttons have built-in support for submenus in #GtkPopoverMenu. To make a GtkModelButton that opens a submenu when activated, set the #GtkModelButton:menu-name property. To make a button that goes back to the parent menu, you should set the #GtkModelButton:inverted property to place the submenu indicator at the opposite side.

Example

|[ <object class="GtkPopoverMenu"> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="margin">10</property> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">view.cut</property> <property name="text" translatable="yes">Cut</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">view.copy</property> <property name="text" translatable="yes">Copy</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">view.paste</property> <property name="text" translatable="yes">Paste</property> </object> </child> </object> </child> </object> ]|

CSS nodes

|[<!-- language="plain" --> modelbutton ├── <child> ╰── check ]|

|[<!-- language="plain" --> modelbutton ├── <child> ╰── radio ]|

|[<!-- language="plain" --> modelbutton ├── <child> ╰── arrow ]|

GtkModelButton has a main CSS node with name modelbutton, and a subnode, which will have the name check, radio or arrow, depending on the role of the button and whether it has a menu name set.

The subnode is positioned before or after the content nodes and gets the .left or .right style class, depending on where it is located.

|[<!-- language="plain" --> button.model ├── <child> ╰── check ]|

Iconic model buttons (see #GtkModelButton:iconic) change the name of their main node to button and add a .model style class to it. The indicator subnode is invisible in this case.

Constructors

this
this(GtkModelButton* gtkModelButton, bool ownedRef)

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

this
this()

Creates a new GtkModelButton.

Members

Functions

getModelButtonStruct
GtkModelButton* getModelButtonStruct()

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

setStruct
void setStruct(GObject* obj)
Undocumented in source. Be warned that the author may not have intended to support it.

Static functions

getType
GType getType()

Variables

gtkModelButton
GtkModelButton* gtkModelButton;

the main Gtk struct

Inherited Members

From Button

gtkButton
GtkButton* gtkButton;

the main Gtk struct

getButtonStruct
GtkButton* getButtonStruct()

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

setStruct
void setStruct(GObject* obj)
Undocumented in source. Be warned that the author may not have intended to support it.
__anonymous
mixin ActionableT!(GtkButton)
Undocumented in source.
__anonymous
mixin ActivatableT!(GtkButton)
Undocumented in source.
setIconSize
void setIconSize(IconSize iconSize)
getIconSize
IconSize getIconSize()
getType
GType getType()
clicked
void clicked()

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

enter
void enter()

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

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 #GtkSettings:gtk-button-images setting and always show the image, if available.

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 gtk_button_set_focus_on_click().

getImage
Widget getImage()

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().

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 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.

getRelief
GtkReliefStyle getRelief()

Returns the current relief style of the given #GtkButton.

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 #GtkButton::leave signal to the given #GtkButton.

pressed
void pressed()

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

released
void released()

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

setAlignment
void setAlignment(float xalign, float yalign)

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

setAlwaysShowImage
void setAlwaysShowImage(bool alwaysShow)

If %TRUE, the button will ignore the #GtkSettings: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 #GtkButton:always-show-image is %TRUE. You don’t have to call gtk_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 gtk_button_set_use_stock() is used.

setRelief
void setRelief(GtkReliefStyle relief)

Sets the relief style of the edges of the given #GtkButton 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.

OnActivateDelegateWrapper
class OnActivateDelegateWrapper
Undocumented in source.
onActivateListeners
OnActivateDelegateWrapper[] onActivateListeners;
Undocumented in source.
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 #GtkButton::clicked signal.

callBackActivate
void callBackActivate(GtkButton* buttonStruct, OnActivateDelegateWrapper wrapper)
Undocumented in source. Be warned that the author may not have intended to support it.
callBackActivateDestroy
void callBackActivateDestroy(OnActivateDelegateWrapper wrapper, GClosure* closure)
Undocumented in source. Be warned that the author may not have intended to support it.
internalRemoveOnActivate
void internalRemoveOnActivate(OnActivateDelegateWrapper source)
Undocumented in source. Be warned that the author may not have intended to support it.
OnClickedDelegateWrapper
class OnClickedDelegateWrapper
Undocumented in source.
onClickedListeners
OnClickedDelegateWrapper[] onClickedListeners;
Undocumented in source.
addOnClicked
gulong addOnClicked(void delegate(Button) dlg, ConnectFlags connectFlags)

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

callBackClicked
void callBackClicked(GtkButton* buttonStruct, OnClickedDelegateWrapper wrapper)
Undocumented in source. Be warned that the author may not have intended to support it.
callBackClickedDestroy
void callBackClickedDestroy(OnClickedDelegateWrapper wrapper, GClosure* closure)
Undocumented in source. Be warned that the author may not have intended to support it.
internalRemoveOnClicked
void internalRemoveOnClicked(OnClickedDelegateWrapper source)
Undocumented in source. Be warned that the author may not have intended to support it.
OnEnterDelegateWrapper
class OnEnterDelegateWrapper
Undocumented in source.
onEnterListeners
OnEnterDelegateWrapper[] onEnterListeners;
Undocumented in source.
addOnEnter
gulong addOnEnter(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the pointer enters the button.

callBackEnter
void callBackEnter(GtkButton* buttonStruct, OnEnterDelegateWrapper wrapper)
Undocumented in source. Be warned that the author may not have intended to support it.
callBackEnterDestroy
void callBackEnterDestroy(OnEnterDelegateWrapper wrapper, GClosure* closure)
Undocumented in source. Be warned that the author may not have intended to support it.
internalRemoveOnEnter
void internalRemoveOnEnter(OnEnterDelegateWrapper source)
Undocumented in source. Be warned that the author may not have intended to support it.
OnLeaveDelegateWrapper
class OnLeaveDelegateWrapper
Undocumented in source.
onLeaveListeners
OnLeaveDelegateWrapper[] onLeaveListeners;
Undocumented in source.
addOnLeave
gulong addOnLeave(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the pointer leaves the button.

callBackLeave
void callBackLeave(GtkButton* buttonStruct, OnLeaveDelegateWrapper wrapper)
Undocumented in source. Be warned that the author may not have intended to support it.
callBackLeaveDestroy
void callBackLeaveDestroy(OnLeaveDelegateWrapper wrapper, GClosure* closure)
Undocumented in source. Be warned that the author may not have intended to support it.
internalRemoveOnLeave
void internalRemoveOnLeave(OnLeaveDelegateWrapper source)
Undocumented in source. Be warned that the author may not have intended to support it.
OnPressedDelegateWrapper
class OnPressedDelegateWrapper
Undocumented in source.
onPressedListeners
OnPressedDelegateWrapper[] onPressedListeners;
Undocumented in source.
addOnPressed
gulong addOnPressed(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the button is pressed.

callBackPressed
void callBackPressed(GtkButton* buttonStruct, OnPressedDelegateWrapper wrapper)
Undocumented in source. Be warned that the author may not have intended to support it.
callBackPressedDestroy
void callBackPressedDestroy(OnPressedDelegateWrapper wrapper, GClosure* closure)
Undocumented in source. Be warned that the author may not have intended to support it.
internalRemoveOnPressed
void internalRemoveOnPressed(OnPressedDelegateWrapper source)
Undocumented in source. Be warned that the author may not have intended to support it.
OnReleasedDelegateWrapper
class OnReleasedDelegateWrapper
Undocumented in source.
onReleasedListeners
OnReleasedDelegateWrapper[] onReleasedListeners;
Undocumented in source.
addOnReleased
gulong addOnReleased(void delegate(Button) dlg, ConnectFlags connectFlags)

Emitted when the button is released.

callBackReleased
void callBackReleased(GtkButton* buttonStruct, OnReleasedDelegateWrapper wrapper)
Undocumented in source. Be warned that the author may not have intended to support it.
callBackReleasedDestroy
void callBackReleasedDestroy(OnReleasedDelegateWrapper wrapper, GClosure* closure)
Undocumented in source. Be warned that the author may not have intended to support it.
internalRemoveOnReleased
void internalRemoveOnReleased(OnReleasedDelegateWrapper source)
Undocumented in source. Be warned that the author may not have intended to support it.

Meta