AccelMapRef
public struct AccelMapRef : AccelMapProtocol, GWeakCapturing
Accelerator maps are used to define runtime configurable accelerators.
Functions for manipulating them are are usually used by higher level
convenience mechanisms like GtkUIManager
and are thus considered
“low-level”. You’ll want to use them if you’re manually creating menus that
should have user-configurable accelerators.
An accelerator is uniquely defined by:
- accelerator path
- accelerator key
- accelerator modifiers
The accelerator path must consist of “<WINDOWTYPE>/Category1/Category2/…/Action”, where WINDOWTYPE should be a unique application-specific identifier that corresponds to the kind of window the accelerator is being used in, e.g. “Gimp-Image”, “Abiword-Document” or “Gnumeric-Settings”. The “Category1/…/Action” portion is most appropriately chosen by the action the accelerator triggers, i.e. for accelerators on menu items, choose the item’s menu path, e.g. “File/Save As”, “Image/View/Zoom” or “Edit/Select All”. So a full valid accelerator path may look like: “<Gimp-Toolbox>/File/Dialogs/Tool Options…”.
All accelerators are stored inside one global GtkAccelMap
that can
be obtained using gtk_accel_map_get()
. See
Monitoring changes for additional
details.
Manipulating accelerators
New accelerators can be added using gtk_accel_map_add_entry()
.
To search for specific accelerator, use gtk_accel_map_lookup_entry()
.
Modifications of existing accelerators should be done using
gtk_accel_map_change_entry()
.
In order to avoid having some accelerators changed, they can be
locked using gtk_accel_map_lock_path()
. Unlocking is done using
gtk_accel_map_unlock_path()
.
Saving and loading accelerator maps
Accelerator maps can be saved to and loaded from some external
resource. For simple saving and loading from file,
gtk_accel_map_save()
and gtk_accel_map_load()
are provided.
Saving and loading can also be done by providing file descriptor
to gtk_accel_map_save_fd()
and gtk_accel_map_load_fd()
.
Monitoring changes
GtkAccelMap
object is only useful for monitoring changes of
accelerators. By connecting to GtkAccelMap::changed
signal, one
can monitor changes of all accelerators. It is also possible to
monitor only single accelerator path by using it as a detail of
the GtkAccelMap::changed
signal.
The AccelMapRef
type acts as a lightweight Swift reference to an underlying GtkAccelMap
instance.
It exposes methods that can operate on this data type through AccelMapProtocol
conformance.
Use AccelMapRef
only as an unowned
reference to an existing GtkAccelMap
instance.
-
Untyped pointer to the underlying `GtkAccelMap` instance.
For type-safe access, use the generated, typed pointer
accel_map_ptr
property instead.Declaration
Swift
public let ptr: UnsafeMutableRawPointer!
-
Designated initialiser from the underlying
C
data typeDeclaration
Swift
@inlinable init(_ p: UnsafeMutablePointer<GtkAccelMap>)
-
Designated initialiser from a constant pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init(_ p: UnsafePointer<GtkAccelMap>)
-
Conditional initialiser from an optional pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init!(_ maybePointer: UnsafeMutablePointer<GtkAccelMap>?)
-
Conditional initialiser from an optional, non-mutable pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init!(_ maybePointer: UnsafePointer<GtkAccelMap>?)
-
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
AccelMapProtocol
Declaration
Swift
@inlinable init<T>(_ other: T) where T : AccelMapProtocol
-
This factory is syntactic sugar for setting weak pointers wrapped in
GWeak<T>
Declaration
Swift
@inlinable static func unowned<T>(_ other: T) -> AccelMapRef where T : AccelMapProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
AccelMapProtocol
.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
AccelMapProtocol
.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
AccelMapProtocol
.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
AccelMapProtocol
.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
AccelMapProtocol
.Declaration
Swift
@inlinable init(opaquePointer: OpaquePointer)
-
Gets the singleton global `GtkAccelMap` object. This object
is useful only for notification of changes to the accelerator map via the
changed
signal; it isn’t a parameter to the other accelerator map functions.Declaration
Swift
@inlinable static func accelMapGet() -> AccelMapRef!