Class LinkButton
- All Implemented Interfaces:
Proxy
,Accessible
,Actionable
,Buildable
,ConstraintTarget
GtkLinkButton
is a button with a hyperlink.
It is useful to show quick links to resources.
A link button is created by calling either LinkButton(java.lang.String)
or
withLabel(java.lang.String, java.lang.String)
. If using the former, the URI you
pass to the constructor is used as a label for the widget.
The URI bound to a GtkLinkButton
can be set specifically using
setUri(java.lang.String)
.
By default, GtkLinkButton
calls FileLauncher.launch(org.gnome.gtk.Window, org.gnome.gio.Cancellable, org.gnome.gio.AsyncReadyCallback)
when the button
is clicked. This behaviour can be overridden by connecting to the
Gtk.LinkButton::activate-link
signal and returning true
from
the signal handler.
Shortcuts and Gestures
GtkLinkButton
supports the following keyboard shortcuts:
Shift
+F10
orMenu
opens the context menu.
Actions
GtkLinkButton
defines a set of built-in actions:
clipboard.copy
copies the url to the clipboard.menu.popup
opens the context menu.
CSS nodes
GtkLinkButton
has a single CSS node with name button. To differentiate
it from a plain GtkButton
, it gets the .link style class.
Accessibility
GtkLinkButton
uses the AccessibleRole.LINK
role.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Functional interface declaration of theActivateLinkCallback
callback.static class
LinkButton.Builder<B extends LinkButton.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class org.gnome.gtk.Button
Button.ActivateCallback, Button.ButtonClass, Button.ClickedCallback
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
ConstructorDescriptionLinkButton
(MemorySegment address) Create a LinkButton proxy instance for the provided memory address.LinkButton
(String uri) Creates a newGtkLinkButton
with the URI as its text. -
Method Summary
Modifier and TypeMethodDescriptionprotected LinkButton
asParent()
Returns this instance as if it were its parent type.static LinkButton.Builder
<? extends LinkButton.Builder> builder()
ALinkButton.Builder
object constructs aLinkButton
with the specified properties.boolean
Emits the "activate-link" signal.static Type
getType()
Get the GType of the LinkButton classgetUri()
Retrieves the URI of theGtkLinkButton
.boolean
Retrieves the “visited” state of theGtkLinkButton
.Emitted each time theGtkLinkButton
is clicked.void
Setsuri
as the URI where theGtkLinkButton
points.void
setVisited
(boolean visited) Sets the “visited” state of theGtkLinkButton
.static LinkButton
Creates a newGtkLinkButton
containing a label.Methods inherited from class org.gnome.gtk.Button
activate, clicked, emitActivate, emitClicked, fromIconName, getCanShrink, getChild, getHasFrame, getIconName, getLabel, getMemoryLayout, getUseUnderline, onActivate, onClicked, setCanShrink, setChild, setHasFrame, setIconName, setLabel, setUseUnderline, withLabel, withMnemonic
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
-
LinkButton
Create a LinkButton proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
LinkButton
Creates a newGtkLinkButton
with the URI as its text.- Parameters:
uri
- a valid URI
-
-
Method Details
-
getType
-
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. -
withLabel
Creates a newGtkLinkButton
containing a label.- Parameters:
uri
- a valid URIlabel
- the text of the button- Returns:
- a new link button widget.
-
getUri
Retrieves the URI of theGtkLinkButton
.- Returns:
- a valid URI. The returned string is owned by the link button and should not be modified or freed.
-
getVisited
public boolean getVisited()Retrieves the “visited” state of theGtkLinkButton
.The button becomes visited when it is clicked. If the URI is changed on the button, the “visited” state is unset again.
The state may also be changed using
setVisited(boolean)
.- Returns:
true
if the link has been visited,false
otherwise
-
setUri
Setsuri
as the URI where theGtkLinkButton
points.As a side-effect this unsets the “visited” state of the button.
- Parameters:
uri
- a valid URI
-
setVisited
public void setVisited(boolean visited) Sets the “visited” state of theGtkLinkButton
.See
getVisited()
for more details.- Parameters:
visited
- the new “visited” state
-
onActivateLink
public SignalConnection<LinkButton.ActivateLinkCallback> onActivateLink(LinkButton.ActivateLinkCallback handler) Emitted each time theGtkLinkButton
is clicked.The default handler will call
FileLauncher.launch(org.gnome.gtk.Window, org.gnome.gio.Cancellable, org.gnome.gio.AsyncReadyCallback)
with the URI stored inside theGtk.LinkButton:uri
property.To override the default behavior, you can connect to the ::activate-link signal and stop the propagation of the signal by returning
true
from your handler.- Parameters:
handler
- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitActivateLink
public boolean emitActivateLink()Emits the "activate-link" signal. SeeonActivateLink(org.gnome.gtk.LinkButton.ActivateLinkCallback)
. -
builder
ALinkButton.Builder
object constructs aLinkButton
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withLinkButton.Builder.build()
.
-