AccelLabelRef
public struct AccelLabelRef : AccelLabelProtocol, GWeakCapturing
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 AccelLabelRef
type acts as a lightweight Swift reference to an underlying GtkAccelLabel
instance.
It exposes methods that can operate on this data type through AccelLabelProtocol
conformance.
Use AccelLabelRef
only as an unowned
reference to an existing GtkAccelLabel
instance.
-
Untyped pointer to the underlying `GtkAccelLabel` instance.
For type-safe access, use the generated, typed pointer
accel_label_ptr
property instead.Declaration
Swift
public let ptr: UnsafeMutableRawPointer!
-
Designated initialiser from the underlying
C
data typeDeclaration
Swift
@inlinable init(_ p: UnsafeMutablePointer<GtkAccelLabel>)
-
Designated initialiser from a constant pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init(_ p: UnsafePointer<GtkAccelLabel>)
-
Conditional initialiser from an optional pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init!(_ maybePointer: UnsafeMutablePointer<GtkAccelLabel>?)
-
Conditional initialiser from an optional, non-mutable pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init!(_ maybePointer: UnsafePointer<GtkAccelLabel>?)
-
Conditional initialiser from an optional
gpointer
Declaration
Swift
@inlinable init!(gpointer g: gpointer?)
-
Conditional initialiser from an optional, non-mutable
gconstpointer
Declaration
Swift
@inlinable init!(gconstpointer g: gconstpointer?)
-
Reference intialiser for a related type that implements
AccelLabelProtocol
Declaration
Swift
@inlinable init<T>(_ other: T) where T : AccelLabelProtocol
-
This factory is syntactic sugar for setting weak pointers wrapped in
GWeak<T>
Declaration
Swift
@inlinable static func unowned<T>(_ other: T) -> AccelLabelRef where T : AccelLabelProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
AccelLabelProtocol
.Declaration
Swift
@inlinable init<T>(cPointer: UnsafeMutablePointer<T>)
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
AccelLabelProtocol
.Declaration
Swift
@inlinable init<T>(constPointer: UnsafePointer<T>)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
AccelLabelProtocol
.Declaration
Swift
@inlinable init(mutating raw: UnsafeRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
AccelLabelProtocol
.Declaration
Swift
@inlinable init(raw: UnsafeMutableRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
AccelLabelProtocol
.Declaration
Swift
@inlinable init(opaquePointer: OpaquePointer)
-
Creates a new
GtkAccelLabel
.Declaration
Swift
@inlinable init(string: UnsafePointer<gchar>!)