LinkButtonProtocol
public protocol LinkButtonProtocol : ButtonProtocol
A GtkLinkButton
is a button with a hyperlink.
It is useful to show quick links to resources.
A link button is created by calling either [ctorGtk.LinkButton.new
] or
[ctorGtk.LinkButton.new_with_label
]. 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
[methodGtk.LinkButton.set_uri
].
By default, GtkLinkButton
calls [funcGtk.show_uri
] when the button
is clicked. This behaviour can be overridden by connecting to the
[signalGtk.LinkButton::activate-link
] signal and returning true
from
the signal handler.
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 GTK_ACCESSIBLE_ROLE_LINK
role.
The LinkButtonProtocol
protocol exposes the methods and properties of an underlying GtkLinkButton
instance.
The default implementation of these can be found in the protocol extension below.
For a concrete class that implements these methods and properties, see LinkButton
.
Alternatively, use LinkButtonRef
as a lighweight, unowned
reference if you already have an instance you just want to use.
-
Untyped pointer to the underlying
GtkLinkButton
instance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get }
-
link_button_ptr
Default implementationTyped pointer to the underlying
GtkLinkButton
instance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GtkLinkButton
instance.Declaration
Swift
var link_button_ptr: UnsafeMutablePointer<GtkLinkButton>! { get }
-
Required Initialiser for types conforming to
LinkButtonProtocol
Declaration
Swift
init(raw: UnsafeMutableRawPointer)
-
bind(property:
Extension methodto: _: flags: transformFrom: transformTo: ) Bind a
LinkButtonPropertyName
source property to a given target object.Declaration
Swift
@discardableResult @inlinable func bind<Q, T>(property source_property: LinkButtonPropertyName, to target: T, _ target_property: Q, flags f: BindingFlags = .default, transformFrom transform_from: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }, transformTo transform_to: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }) -> BindingRef! where Q : PropertyNameProtocol, T : ObjectProtocol
Parameters
source_property
the source property to bind
target
the target object to bind to
target_property
the target property to bind to
flags
the flags to pass to the
Binding
transform_from
ValueTransformer
to use for forward transformationtransform_to
ValueTransformer
to use for backwards transformationReturn Value
binding reference or
nil
in case of an error -
get(property:
Extension method) Get the value of a LinkButton property
Declaration
Swift
@inlinable func get(property: LinkButtonPropertyName) -> GLibObject.Value
Parameters
property
the property to get the value for
Return Value
the value of the named property
-
set(property:
Extension methodvalue: ) Set the value of a LinkButton property. Note that this will only have an effect on properties that are writable and not construct-only!
Declaration
Swift
@inlinable func set(property: LinkButtonPropertyName, value v: GLibObject.Value)
Parameters
property
the property to get the value for
Return Value
the value of the named property
-
connect(signal:
Extension methodflags: handler: ) Connect a Swift signal handler to the given, typed
LinkButtonSignalName
signalDeclaration
Swift
@discardableResult @inlinable func connect(signal s: LinkButtonSignalName, flags f: ConnectFlags = ConnectFlags(0), handler h: @escaping SignalHandler) -> Int
Parameters
signal
The signal to connect
flags
The connection flags to use
data
A pointer to user data to provide to the callback
destroyData
A
GClosureNotify
C function to destroy the data pointed to byuserData
handler
The Swift signal handler (function or callback) to invoke on the given signal
Return Value
The signal handler ID (always greater than 0 for successful connections)
-
connect(signal:
Extension methodflags: data: destroyData: signalHandler: ) Connect a C signal handler to the given, typed
LinkButtonSignalName
signalDeclaration
Swift
@discardableResult @inlinable func connect(signal s: LinkButtonSignalName, flags f: ConnectFlags = ConnectFlags(0), data userData: gpointer!, destroyData destructor: GClosureNotify? = nil, signalHandler h: @escaping GCallback) -> Int
Parameters
signal
The signal to connect
flags
The connection flags to use
data
A pointer to user data to provide to the callback
destroyData
A
GClosureNotify
C function to destroy the data pointed to byuserData
signalHandler
The C function to be called on the given signal
Return Value
The signal handler ID (always greater than 0 for successful connections)
-
onActivateLink(flags:
Extension methodhandler: ) Emitted each time the
GtkLinkButton
is clicked.The default handler will call [func
Gtk.show_uri
] with the URI stored inside the [propertyGtk.LinkButton:uri
] property.To override the default behavior, you can connect to the
activate-link
signal and stop the propagation of the signal by returningtrue
from your handler.Note
This represents the underlyingactivate-link
signalDeclaration
Swift
@discardableResult @inlinable func onActivateLink(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: LinkButtonRef) -> Bool) -> Int
Parameters
flags
Flags
unownedSelf
Reference to instance of self
handler
true
if the signal has been handled Run the given callback whenever theactivateLink
signal is emitted -
activateLinkSignal
Extension methodTyped
activate-link
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var activateLinkSignal: LinkButtonSignalName { get }
-
onNotifyUri(flags:
Extension methodhandler: ) The notify signal is emitted on an object when one of its properties has its value set through
g_object_set_property()
,g_object_set()
, et al.Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with
G_PARAM_EXPLICIT_NOTIFY
, then any call tog_object_set_property()
results innotify
being emitted, even if the new value is the same as the old. If they did passG_PARAM_EXPLICIT_NOTIFY
, then this signal is emitted only when they explicitly callg_object_notify()
org_object_notify_by_pspec()
, and common practice is to do that only when the value has actually changed.This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the
g_signal_connect()
call, like this:(C Language Example):
g_signal_connect (text_view->buffer, "notify::paste-target-list", G_CALLBACK (gtk_text_view_target_list_notify), text_view)
It is important to note that you must use canonical parameter names as detail strings for the notify signal.
Note
This represents the underlyingnotify::uri
signalDeclaration
Swift
@discardableResult @inlinable func onNotifyUri(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: LinkButtonRef, _ pspec: ParamSpecRef) -> Void) -> Int
Parameters
flags
Flags
unownedSelf
Reference to instance of self
pspec
the
GParamSpec
of the property which changed.handler
The signal handler to call Run the given callback whenever the
notifyUri
signal is emitted -
notifyUriSignal
Extension methodTyped
notify::uri
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var notifyUriSignal: LinkButtonSignalName { get }
-
onNotifyVisited(flags:
Extension methodhandler: ) The notify signal is emitted on an object when one of its properties has its value set through
g_object_set_property()
,g_object_set()
, et al.Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with
G_PARAM_EXPLICIT_NOTIFY
, then any call tog_object_set_property()
results innotify
being emitted, even if the new value is the same as the old. If they did passG_PARAM_EXPLICIT_NOTIFY
, then this signal is emitted only when they explicitly callg_object_notify()
org_object_notify_by_pspec()
, and common practice is to do that only when the value has actually changed.This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the
g_signal_connect()
call, like this:(C Language Example):
g_signal_connect (text_view->buffer, "notify::paste-target-list", G_CALLBACK (gtk_text_view_target_list_notify), text_view)
It is important to note that you must use canonical parameter names as detail strings for the notify signal.
Note
This represents the underlyingnotify::visited
signalDeclaration
Swift
@discardableResult @inlinable func onNotifyVisited(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: LinkButtonRef, _ pspec: ParamSpecRef) -> Void) -> Int
Parameters
flags
Flags
unownedSelf
Reference to instance of self
pspec
the
GParamSpec
of the property which changed.handler
The signal handler to call Run the given callback whenever the
notifyVisited
signal is emitted -
notifyVisitedSignal
Extension methodTyped
notify::visited
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var notifyVisitedSignal: LinkButtonSignalName { get }
-
getUri()
Extension methodRetrieves the URI of the
GtkLinkButton
.Declaration
Swift
@inlinable func getUri() -> String!
-
getVisited()
Extension methodRetrieves the “visited” state of the
GtkLinkButton
.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 [method
Gtk.LinkButton.set_visited
].Declaration
Swift
@inlinable func getVisited() -> Bool
-
set(uri:
Extension method) Sets
uri
as the URI where theGtkLinkButton
points.As a side-effect this unsets the “visited” state of the button.
Declaration
Swift
@inlinable func set(uri: UnsafePointer<CChar>!)
-
set(visited:
Extension method) Sets the “visited” state of the
GtkLinkButton
.See [method
Gtk.LinkButton.get_visited
] for more details.Declaration
Swift
@inlinable func set(visited: Bool)
-
uri
Extension methodThe URI bound to this button.
Declaration
Swift
@inlinable var uri: String! { get nonmutating set }
-
visited
Extension methodThe ‘visited’ state of this button.
A visited link is drawn in a different color.
Declaration
Swift
@inlinable var visited: Bool { get nonmutating set }