LinkButtonProtocol

public protocol LinkButtonProtocol : ButtonProtocol

A GtkLinkButton is a button with a hyperlink.

An example GtkLinkButton

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.

  • ptr

    Untyped pointer to the underlying GtkLinkButton instance.

    Declaration

    Swift

    var ptr: UnsafeMutableRawPointer! { get }
  • link_button_ptr Default implementation

    Typed 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)

LinkButton Class

  • 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 transformation

    transform_to

    ValueTransformer to use for backwards transformation

    Return 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:value:) Extension method

    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

LinkButton signals

  • Connect a Swift signal handler to the given, typed LinkButtonSignalName signal

    Declaration

    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 by userData

    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 a C signal handler to the given, typed LinkButtonSignalName signal

    Declaration

    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 by userData

    signalHandler

    The C function to be called on the given signal

    Return Value

    The signal handler ID (always greater than 0 for successful connections)

  • Emitted each time the GtkLinkButton is clicked.

    The default handler will call [funcGtk.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 returning true from your handler.

    Note

    This represents the underlying activate-link signal

    Declaration

    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 the activateLink signal is emitted

  • activateLinkSignal Extension method

    Typed activate-link signal for using the connect(signal:) methods

    Declaration

    Swift

    static var activateLinkSignal: LinkButtonSignalName { get }
  • onNotifyUri(flags:handler:) Extension method

    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 to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_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 underlying notify::uri signal

    Declaration

    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 method

    Typed notify::uri signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyUriSignal: LinkButtonSignalName { get }
  • 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 to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_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 underlying notify::visited signal

    Declaration

    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 method

    Typed notify::visited signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyVisitedSignal: LinkButtonSignalName { get }

LinkButton Class: LinkButtonProtocol extension (methods and fields)

  • getUri() Extension method

    Retrieves the URI of the GtkLinkButton.

    Declaration

    Swift

    @inlinable
    func getUri() -> String!
  • getVisited() Extension method

    Retrieves 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 [methodGtk.LinkButton.set_visited].

    Declaration

    Swift

    @inlinable
    func getVisited() -> Bool
  • set(uri:) Extension method

    Sets uri as the URI where the GtkLinkButton 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 [methodGtk.LinkButton.get_visited] for more details.

    Declaration

    Swift

    @inlinable
    func set(visited: Bool)
  • uri Extension method

    The URI bound to this button.

    Declaration

    Swift

    @inlinable
    var uri: String! { get nonmutating set }
  • visited Extension method

    The ‘visited’ state of this button.

    A visited link is drawn in a different color.

    Declaration

    Swift

    @inlinable
    var visited: Bool { get nonmutating set }