Toc Gallery Index Tree Gtk.Accel_Map

Hierarchy

Description

An accel_map provides support for loading and saving accelerators (see also Gtk.Accel_Group).

Types

  • type Gtk_Accel_Map is access all Gtk_Accel_Map_Record'Class;
  • type Gtk_Accel_Map_Foreach is access procedure (Data : System.Address; Accel_Path : String; Accel_Key : Gdk.Types.Gdk_Key_Type; Accel_Mods : Gdk.Types.Gdk_Modifier_Type; Changed : Boolean);
    Changed is set to true if the keybinding was changed manually by the user, and thus would need saving during an accelerator map dump.
  • type Gtk_Accel_Map_Record is new Glib.Object.GObject_Record with null record;

Subprograms

  • function Get return Gtk_Accel_Map;
    Gets the singleton global Gtk_Accel_Map 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.
  • function Get_Type return Glib.GType;
    Return the internal type used for a Gtk_Accel_Map
  • procedure Save (File_Name : String);
    Save the key shortcuts to a file. These are the shortcuts that might have been changed dynamically by the user, if the RC file (see Gtk.RC) contained the line "gtk-can-change-accels=1"
  • procedure Load (File_Name : String);
    Load the key shortcuts from a file
  • procedure Add_Entry (Accel_Path : String; Accel_Key : Gdk.Types.Gdk_Key_Type; Accel_Mods : Gdk.Types.Gdk_Modifier_Type);
    Register a new accelerator for a given menu item, within the global accelerator map. This function should only be called once per Accel_Path. To change it programmatically during runtime, use Change_Entry. Accel_Path is of the form: /Category1/Category2/.../Action", where "app" is a unique, application-specific identifier (for examples of valid Accel_Path, check the file created by Save above).

    For instance, the path in the testgtk application for the menu File->Open would be /file/open

    Generally, the path need to be set explicitely for an item, through a call to Gtk.Menu_Item.Set_Accel_Path or Gtk.Widget.Set_Accel_Path. However, if the widget is created automatically through a Gtk.Item_Factory, this is done automatically.

    It is better to use this function instead of Add_Accelerator, since when the accelerators are changed interactively by the user, the new value will be shown properly in the menu, which wouldn't happen if they had been forced by Add_Accelerator.

  • procedure Lookup_Entry (Accel_Path : String; Key : out Gtk.Accel_Group.Gtk_Accel_Key; Found : out Boolean);
    Look up the accelerator for Accel_Path, and set Key appropriately. If no accelerator was set, Found is set to False, and the value of Key is meaningless.
  • function Change_Entry (Accel_Path : String; Accel_Key : Gdk.Types.Gdk_Key_Type; Accel_Mods : Gdk.Types.Gdk_Modifier_Type; Replace : Boolean) return Boolean;
    Change the accelerator currently associated wtih Accel_Path. A change may not always be possible due to conflicts with other accelerators. Replace should be set to True if other accelerators may be deleted to resolve such conflicts. Returns True if the entry could be changed
  • procedure Lock_Path (Accel_Path : String);
    procedure Unlock_Path (Accel_Path : String);
    Locks the given accelerator path. If the accelerator map doesn't yet contain an entry for Accel_Path, a new one is created.

    Locking an accelerator path prevents its accelerator from being changed during runtime. A locked accelerator path can be unlocked by Unlock_Path. Refer to Change_Entry for information about runtime accelerator changes.

    If called more than once, Accel_Path remains locked until Unlock_Path has been called an equivalent number of times.

    Note that locking of individual accelerator paths is independent from locking the Gtk_Accel_Group containing them. For runtime accelerator changes to be possible both the accelerator path and its accel group have to be unlocked.

  • Foreach

  • procedure Add_Filter (Filter_Pattern : String);
    Adds a filter to the global list of accel path filters. Accel map entries whose accel path matches one of the filters are skipped by Foreach. This function is intended for GTK+ modules that create their own menus, but don't want them to be saved into the applications accelerator map dump.
  • procedure Foreach (Data : System.Address; Func : Gtk_Accel_Map_Foreach);
    Calls Func for each of the currently defined key shortcuts. Data is passed as is to Func
  • procedure Foreach_Unfiltered (Data : System.Address; Func : Gtk_Accel_Map_Foreach);
    Loops over all entries in the accelerator map, and execute Func on each.

Signals

  • changed
    procedure Handler (Map : Gtk_Accel_Map; Accel_Path : String; Accel_Key : Gdk_Key_Type; Accel_Mods : Gdk_Modifier_Type);
    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.

Alphabetical Index