Class

GtkAccelMap

Description [src]

final class Gtk.AccelMap : GObject.Object {
  /* No available fields */
}

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 “/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: “/File/Dialogs/Tool Options…”.

All accelerators are stored inside one global GtkAccelMap that can be obtained using gtk_accel_map_get(). See [Monitoring changes][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.

Hierarchy

hierarchy this GtkAccelMap ancestor_0 GObject ancestor_0--this

Ancestors

Functions

gtk_accel_map_add_entry

Registers a new accelerator with the global accelerator map. This function should only be called once per accel_path with the canonical accel_key and accel_mods for this path. To change the accelerator during runtime programatically, use gtk_accel_map_change_entry().

gtk_accel_map_add_filter

Adds a filter to the global list of accel path filters.

gtk_accel_map_change_entry

Changes the accel_key and accel_mods currently associated with accel_path. Due to conflicts with other accelerators, a change may not always be possible, replace indicates whether other accelerators may be deleted to resolve such conflicts. A change will only occur if all conflicts could be resolved (which might not be the case if conflicting accelerators are locked). Successful changes are indicated by a TRUE return value.

gtk_accel_map_foreach

Loops over the entries in the accelerator map whose accel path doesn’t match any of the filters added with gtk_accel_map_add_filter(), and execute foreach_func on each. The signature of foreach_func is that of GtkAccelMapForeach, the changed parameter indicates whether this accelerator was changed during runtime (thus, would need saving during an accelerator map dump).

gtk_accel_map_foreach_unfiltered

Loops over all entries in the accelerator map, and execute foreach_func on each. The signature of foreach_func is that of GtkAccelMapForeach, the changed parameter indicates whether this accelerator was changed during runtime (thus, would need saving during an accelerator map dump).

gtk_accel_map_get

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.

Available since: 2.4

gtk_accel_map_load

Parses a file previously saved with gtk_accel_map_save() for accelerator specifications, and propagates them accordingly.

gtk_accel_map_load_fd

Filedescriptor variant of gtk_accel_map_load().

gtk_accel_map_load_scanner

GScanner variant of gtk_accel_map_load().

gtk_accel_map_lock_path

Locks the given accelerator path. If the accelerator map doesn’t yet contain an entry for accel_path, a new one is created.

Available since: 2.4

gtk_accel_map_lookup_entry

Looks up the accelerator entry for accel_path and fills in key.

gtk_accel_map_save

Saves current accelerator specifications (accelerator path, key and modifiers) to file_name. The file is written in a format suitable to be read back in by gtk_accel_map_load().

gtk_accel_map_save_fd

Filedescriptor variant of gtk_accel_map_save().

gtk_accel_map_unlock_path

Undoes the last call to gtk_accel_map_lock_path() on this accel_path. Refer to gtk_accel_map_lock_path() for information about accelerator path locking.

Available since: 2.4

Instance methods

Methods inherited from GObject (42)

Signals

Gtk.AccelMap::changed

Notifies of a change in the global accelerator map. The path is also used as the detail for the signal, so it is possible to connect to changed::accel_path.

Available since: 2.4

Signals inherited from GObject (1)

Class structure

struct GtkAccelMapClass {
  /* no available fields */
}