Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
- newtype Button = Button (ManagedPtr Button)
- class (GObject o, IsDescendantOf Button o) => IsButton o
- toButton :: (MonadIO m, IsButton o) => o -> m Button
- buttonGetChild :: (HasCallStack, MonadIO m, IsButton a) => a -> m (Maybe Widget)
- buttonGetHasFrame :: (HasCallStack, MonadIO m, IsButton a) => a -> m Bool
- buttonGetIconName :: (HasCallStack, MonadIO m, IsButton a) => a -> m (Maybe Text)
- buttonGetLabel :: (HasCallStack, MonadIO m, IsButton a) => a -> m (Maybe Text)
- buttonGetUseUnderline :: (HasCallStack, MonadIO m, IsButton a) => a -> m Bool
- buttonNew :: (HasCallStack, MonadIO m) => m Button
- buttonNewFromIconName :: (HasCallStack, MonadIO m) => Text -> m Button
- buttonNewWithLabel :: (HasCallStack, MonadIO m) => Text -> m Button
- buttonNewWithMnemonic :: (HasCallStack, MonadIO m) => Text -> m Button
- buttonSetChild :: (HasCallStack, MonadIO m, IsButton a, IsWidget b) => a -> Maybe b -> m ()
- buttonSetHasFrame :: (HasCallStack, MonadIO m, IsButton a) => a -> Bool -> m ()
- buttonSetIconName :: (HasCallStack, MonadIO m, IsButton a) => a -> Text -> m ()
- buttonSetLabel :: (HasCallStack, MonadIO m, IsButton a) => a -> Text -> m ()
- buttonSetUseUnderline :: (HasCallStack, MonadIO m, IsButton a) => a -> Bool -> m ()
- clearButtonChild :: (MonadIO m, IsButton o) => o -> m ()
- constructButtonChild :: (IsButton o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)
- getButtonChild :: (MonadIO m, IsButton o) => o -> m (Maybe Widget)
- setButtonChild :: (MonadIO m, IsButton o, IsWidget a) => o -> a -> m ()
- constructButtonHasFrame :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o)
- getButtonHasFrame :: (MonadIO m, IsButton o) => o -> m Bool
- setButtonHasFrame :: (MonadIO m, IsButton o) => o -> Bool -> m ()
- constructButtonIconName :: (IsButton o, MonadIO m) => Text -> m (GValueConstruct o)
- getButtonIconName :: (MonadIO m, IsButton o) => o -> m (Maybe Text)
- setButtonIconName :: (MonadIO m, IsButton o) => o -> Text -> m ()
- constructButtonLabel :: (IsButton o, MonadIO m) => Text -> m (GValueConstruct o)
- getButtonLabel :: (MonadIO m, IsButton o) => o -> m (Maybe Text)
- setButtonLabel :: (MonadIO m, IsButton o) => o -> Text -> m ()
- constructButtonUseUnderline :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o)
- getButtonUseUnderline :: (MonadIO m, IsButton o) => o -> m Bool
- setButtonUseUnderline :: (MonadIO m, IsButton o) => o -> Bool -> m ()
- type ButtonActivateCallback = IO ()
- afterButtonActivate :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonActivateCallback) -> m SignalHandlerId
- onButtonActivate :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonActivateCallback) -> m SignalHandlerId
- type ButtonClickedCallback = IO ()
- afterButtonClicked :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonClickedCallback) -> m SignalHandlerId
- onButtonClicked :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonClickedCallback) -> m SignalHandlerId
Exported types
Memory-managed wrapper type.
Instances
Eq Button Source # | |
GObject Button Source # | |
Defined in GI.Gtk.Objects.Button | |
ManagedPtrNewtype Button Source # | |
Defined in GI.Gtk.Objects.Button toManagedPtr :: Button -> ManagedPtr Button | |
TypedObject Button Source # | |
Defined in GI.Gtk.Objects.Button | |
HasParentTypes Button Source # | |
Defined in GI.Gtk.Objects.Button | |
IsGValue (Maybe Button) Source # | Convert |
Defined in GI.Gtk.Objects.Button gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe Button -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe Button) | |
type ParentTypes Button Source # | |
Defined in GI.Gtk.Objects.Button |
class (GObject o, IsDescendantOf Button o) => IsButton o Source #
Instances
(GObject o, IsDescendantOf Button o) => IsButton o Source # | |
Defined in GI.Gtk.Objects.Button |
Methods
Click to display all available methods, including inherited ones
Methods
actionSetEnabled, activate, activateAction, activateDefault, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, bindProperty, bindPropertyFull, childFocus, computeBounds, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, disposeTemplate, 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, updateNextAccessibleSibling, updateProperty, updateRelation, updateState, watchClosure.
Getters
getAccessibleParent, getAccessibleRole, getActionName, getActionTargetValue, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getAtContext, getBounds, getBuildableId, getCanFocus, getCanTarget, getChild, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getData, getDirection, getDisplay, getFirstAccessibleChild, getFirstChild, getFocusChild, getFocusOnClick, getFocusable, getFontMap, getFontOptions, getFrameClock, getHalign, getHasFrame, getHasTooltip, getHeight, getHexpand, getHexpandSet, getIconName, getLabel, getLastChild, getLayoutManager, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getName, getNative, getNextAccessibleSibling, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPlatformState, 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
setAccessibleParent, 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
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> m (Maybe Widget) | Returns: the child widget of |
Gets the child widget of button
.
getHasFrame
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> m Bool | Returns: |
Returns whether the button has a frame.
getIconName
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> m (Maybe Text) | Returns: The icon name set via |
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
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> 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 #
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> m Bool | Returns: |
gets whether underlines are interpreted as mnemonics.
new
:: (HasCallStack, MonadIO m) | |
=> m Button | Returns: The newly created |
Creates a new GtkButton
widget.
To add a child widget to the button, use buttonSetChild
.
newFromIconName
buttonNewFromIconName Source #
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m Button | Returns: a new |
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
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m Button | Returns: The newly created |
Creates a GtkButton
widget with a GtkLabel
child.
newWithMnemonic
buttonNewWithMnemonic Source #
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m Button | Returns: a new |
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 <kbd>Alt</kbd> and that key
activates the button.
setChild
:: (HasCallStack, MonadIO m, IsButton a, IsWidget b) | |
=> a |
|
-> Maybe b |
|
-> 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
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> Bool |
|
-> m () |
Sets the style of the button.
Buttons can have a flat appearance or have a frame drawn around them.
setIconName
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> Text |
|
-> 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
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> Text |
|
-> m () |
Sets the text of the label of the button to label
.
This will also clear any previously set labels.
setUseUnderline
buttonSetUseUnderline Source #
:: (HasCallStack, MonadIO m, IsButton a) | |
=> a |
|
-> Bool |
|
-> 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.
The default bindings for this signal are all forms of the <kbd>␣</kbd> and <kbd>Enter</kbd> keys.
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