Class Button
- All Implemented Interfaces:
Proxy
,Accessible
,Actionable
,Buildable
,ConstraintTarget
- Direct Known Subclasses:
LinkButton
,LockButton
,StyleSchemeChooserButton
,ToggleButton
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
.
Shortcuts and Gestures
The following signals have default keybindings:
Gtk.Button::activate
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 AccessibleRole.BUTTON
role.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Functional interface declaration of theActivateCallback
callback.static class
Button.Builder<B extends Button.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static class
static interface
Functional interface declaration of theClickedCallback
callback.Nested classes/interfaces inherited from class org.gnome.gtk.Widget
Widget.DestroyCallback, Widget.DirectionChangedCallback, Widget.HideCallback, Widget.KeynavFailedCallback, Widget.MapCallback, Widget.MnemonicActivateCallback, Widget.MoveFocusCallback, Widget.QueryTooltipCallback, Widget.RealizeCallback, Widget.ShowCallback, Widget.StateFlagsChangedCallback, Widget.UnmapCallback, Widget.UnrealizeCallback, Widget.WidgetClass, Widget.WidgetImpl
Nested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClass
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
Nested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.AccessibleImpl, Accessible.AccessibleInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Actionable
Actionable.ActionableImpl, Actionable.ActionableInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.BuildableIface, Buildable.BuildableImpl
Nested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTargetImpl, ConstraintTarget.ConstraintTargetInterface
-
Constructor Summary
ConstructorDescriptionButton()
Creates a newGtkButton
widget.Button
(MemorySegment address) Create a Button proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
activate()
Signal that causes the button to animate press then release.protected Button
asParent()
Returns this instance as if it were its parent type.static Button.Builder
<? extends Button.Builder> builder()
AButton.Builder
object constructs aButton
with the specified properties.protected void
clicked()
Signal emitted when the button has been activated (pressed and released).void
Emits the "activate" signal.void
Emits the "clicked" signal.static Button
fromIconName
(String iconName) Creates a new button containing an icon from the current icon theme.boolean
Retrieves whether the button can be smaller than the natural size of its contents.getChild()
Gets the child widget of this Button.boolean
Returns whether the button has a frame.Returns the icon name of the button.getLabel()
Fetches the text from the label of the button.static MemoryLayout
The memory layout of the native struct.static Type
getType()
Get the GType of the Button classboolean
gets whether underlines are interpreted as mnemonics.onActivate
(Button.ActivateCallback handler) Emitted to animate press then release.onClicked
(Button.ClickedCallback handler) Emitted when the button has been activated (pressed and released).void
setCanShrink
(boolean canShrink) Sets whether the button size can be smaller than the natural size of its contents.void
Sets the child widget of this Button.void
setHasFrame
(boolean hasFrame) Sets the style of the button.void
setIconName
(String iconName) Adds aGtkImage
with the given icon name as a child.void
Sets the text of the label of the button tolabel
.void
setUseUnderline
(boolean useUnderline) Sets whether to use underlines as mnemonics.static Button
Creates aGtkButton
widget with aGtkLabel
child.static Button
withMnemonic
(String label) Creates a newGtkButton
containing a label.Methods inherited from class org.gnome.gtk.Widget
actionSetEnabled, activateActionIfExists, activateDefault, activateWidget, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, cssChanged, directionChanged, disposeTemplate, dragCheckThreshold, emitDestroy, emitDirectionChanged, emitHide, emitKeynavFailed, emitMap, emitMnemonicActivate, emitMoveFocus, emitQueryTooltip, emitRealize, emitShow, emitStateFlagsChanged, emitUnmap, emitUnrealize, errorBell, focus, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBaseline, getCanFocus, getCanTarget, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getDefaultDirection, getDirection, getDisplay, getFirstChild, getFocusable, getFocusChild, getFocusOnClick, getFontMap, getFontOptions, getFrameClock, getHalign, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, moveFocus, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, pick, queryTooltip, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, root, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, sizeAllocate, snapshot, snapshotChild, stateFlagsChanged, systemSettingChanged, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unroot, unsetStateFlags, unsetStateFlags
Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updateProperty, updateRelation, updateState
Methods inherited from interface org.gnome.gtk.Actionable
getActionName, getActionTargetValue, setActionName, setActionTarget, setActionTargetValue, setDetailedActionName
Methods inherited from interface org.gnome.gtk.Buildable
getBuildableId
-
Constructor Details
-
Button
Create a Button proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
Button
public Button()Creates a newGtkButton
widget.To add a child widget to the button, use
setChild(org.gnome.gtk.Widget)
.
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
fromIconName
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.
- Parameters:
iconName
- an icon name- Returns:
- a new
GtkButton
displaying the themed icon
-
withLabel
-
withMnemonic
Creates a newGtkButton
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. PressingAlt
and that key activates the button.- Parameters:
label
- The text of the button, with an underscore in front of the mnemonic character- Returns:
- a new
GtkButton
-
getCanShrink
public boolean getCanShrink()Retrieves whether the button can be smaller than the natural size of its contents.- Returns:
- true if the button can shrink, and false otherwise
-
getChild
Gets the child widget of this Button.- Returns:
- the child widget of this Button
-
getHasFrame
public boolean getHasFrame()Returns whether the button has a frame.- Returns:
true
if the button has a frame
-
getIconName
Returns the icon name of the button.If the icon name has not been set with
setIconName(java.lang.String)
the return value will benull
. This will be the case if you create an empty button withButton()
to use as a container.- Returns:
- The icon name set via
setIconName(java.lang.String)
-
getLabel
Fetches the text from the label of the button.If the label text has not been set with
setLabel(java.lang.String)
the return value will benull
. This will be the case if you create an empty button withButton()
to use as a container.- Returns:
- The text of the label widget. This string is owned by the widget and must not be modified or freed.
-
getUseUnderline
public boolean getUseUnderline()gets whether underlines are interpreted as mnemonics.- Returns:
true
if an embedded underline in the button label indicates the mnemonic accelerator keys.
-
setCanShrink
public void setCanShrink(boolean canShrink) Sets whether the button size can be smaller than the natural size of its contents.For text buttons, setting
canShrink
to true will ellipsize the label.For icons and custom children, this function has no effect.
- Parameters:
canShrink
- whether the button can shrink
-
setChild
Sets the child widget of this Button.Note that by using this API, you take full responsibility for setting up the proper accessibility label and description information for this Button. Most likely, you'll either set the accessibility label or description for this Button explicitly, or you'll set a labelled-by or described-by relations from
child
to this Button.- Parameters:
child
- the child widget
-
setHasFrame
public void setHasFrame(boolean hasFrame) Sets the style of the button.Buttons can have a flat appearance or have a frame drawn around them.
- Parameters:
hasFrame
- whether the button should have a visible frame
-
setIconName
Adds aGtkImage
with the given icon name as a child.If this Button already contains a child widget, that child widget will be removed and replaced with the image.
- Parameters:
iconName
- An icon name
-
setLabel
Sets the text of the label of the button tolabel
.This will also clear any previously set labels.
- Parameters:
label
- a string
-
setUseUnderline
public void setUseUnderline(boolean useUnderline) 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.
- Parameters:
useUnderline
-true
if underlines in the text indicate mnemonics
-
activate
protected void activate()Signal that causes the button to animate press then release. Applications should never connect to this signal, but use theclicked
signal. -
clicked
protected void clicked()Signal emitted when the button has been activated (pressed and released). -
onActivate
Emitted to animate press then release.This is an action signal. Applications should never connect to this signal, but use the
Gtk.Button::clicked
signal.The default bindings for this signal are all forms of the
␣
andEnter
keys.- Parameters:
handler
- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitActivate
public void emitActivate()Emits the "activate" signal. SeeonActivate(org.gnome.gtk.Button.ActivateCallback)
. -
onClicked
Emitted when the button has been activated (pressed and released).- Parameters:
handler
- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitClicked
public void emitClicked()Emits the "clicked" signal. SeeonClicked(org.gnome.gtk.Button.ClickedCallback)
. -
builder
AButton.Builder
object constructs aButton
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withButton.Builder.build()
.
-