gi-gtk-4.0.5: Gtk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gtk.Objects.Button

Description

The GtkButton widget is generally used to trigger a callback function that is called when the button is pressed.

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

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. When activating a button via the keyboard, the button will temporarily gain the .keyboard-activating 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 ToggleButton, MenuButton, VolumeButton, LockButton, ColorButton or FontButton use style classes such as .toggle, .popup, .scale, .lock, .color on the button node to differentiate themselves from a plain GtkButton.

Accessibility

GtkButton uses the AccessibleRoleButton role.

Synopsis

Exported types

newtype Button Source #

Memory-managed wrapper type.

Constructors

Button (ManagedPtr Button) 

Instances

Instances details
Eq Button Source # 
Instance details

Defined in GI.Gtk.Objects.Button

Methods

(==) :: Button -> Button -> Bool #

(/=) :: Button -> Button -> Bool #

GObject Button Source # 
Instance details

Defined in GI.Gtk.Objects.Button

ManagedPtrNewtype Button Source # 
Instance details

Defined in GI.Gtk.Objects.Button

TypedObject Button Source # 
Instance details

Defined in GI.Gtk.Objects.Button

Methods

glibType :: IO GType #

HasParentTypes Button Source # 
Instance details

Defined in GI.Gtk.Objects.Button

IsGValue (Maybe Button) Source #

Convert Button to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gtk.Objects.Button

type ParentTypes Button Source # 
Instance details

Defined in GI.Gtk.Objects.Button

class (GObject o, IsDescendantOf Button o) => IsButton o Source #

Type class for types which can be safely cast to Button, for instance with toButton.

Instances

Instances details
(GObject o, IsDescendantOf Button o) => IsButton o Source # 
Instance details

Defined in GI.Gtk.Objects.Button

toButton :: (MonadIO m, IsButton o) => o -> m Button Source #

Cast to Button, for types for which this is known to be safe. For general casts, use castTo.

Methods

Click to display all available methods, including inherited ones

Expand

Methods

actionSetEnabled, activate, activateAction, activateDefault, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, bindProperty, bindPropertyFull, childFocus, computeBounds, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, dragCheckThreshold, errorBell, forceFloating, freezeNotify, getv, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFloating, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, notify, notifyByPspec, observeChildren, observeControllers, pick, queueAllocate, queueDraw, queueResize, realize, ref, refSink, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, resetProperty, resetRelation, resetState, runDispose, shouldLayout, show, sizeAllocate, snapshotChild, stealData, stealQdata, thawNotify, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unref, unsetStateFlags, updateProperty, updateRelation, updateState, watchClosure.

Getters

getAccessibleRole, getActionName, getActionTargetValue, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBuildableId, getCanFocus, getCanTarget, getChild, getChildVisible, getClipboard, getCssClasses, getCssName, getCursor, getData, getDirection, getDisplay, getFirstChild, getFocusChild, getFocusOnClick, getFocusable, getFontMap, getFontOptions, getFrameClock, getHalign, getHasFrame, getHasTooltip, getHeight, getHexpand, getHexpandSet, getIconName, getLabel, getLastChild, getLayoutManager, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getProperty, getQdata, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getUseUnderline, getValign, getVexpand, getVexpandSet, getVisible, getWidth.

Setters

setActionName, setActionTargetValue, setCanFocus, setCanTarget, setChild, setChildVisible, setCssClasses, setCursor, setCursorFromName, setData, setDataFull, setDetailedActionName, setDirection, setFocusChild, setFocusOnClick, setFocusable, setFontMap, setFontOptions, setHalign, setHasFrame, setHasTooltip, setHexpand, setHexpandSet, setIconName, setLabel, setLayoutManager, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setProperty, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setTooltipMarkup, setTooltipText, setUseUnderline, setValign, setVexpand, setVexpandSet, setVisible.

getChild

buttonGetChild Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> m (Maybe Widget)

Returns: the child widget of button

Gets the child widget of button.

getHasFrame

buttonGetHasFrame Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> m Bool

Returns: True if the button has a frame

Returns whether the button has a frame.

getIconName

buttonGetIconName Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: A GtkButton

-> m (Maybe Text)

Returns: The icon name set via buttonSetIconName

Returns the icon name of the button.

If the icon name has not been set with buttonSetIconName the return value will be Nothing. This will be the case if you create an empty button with buttonNew to use as a container.

getLabel

buttonGetLabel Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> m (Maybe Text)

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

Fetches the text from the label of the button.

If the label text has not been set with buttonSetLabel the return value will be Nothing. This will be the case if you create an empty button with buttonNew to use as a container.

getUseUnderline

buttonGetUseUnderline Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> m Bool

Returns: True if an embedded underline in the button label indicates the mnemonic accelerator keys.

gets whether underlines are interpreted as mnemonics.

See buttonSetUseUnderline.

new

buttonNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m Button

Returns: The newly created GtkButton widget.

Creates a new GtkButton widget.

To add a child widget to the button, use buttonSetChild.

newFromIconName

buttonNewFromIconName Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Maybe Text

iconName: an icon name

-> m Button

Returns: a new GtkButton displaying the themed icon

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

If the icon name isn’t known, a “broken image” icon will be displayed instead. If the current icon theme is changed, the icon will be updated appropriately.

newWithLabel

buttonNewWithLabel Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

label: The text you want the GtkLabel to hold

-> m Button

Returns: The newly created GtkButton widget

Creates a GtkButton widget with a GtkLabel child.

newWithMnemonic

buttonNewWithMnemonic Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

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

-> m Button

Returns: a new GtkButton

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.

setChild

buttonSetChild Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a, IsWidget b) 
=> a

button: a GtkButton

-> Maybe b

child: the child widget

-> m () 

Sets the child widget of button.

Note that by using this API, you take full responsibility for setting up the proper accessibility label and description information for button. Most likely, you'll either set the accessibility label or description for button explicitly, or you'll set a labelled-by or described-by relations from child to button.

setHasFrame

buttonSetHasFrame Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> Bool

hasFrame: whether the button should have a visible frame

-> m () 

Sets the style of the button.

Buttons can has a flat appearance or have a frame drawn around them.

setIconName

buttonSetIconName Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: A GtkButton

-> Text

iconName: An icon name

-> m () 

Adds a GtkImage with the given icon name as a child.

If button already contains a child widget, that child widget will be removed and replaced with the image.

setLabel

buttonSetLabel Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> Text

label: a string

-> m () 

Sets the text of the label of the button to label.

This will also clear any previously set labels.

setUseUnderline

buttonSetUseUnderline Source #

Arguments

:: (HasCallStack, MonadIO m, IsButton a) 
=> a

button: a GtkButton

-> Bool

useUnderline: True if underlines in the text indicate mnemonics

-> m () 

Sets whether to use underlines as mnemonics.

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

Properties

child

The child widget.

clearButtonChild :: (MonadIO m, IsButton o) => o -> m () Source #

Set the value of the “child” property to Nothing. When overloading is enabled, this is equivalent to

clear #child

constructButtonChild :: (IsButton o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “child” property. This is rarely needed directly, but it is used by new.

getButtonChild :: (MonadIO m, IsButton o) => o -> m (Maybe Widget) Source #

Get the value of the “child” property. When overloading is enabled, this is equivalent to

get button #child

setButtonChild :: (MonadIO m, IsButton o, IsWidget a) => o -> a -> m () Source #

Set the value of the “child” property. When overloading is enabled, this is equivalent to

set button [ #child := value ]

hasFrame

Whether the button has a frame.

constructButtonHasFrame :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “has-frame” property. This is rarely needed directly, but it is used by new.

getButtonHasFrame :: (MonadIO m, IsButton o) => o -> m Bool Source #

Get the value of the “has-frame” property. When overloading is enabled, this is equivalent to

get button #hasFrame

setButtonHasFrame :: (MonadIO m, IsButton o) => o -> Bool -> m () Source #

Set the value of the “has-frame” property. When overloading is enabled, this is equivalent to

set button [ #hasFrame := value ]

iconName

The name of the icon used to automatically populate the button.

constructButtonIconName :: (IsButton o, MonadIO m) => Text -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “icon-name” property. This is rarely needed directly, but it is used by new.

getButtonIconName :: (MonadIO m, IsButton o) => o -> m (Maybe Text) Source #

Get the value of the “icon-name” property. When overloading is enabled, this is equivalent to

get button #iconName

setButtonIconName :: (MonadIO m, IsButton o) => o -> Text -> m () Source #

Set the value of the “icon-name” property. When overloading is enabled, this is equivalent to

set button [ #iconName := value ]

label

Text of the label inside the button, if the button contains a label widget.

constructButtonLabel :: (IsButton o, MonadIO m) => Text -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “label” property. This is rarely needed directly, but it is used by new.

getButtonLabel :: (MonadIO m, IsButton o) => o -> m (Maybe Text) Source #

Get the value of the “label” property. When overloading is enabled, this is equivalent to

get button #label

setButtonLabel :: (MonadIO m, IsButton o) => o -> Text -> m () Source #

Set the value of the “label” property. When overloading is enabled, this is equivalent to

set button [ #label := value ]

useUnderline

If set, an underline in the text indicates that the following character is to be used as mnemonic.

constructButtonUseUnderline :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “use-underline” property. This is rarely needed directly, but it is used by new.

getButtonUseUnderline :: (MonadIO m, IsButton o) => o -> m Bool Source #

Get the value of the “use-underline” property. When overloading is enabled, this is equivalent to

get button #useUnderline

setButtonUseUnderline :: (MonadIO m, IsButton o) => o -> Bool -> m () Source #

Set the value of the “use-underline” property. When overloading is enabled, this is equivalent to

set button [ #useUnderline := value ]

Signals

activate

type ButtonActivateCallback = IO () Source #

Emitted to animate press then release.

This is an action signal. Applications should never connect to this signal, but use the Button::clicked signal.

afterButtonActivate :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonActivateCallback) -> m SignalHandlerId Source #

Connect a signal handler for the activate signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after button #activate callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit ?self parameter. Note that this requires activating the ImplicitParams GHC extension.

onButtonActivate :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonActivateCallback) -> m SignalHandlerId Source #

Connect a signal handler for the activate signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on button #activate callback

clicked

type ButtonClickedCallback = IO () Source #

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

afterButtonClicked :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonClickedCallback) -> m SignalHandlerId Source #

Connect a signal handler for the clicked signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after button #clicked callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit ?self parameter. Note that this requires activating the ImplicitParams GHC extension.

onButtonClicked :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonClickedCallback) -> m SignalHandlerId Source #

Connect a signal handler for the clicked signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on button #clicked callback