AccelLabelProtocol

public protocol AccelLabelProtocol : LabelProtocol

The GtkAccelLabel widget is a subclass of GtkLabel that also displays an accelerator key on the right of the label text, e.g. “Ctrl+S”. It is commonly used in menus to show the keyboard short-cuts for commands.

The accelerator key to display is typically not set explicitly (although it can be, with gtk_accel_label_set_accel()). Instead, the GtkAccelLabel displays the accelerators which have been added to a particular widget. This widget is set by calling gtk_accel_label_set_accel_widget().

For example, a GtkMenuItem widget may have an accelerator added to emit the “activate” signal when the “Ctrl+S” key combination is pressed. A GtkAccelLabel is created and added to the GtkMenuItem, and gtk_accel_label_set_accel_widget() is called with the GtkMenuItem as the second argument. The GtkAccelLabel will now display “Ctrl+S” after its label.

Note that creating a GtkMenuItem with gtk_menu_item_new_with_label() (or one of the similar functions for GtkCheckMenuItem and GtkRadioMenuItem) automatically adds a GtkAccelLabel to the GtkMenuItem and calls gtk_accel_label_set_accel_widget() to set it up for you.

A GtkAccelLabel will only display accelerators which have GTK_ACCEL_VISIBLE set (see GtkAccelFlags). A GtkAccelLabel can display multiple accelerators and even signal names, though it is almost always used to display just one accelerator key.

Creating a simple menu item with an accelerator key.

(C Language Example):

  GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  GtkWidget *menu = gtk_menu_new ();
  GtkWidget *save_item;
  GtkAccelGroup *accel_group;

  // Create a GtkAccelGroup and add it to the window.
  accel_group = gtk_accel_group_new ();
  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);

  // Create the menu item using the convenience function.
  save_item = gtk_menu_item_new_with_label ("Save");
  gtk_widget_show (save_item);
  gtk_container_add (GTK_CONTAINER (menu), save_item);

  // Now add the accelerator to the GtkMenuItem. Note that since we
  // called gtk_menu_item_new_with_label() to create the GtkMenuItem
  // the GtkAccelLabel is automatically set up to display the
  // GtkMenuItem accelerators. We just need to make sure we use
  // GTK_ACCEL_VISIBLE here.
  gtk_widget_add_accelerator (save_item, "activate", accel_group,
                              GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);

CSS nodes

(plain Language Example):

label
╰── accelerator

Like GtkLabel, GtkAccelLabel has a main CSS node with the name label. It adds a subnode with name accelerator.

The AccelLabelProtocol protocol exposes the methods and properties of an underlying GtkAccelLabel 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 AccelLabel. Alternatively, use AccelLabelRef as a lighweight, unowned reference if you already have an instance you just want to use.

  • ptr

    Untyped pointer to the underlying GtkAccelLabel instance.

    Declaration

    Swift

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

    Typed pointer to the underlying GtkAccelLabel instance.

    Default Implementation

    Return the stored, untyped pointer as a typed pointer to the GtkAccelLabel instance.

    Declaration

    Swift

    var accel_label_ptr: UnsafeMutablePointer<GtkAccelLabel>! { get }
  • Required Initialiser for types conforming to AccelLabelProtocol

    Declaration

    Swift

    init(raw: UnsafeMutableRawPointer)

AccelLabel Class

  • Bind a AccelLabelPropertyName source property to a given target object.

    Declaration

    Swift

    @discardableResult
    @inlinable
    func bind<Q, T>(property source_property: AccelLabelPropertyName, 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 AccelLabel property

    Declaration

    Swift

    @inlinable
    func get(property: AccelLabelPropertyName) -> 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 AccelLabel property. Note that this will only have an effect on properties that are writable and not construct-only!

    Declaration

    Swift

    @inlinable
    func set(property: AccelLabelPropertyName, value v: GLibObject.Value)

    Parameters

    property

    the property to get the value for

    Return Value

    the value of the named property

AccelLabel Class: AccelLabelProtocol extension (methods and fields)

  • Gets the keyval and modifier mask set with gtk_accel_label_set_accel().

    Declaration

    Swift

    @inlinable
    func getAccel(acceleratorKey: UnsafeMutablePointer<guint>!, acceleratorMods: UnsafeMutablePointer<GdkModifierType>!)
  • getAccelWidget() Extension method

    Fetches the widget monitored by this accelerator label. See gtk_accel_label_set_accel_widget().

    Declaration

    Swift

    @inlinable
    func getAccelWidget() -> WidgetRef!
  • getAccelWidth() Extension method

    Returns the width needed to display the accelerator key(s). This is used by menus to align all of the GtkMenuItem widgets, and shouldn’t be needed by applications.

    Declaration

    Swift

    @inlinable
    func getAccelWidth() -> Int
  • refetch() Extension method

    Recreates the string representing the accelerator keys. This should not be needed since the string is automatically updated whenever accelerators are added or removed from the associated widget.

    Declaration

    Swift

    @inlinable
    func refetch() -> Bool
  • Manually sets a keyval and modifier mask as the accelerator rendered by accel_label.

    If a keyval and modifier are explicitly set then these values are used regardless of any associated accel closure or widget.

    Providing an accelerator_key of 0 removes the manual setting.

    Declaration

    Swift

    @inlinable
    func setAccel(acceleratorKey: Int, acceleratorMods: Gdk.ModifierType)
  • set(accelClosure:) Extension method

    Sets the closure to be monitored by this accelerator label. The closure must be connected to an accelerator group; see gtk_accel_group_connect(). Passing nil for accel_closure will dissociate accel_label from its current closure, if any.

    Declaration

    Swift

    @inlinable
    func set(accelClosure: GLibObject.ClosureRef? = nil)
  • set(accelClosure:) Extension method

    Sets the closure to be monitored by this accelerator label. The closure must be connected to an accelerator group; see gtk_accel_group_connect(). Passing nil for accel_closure will dissociate accel_label from its current closure, if any.

    Declaration

    Swift

    @inlinable
    func set<ClosureT>(accelClosure: ClosureT?) where ClosureT : ClosureProtocol
  • set(accelWidget:) Extension method

    Sets the widget to be monitored by this accelerator label. Passing nil for accel_widget will dissociate accel_label from its current widget, if any.

    Declaration

    Swift

    @inlinable
    func set(accelWidget: WidgetRef? = nil)
  • set(accelWidget:) Extension method

    Sets the widget to be monitored by this accelerator label. Passing nil for accel_widget will dissociate accel_label from its current widget, if any.

    Declaration

    Swift

    @inlinable
    func set<WidgetT>(accelWidget: WidgetT?) where WidgetT : WidgetProtocol
  • accelWidget Extension method

    Fetches the widget monitored by this accelerator label. See gtk_accel_label_set_accel_widget().

    Declaration

    Swift

    @inlinable
    var accelWidget: WidgetRef! { get nonmutating set }
  • accelWidth Extension method

    Returns the width needed to display the accelerator key(s). This is used by menus to align all of the GtkMenuItem widgets, and shouldn’t be needed by applications.

    Declaration

    Swift

    @inlinable
    var accelWidth: Int { get }
  • label Extension method

    Undocumented

    Declaration

    Swift

    @inlinable
    var label: GtkLabel { get }