<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<!--ENTITY index-Objects-Grouped SYSTEM "objects_grouped.sgml"-->
<refentry id="gtk-Accelerator-Maps">
<refmeta>
<refentrytitle role="top_of_page" id="gtk-Accelerator-Maps.top_of_page">Accelerator Maps</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Accelerator Maps</refname>
<refpurpose>Loadable keyboard accelerator specifications</refpurpose>
</refnamediv>

<refsynopsisdiv id="gtk-Accelerator-Maps.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>
<anchor id="GtkAccelMap"/>
<synopsis>

#include &lt;gtk/gtk.h&gt;

                    <link linkend="GtkAccelMap-struct">GtkAccelMap</link>;
<link linkend="void">void</link>                (<link linkend="GtkAccelMapForeach">*GtkAccelMapForeach</link>)               (<link linkend="gpointer">gpointer</link> data,
                                                         const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="guint">guint</link> accel_key,
                                                         <link linkend="GdkModifierType">GdkModifierType</link> accel_mods,
                                                         <link linkend="gboolean">gboolean</link> changed);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-add-entry">gtk_accel_map_add_entry</link>             (const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="guint">guint</link> accel_key,
                                                         <link linkend="GdkModifierType">GdkModifierType</link> accel_mods);
<link linkend="gboolean">gboolean</link>            <link linkend="gtk-accel-map-lookup-entry">gtk_accel_map_lookup_entry</link>          (const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="GtkAccelKey">GtkAccelKey</link> *key);
<link linkend="gboolean">gboolean</link>            <link linkend="gtk-accel-map-change-entry">gtk_accel_map_change_entry</link>          (const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="guint">guint</link> accel_key,
                                                         <link linkend="GdkModifierType">GdkModifierType</link> accel_mods,
                                                         <link linkend="gboolean">gboolean</link> replace);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-load">gtk_accel_map_load</link>                  (const <link linkend="gchar">gchar</link> *file_name);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-save">gtk_accel_map_save</link>                  (const <link linkend="gchar">gchar</link> *file_name);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-foreach">gtk_accel_map_foreach</link>               (<link linkend="gpointer">gpointer</link> data,
                                                         <link linkend="GtkAccelMapForeach">GtkAccelMapForeach</link> foreach_func);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-load-fd">gtk_accel_map_load_fd</link>               (<link linkend="gint">gint</link> fd);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-save-fd">gtk_accel_map_save_fd</link>               (<link linkend="gint">gint</link> fd);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-load-scanner">gtk_accel_map_load_scanner</link>          (<link linkend="GScanner">GScanner</link> *scanner);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-add-filter">gtk_accel_map_add_filter</link>            (const <link linkend="gchar">gchar</link> *filter_pattern);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-foreach-unfiltered">gtk_accel_map_foreach_unfiltered</link>    (<link linkend="gpointer">gpointer</link> data,
                                                         <link linkend="GtkAccelMapForeach">GtkAccelMapForeach</link> foreach_func);
<link linkend="GtkAccelMap">GtkAccelMap</link> *       <link linkend="gtk-accel-map-get">gtk_accel_map_get</link>                   (void);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-lock-path">gtk_accel_map_lock_path</link>             (const <link linkend="gchar">gchar</link> *accel_path);
<link linkend="void">void</link>                <link linkend="gtk-accel-map-unlock-path">gtk_accel_map_unlock_path</link>           (const <link linkend="gchar">gchar</link> *accel_path);
</synopsis>
</refsynopsisdiv>

<refsect1 id="gtk-Accelerator-Maps.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>
  <link linkend="GObject">GObject</link>
   +----GtkAccelMap
</synopsis>
</refsect1>






<refsect1 id="gtk-Accelerator-Maps.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<synopsis>
  &quot;<link linkend="GtkAccelMap-changed">changed</link>&quot;                                        : Run Last / Has Details
</synopsis>
</refsect1>


<refsect1 id="gtk-Accelerator-Maps.description" role="desc">
<title role="desc.title">Description</title>
<para>
</para>
</refsect1>

<refsect1 id="gtk-Accelerator-Maps.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="GtkAccelMap-struct" role="struct">
<title>GtkAccelMap</title>
<indexterm zone="GtkAccelMap-struct"><primary sortas="AccelMap">GtkAccelMap</primary></indexterm><programlisting>typedef struct _GtkAccelMap GtkAccelMap;</programlisting>
<para>
</para></refsect2>
<refsect2 id="GtkAccelMapForeach" role="function">
<title>GtkAccelMapForeach ()</title>
<indexterm zone="GtkAccelMapForeach"><primary sortas="AccelMapForeach">GtkAccelMapForeach</primary></indexterm><programlisting><link linkend="void">void</link>                (*GtkAccelMapForeach)               (<link linkend="gpointer">gpointer</link> data,
                                                         const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="guint">guint</link> accel_key,
                                                         <link linkend="GdkModifierType">GdkModifierType</link> accel_mods,
                                                         <link linkend="gboolean">gboolean</link> changed);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_key</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_mods</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>changed</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-add-entry" role="function">
<title>gtk_accel_map_add_entry ()</title>
<indexterm zone="gtk-accel-map-add-entry"><primary sortas="accel_map_add_entry">gtk_accel_map_add_entry</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_add_entry             (const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="guint">guint</link> accel_key,
                                                         <link linkend="GdkModifierType">GdkModifierType</link> accel_mods);</programlisting>
<para>
Registers a new accelerator with the global accelerator map.
This function should only be called once per <parameter>accel_path</parameter>
with the canonical <parameter>accel_key</parameter> and <parameter>accel_mods</parameter> for this path.
To change the accelerator during runtime programatically, use
<link linkend="gtk-accel-map-change-entry"><function>gtk_accel_map_change_entry()</function></link>.
The accelerator path must consist of "&lt;WINDOWTYPE&gt;/Category1/Category2/.../Action",
where &lt;WINDOWTYPE&gt; 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:
"&lt;Gimp-Toolbox&gt;/File/Dialogs/Tool Options...".
</para>
<para>
Note that <parameter>accel_path</parameter> string will be stored in a <link linkend="GQuark"><type>GQuark</type></link>. Therefore, if you
pass a static string, you can save some memory by interning it first with 
<link linkend="g-intern-static-string"><function>g_intern_static_string()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara> valid accelerator path
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_key</parameter>&#160;:</term>
<listitem><simpara>  the accelerator key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_mods</parameter>&#160;:</term>
<listitem><simpara> the accelerator modifiers
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-lookup-entry" role="function">
<title>gtk_accel_map_lookup_entry ()</title>
<indexterm zone="gtk-accel-map-lookup-entry"><primary sortas="accel_map_lookup_entry">gtk_accel_map_lookup_entry</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            gtk_accel_map_lookup_entry          (const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="GtkAccelKey">GtkAccelKey</link> *key);</programlisting>
<para>
Looks up the accelerator entry for <parameter>accel_path</parameter> and fills in <parameter>key</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara>  a valid accelerator path
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara>         the accelerator key to be filled in (optional)
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>     <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>accel_path</parameter> is known, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-change-entry" role="function">
<title>gtk_accel_map_change_entry ()</title>
<indexterm zone="gtk-accel-map-change-entry"><primary sortas="accel_map_change_entry">gtk_accel_map_change_entry</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            gtk_accel_map_change_entry          (const <link linkend="gchar">gchar</link> *accel_path,
                                                         <link linkend="guint">guint</link> accel_key,
                                                         <link linkend="GdkModifierType">GdkModifierType</link> accel_mods,
                                                         <link linkend="gboolean">gboolean</link> replace);</programlisting>
<para>
Changes the <parameter>accel_key</parameter> and <parameter>accel_mods</parameter> currently associated with <parameter>accel_path</parameter>.
Due to conflicts with other accelerators, a change may not always be possible,
<parameter>replace</parameter> 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 <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> return value.
</para>
<para>
Note that <parameter>accel_path</parameter> string will be stored in a <link linkend="GQuark"><type>GQuark</type></link>. Therefore, if you
pass a static string, you can save some memory by interning it first with 
<link linkend="g-intern-static-string"><function>g_intern_static_string()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara>  a valid accelerator path
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_key</parameter>&#160;:</term>
<listitem><simpara>   the new accelerator key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_mods</parameter>&#160;:</term>
<listitem><simpara>  the new accelerator modifiers
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>replace</parameter>&#160;:</term>
<listitem><simpara>     <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if other accelerators may be deleted upon conflicts
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>     <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the accelerator could be changed, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-load" role="function">
<title>gtk_accel_map_load ()</title>
<indexterm zone="gtk-accel-map-load"><primary sortas="accel_map_load">gtk_accel_map_load</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_load                  (const <link linkend="gchar">gchar</link> *file_name);</programlisting>
<para>
Parses a file previously saved with <link linkend="gtk-accel-map-save"><function>gtk_accel_map_save()</function></link> for
accelerator specifications, and propagates them accordingly.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>file_name</parameter>&#160;:</term>
<listitem><simpara> a file containing accelerator specifications,
  in the GLib file name encoding
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-save" role="function">
<title>gtk_accel_map_save ()</title>
<indexterm zone="gtk-accel-map-save"><primary sortas="accel_map_save">gtk_accel_map_save</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_save                  (const <link linkend="gchar">gchar</link> *file_name);</programlisting>
<para>
Saves current accelerator specifications (accelerator path, key
and modifiers) to <parameter>file_name</parameter>.
The file is written in a format suitable to be read back in by
<link linkend="gtk-accel-map-load"><function>gtk_accel_map_load()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>file_name</parameter>&#160;:</term>
<listitem><simpara> the name of the file to contain accelerator specifications,
  in the GLib file name encoding
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-foreach" role="function">
<title>gtk_accel_map_foreach ()</title>
<indexterm zone="gtk-accel-map-foreach"><primary sortas="accel_map_foreach">gtk_accel_map_foreach</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_foreach               (<link linkend="gpointer">gpointer</link> data,
                                                         <link linkend="GtkAccelMapForeach">GtkAccelMapForeach</link> foreach_func);</programlisting>
<para>
Loops over the entries in the accelerator map whose accel path 
doesn't match any of the filters added with <link linkend="gtk-accel-map-add-filter"><function>gtk_accel_map_add_filter()</function></link>, 
and execute <parameter>foreach_func</parameter> on each. The signature of <parameter>foreach_func</parameter> is 
that of <link linkend="GtkAccelMapForeach"><type>GtkAccelMapForeach</type></link>, the <parameter>changed</parameter> parameter indicates whether
this accelerator was changed during runtime (thus, would need
saving during an accelerator map dump).</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara>         data to be passed into <parameter>foreach_func</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>foreach_func</parameter>&#160;:</term>
<listitem><simpara> function to be executed for each accel map entry which
               is not filtered out
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-load-fd" role="function">
<title>gtk_accel_map_load_fd ()</title>
<indexterm zone="gtk-accel-map-load-fd"><primary sortas="accel_map_load_fd">gtk_accel_map_load_fd</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_load_fd               (<link linkend="gint">gint</link> fd);</programlisting>
<para>
Filedescriptor variant of <link linkend="gtk-accel-map-load"><function>gtk_accel_map_load()</function></link>.
</para>
<para>
Note that the file descriptor will not be closed by this function.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>fd</parameter>&#160;:</term>
<listitem><simpara> a valid readable file descriptor
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-save-fd" role="function">
<title>gtk_accel_map_save_fd ()</title>
<indexterm zone="gtk-accel-map-save-fd"><primary sortas="accel_map_save_fd">gtk_accel_map_save_fd</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_save_fd               (<link linkend="gint">gint</link> fd);</programlisting>
<para>
Filedescriptor variant of <link linkend="gtk-accel-map-save"><function>gtk_accel_map_save()</function></link>.
</para>
<para>
Note that the file descriptor will not be closed by this function.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>fd</parameter>&#160;:</term>
<listitem><simpara> a valid writable file descriptor
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-load-scanner" role="function">
<title>gtk_accel_map_load_scanner ()</title>
<indexterm zone="gtk-accel-map-load-scanner"><primary sortas="accel_map_load_scanner">gtk_accel_map_load_scanner</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_load_scanner          (<link linkend="GScanner">GScanner</link> *scanner);</programlisting>
<para>
<link linkend="GScanner"><type>GScanner</type></link> variant of <link linkend="gtk-accel-map-load"><function>gtk_accel_map_load()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>scanner</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GScanner"><type>GScanner</type></link> which has already been provided with an input file
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-add-filter" role="function">
<title>gtk_accel_map_add_filter ()</title>
<indexterm zone="gtk-accel-map-add-filter"><primary sortas="accel_map_add_filter">gtk_accel_map_add_filter</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_add_filter            (const <link linkend="gchar">gchar</link> *filter_pattern);</programlisting>
<para>
Adds a filter to the global list of accel path filters.
</para>
<para>
Accel map entries whose accel path matches one of the filters
are skipped by <link linkend="gtk-accel-map-foreach"><function>gtk_accel_map_foreach()</function></link>.
</para>
<para>
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.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>filter_pattern</parameter>&#160;:</term>
<listitem><simpara> a pattern (see <link linkend="GPatternSpec"><type>GPatternSpec</type></link>)
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-foreach-unfiltered" role="function">
<title>gtk_accel_map_foreach_unfiltered ()</title>
<indexterm zone="gtk-accel-map-foreach-unfiltered"><primary sortas="accel_map_foreach_unfiltered">gtk_accel_map_foreach_unfiltered</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_foreach_unfiltered    (<link linkend="gpointer">gpointer</link> data,
                                                         <link linkend="GtkAccelMapForeach">GtkAccelMapForeach</link> foreach_func);</programlisting>
<para>
Loops over all entries in the accelerator map, and execute
<parameter>foreach_func</parameter> on each. The signature of <parameter>foreach_func</parameter> is that of
<link linkend="GtkAccelMapForeach"><type>GtkAccelMapForeach</type></link>, the <parameter>changed</parameter> parameter indicates whether
this accelerator was changed during runtime (thus, would need
saving during an accelerator map dump).</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara>         data to be passed into <parameter>foreach_func</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>foreach_func</parameter>&#160;:</term>
<listitem><simpara> function to be executed for each accel map entry
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-accel-map-get" role="function" condition="since:2.4">
<title>gtk_accel_map_get ()</title>
<indexterm zone="gtk-accel-map-get" role="2.4"><primary sortas="accel_map_get">gtk_accel_map_get</primary></indexterm><programlisting><link linkend="GtkAccelMap">GtkAccelMap</link> *       gtk_accel_map_get                   (void);</programlisting>
<para>
Gets the singleton global <link linkend="GtkAccelMap"><type>GtkAccelMap</type></link> 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.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the global <link linkend="GtkAccelMap"><type>GtkAccelMap</type></link> object

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-accel-map-lock-path" role="function" condition="since:2.4">
<title>gtk_accel_map_lock_path ()</title>
<indexterm zone="gtk-accel-map-lock-path" role="2.4"><primary sortas="accel_map_lock_path">gtk_accel_map_lock_path</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_lock_path             (const <link linkend="gchar">gchar</link> *accel_path);</programlisting>
<para>
Locks the given accelerator path. If the accelerator map doesn't yet contain
an entry for <parameter>accel_path</parameter>, a new one is created.
</para>
<para>
Locking an accelerator path prevents its accelerator from being changed 
during runtime. A locked accelerator path can be unlocked by 
<link linkend="gtk-accel-map-unlock-path"><function>gtk_accel_map_unlock_path()</function></link>. Refer to <link linkend="gtk-accel-map-change-entry"><function>gtk_accel_map_change_entry()</function></link> 
for information about runtime accelerator changes.
</para>
<para>
If called more than once, <parameter>accel_path</parameter> remains locked until
<link linkend="gtk-accel-map-unlock-path"><function>gtk_accel_map_unlock_path()</function></link> has been called an equivalent number
of times.
</para>
<para>
Note that locking of individual accelerator paths is independent from 
locking the <link linkend="GtkAccelGroup"><type>GtkAccelGroup</type></link> containing them. For runtime accelerator
changes to be possible both the accelerator path and its <link linkend="GtkAccelGroup"><type>GtkAccelGroup</type></link>
have to be unlocked.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara> a valid accelerator path
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-accel-map-unlock-path" role="function" condition="since:2.4">
<title>gtk_accel_map_unlock_path ()</title>
<indexterm zone="gtk-accel-map-unlock-path" role="2.4"><primary sortas="accel_map_unlock_path">gtk_accel_map_unlock_path</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_accel_map_unlock_path           (const <link linkend="gchar">gchar</link> *accel_path);</programlisting>
<para>
Undoes the last call to <link linkend="gtk-accel-map-lock-path"><function>gtk_accel_map_lock_path()</function></link> on this <parameter>accel_path</parameter>.
Refer to <link linkend="gtk-accel-map-lock-path"><function>gtk_accel_map_lock_path()</function></link> for information about accelerator path locking.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara> a valid accelerator path
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>

</refsect1>

<refsect1 id="gtk-Accelerator-Maps.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="GtkAccelMap-changed" role="signal"><title>The <literal>&quot;changed&quot;</literal> signal</title>
<indexterm zone="GtkAccelMap-changed" role="2.4"><primary sortas="AccelMap::changed">GtkAccelMap::changed</primary></indexterm><programlisting><link linkend="void">void</link>                user_function                      (<link linkend="GtkAccelMap">GtkAccelMap</link>    *object,
                                                        <link linkend="gchar">gchar</link>          *accel_path,
                                                        <link linkend="guint">guint</link>           accel_key,
                                                        <link linkend="GdkModifierType">GdkModifierType</link> accel_mods,
                                                        <link linkend="gpointer">gpointer</link>        user_data)       : Run Last / Has Details</programlisting>
<para>
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::<replaceable>accel_path</replaceable>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&#160;:</term>
<listitem><simpara> the global accel map object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_path</parameter>&#160;:</term>
<listitem><simpara> the path of the accelerator that changed
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_key</parameter>&#160;:</term>
<listitem><simpara> the key value for the new accelerator
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accel_mods</parameter>&#160;:</term>
<listitem><simpara> the modifier mask for the new accelerator
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&#160;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist><para>Since 2.4</para></refsect2>
</refsect1>



</refentry>
