gtk3/docs/reference/gtk/html/gtk3-Accelerator-Maps.html
2022-11-23 15:09:27 +00:00

833 lines
42 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Accelerator Maps: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="gtkbase.html" title="Part III. GTK+ Core Reference">
<link rel="prev" href="gtk3-Keyboard-Accelerators.html" title="Accelerator Groups">
<link rel="next" href="gtk3-Clipboards.html" title="Clipboards">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#gtk3-Accelerator-Maps.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#gtk3-Accelerator-Maps.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
<a href="#gtk3-Accelerator-Maps.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gtkbase.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gtk3-Keyboard-Accelerators.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gtk3-Clipboards.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gtk3-Accelerator-Maps"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gtk3-Accelerator-Maps.top_of_page"></a>Accelerator Maps</span></h2>
<p>Accelerator Maps — Loadable keyboard accelerator specifications</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMapForeach" title="GtkAccelMapForeach ()">*GtkAccelMapForeach</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-add-entry" title="gtk_accel_map_add_entry ()">gtk_accel_map_add_entry</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-lookup-entry" title="gtk_accel_map_lookup_entry ()">gtk_accel_map_lookup_entry</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-change-entry" title="gtk_accel_map_change_entry ()">gtk_accel_map_change_entry</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load" title="gtk_accel_map_load ()">gtk_accel_map_load</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save" title="gtk_accel_map_save ()">gtk_accel_map_save</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-foreach" title="gtk_accel_map_foreach ()">gtk_accel_map_foreach</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load-fd" title="gtk_accel_map_load_fd ()">gtk_accel_map_load_fd</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save-fd" title="gtk_accel_map_save_fd ()">gtk_accel_map_save_fd</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load-scanner" title="gtk_accel_map_load_scanner ()">gtk_accel_map_load_scanner</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-add-filter" title="gtk_accel_map_add_filter ()">gtk_accel_map_add_filter</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-foreach-unfiltered" title="gtk_accel_map_foreach_unfiltered ()">gtk_accel_map_foreach_unfiltered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="returnvalue">GtkAccelMap</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-get" title="gtk_accel_map_get ()">gtk_accel_map_get</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-lock-path" title="gtk_accel_map_lock_path ()">gtk_accel_map_lock_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-unlock-path" title="gtk_accel_map_unlock_path ()">gtk_accel_map_unlock_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signal_proto_type">
<col width="300px" class="signal_proto_name">
<col width="200px" class="signal_proto_flags">
</colgroup>
<tbody><tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap-changed" title="The “changed” signal">changed</a></td>
<td class="signal_flags">Has Details</td>
</tr></tbody>
</table></div>
</div>
<a name="GtkAccelMap"></a><div class="refsect1">
<a name="gtk3-Accelerator-Maps.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap-struct" title="GtkAccelMap">GtkAccelMap</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> GObject
<span class="lineart">╰──</span> GtkAccelMap
</pre>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.description"></a><h2>Description</h2>
<p>Accelerator maps are used to define runtime configurable accelerators.
Functions for manipulating them are are usually used by higher level
convenience mechanisms like <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a> and are thus considered
“low-level”. Youll want to use them if youre manually creating menus that
should have user-configurable accelerators.</p>
<p>An accelerator is uniquely defined by:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>accelerator path</p></li>
<li class="listitem"><p>accelerator key</p></li>
<li class="listitem"><p>accelerator modifiers</p></li>
</ul></div>
<p>The accelerator path must consist of
&lt;WINDOWTYPE&gt;/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 items 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...”.</p>
<p>All accelerators are stored inside one global <a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="type">GtkAccelMap</span></a> that can
be obtained using <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-get" title="gtk_accel_map_get ()"><code class="function">gtk_accel_map_get()</code></a>. See
Monitoring changes for additional
details.</p>
<div class="refsect2">
<a name="id-1.4.5.9.7"></a><h3>Manipulating accelerators</h3>
<p>New accelerators can be added using <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-add-entry" title="gtk_accel_map_add_entry ()"><code class="function">gtk_accel_map_add_entry()</code></a>.
To search for specific accelerator, use <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-lookup-entry" title="gtk_accel_map_lookup_entry ()"><code class="function">gtk_accel_map_lookup_entry()</code></a>.
Modifications of existing accelerators should be done using
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-change-entry" title="gtk_accel_map_change_entry ()"><code class="function">gtk_accel_map_change_entry()</code></a>.</p>
<p>In order to avoid having some accelerators changed, they can be
locked using <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-lock-path" title="gtk_accel_map_lock_path ()"><code class="function">gtk_accel_map_lock_path()</code></a>. Unlocking is done using
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-unlock-path" title="gtk_accel_map_unlock_path ()"><code class="function">gtk_accel_map_unlock_path()</code></a>.</p>
</div>
<hr>
<div class="refsect2">
<a name="id-1.4.5.9.8"></a><h3>Saving and loading accelerator maps</h3>
<p>Accelerator maps can be saved to and loaded from some external
resource. For simple saving and loading from file,
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save" title="gtk_accel_map_save ()"><code class="function">gtk_accel_map_save()</code></a> and <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load" title="gtk_accel_map_load ()"><code class="function">gtk_accel_map_load()</code></a> are provided.
Saving and loading can also be done by providing file descriptor
to <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save-fd" title="gtk_accel_map_save_fd ()"><code class="function">gtk_accel_map_save_fd()</code></a> and <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load-fd" title="gtk_accel_map_load_fd ()"><code class="function">gtk_accel_map_load_fd()</code></a>.</p>
</div>
<hr>
<div class="refsect2">
<a name="id-1.4.5.9.9"></a><h3>Monitoring changes</h3>
<p><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="type">GtkAccelMap</span></a> object is only useful for monitoring changes of
accelerators. By connecting to <a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap-changed" title="The “changed” signal"><span class="type">“changed”</span></a> 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 <a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap-changed" title="The “changed” signal"><span class="type">“changed”</span></a> signal.</p>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GtkAccelMapForeach"></a><h3>GtkAccelMapForeach ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkAccelMapForeach<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">gpointer</span> data</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>,
<em class="parameter"><code><span class="type">guint</span> accel_key</code></em>,
<em class="parameter"><code><span class="type">GdkModifierType</span> accel_mods</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> changed</code></em>);</pre>
<div class="refsect3">
<a name="GtkAccelMapForeach.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>User data passed to <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-foreach" title="gtk_accel_map_foreach ()"><code class="function">gtk_accel_map_foreach()</code></a> or
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-foreach-unfiltered" title="gtk_accel_map_foreach_unfiltered ()"><code class="function">gtk_accel_map_foreach_unfiltered()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>Accel path of the current accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_key</p></td>
<td class="parameter_description"><p>Key of the current accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_mods</p></td>
<td class="parameter_description"><p>Modifiers of the current accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>changed</p></td>
<td class="parameter_description"><p>Changed flag of the accelerator (if <code class="literal">TRUE</code>, accelerator has changed
during runtime and would need to be saved during an accelerator dump)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-add-entry"></a><h3>gtk_accel_map_add_entry ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_add_entry (<em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>,
<em class="parameter"><code><span class="type">guint</span> accel_key</code></em>,
<em class="parameter"><code><span class="type">GdkModifierType</span> accel_mods</code></em>);</pre>
<p>Registers a new accelerator with the global accelerator map.
This function should only be called once per <em class="parameter"><code>accel_path</code></em>
with the canonical <em class="parameter"><code>accel_key</code></em>
and <em class="parameter"><code>accel_mods</code></em>
for this path.
To change the accelerator during runtime programatically, use
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-change-entry" title="gtk_accel_map_change_entry ()"><code class="function">gtk_accel_map_change_entry()</code></a>.</p>
<p>Set <em class="parameter"><code>accel_key</code></em>
and <em class="parameter"><code>accel_mods</code></em>
to 0 to request a removal of
the accelerator.</p>
<p>Note that <em class="parameter"><code>accel_path</code></em>
string will be stored in a <span class="type">GQuark</span>. Therefore, if you
pass a static string, you can save some memory by interning it first with
<code class="function">g_intern_static_string()</code>.</p>
<div class="refsect3">
<a name="gtk-accel-map-add-entry.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>valid accelerator path</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_key</p></td>
<td class="parameter_description"><p>the accelerator key</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_mods</p></td>
<td class="parameter_description"><p>the accelerator modifiers</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-lookup-entry"></a><h3>gtk_accel_map_lookup_entry ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_accel_map_lookup_entry (<em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>,
<em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelKey" title="struct GtkAccelKey"><span class="type">GtkAccelKey</span></a> *key</code></em>);</pre>
<p>Looks up the accelerator entry for <em class="parameter"><code>accel_path</code></em>
and fills in <em class="parameter"><code>key</code></em>
.</p>
<div class="refsect3">
<a name="gtk-accel-map-lookup-entry.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>a valid accelerator path</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the accelerator key to be filled in (optional). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-accel-map-lookup-entry.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>accel_path</code></em>
is known, <code class="literal">FALSE</code> otherwise</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-change-entry"></a><h3>gtk_accel_map_change_entry ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_accel_map_change_entry (<em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>,
<em class="parameter"><code><span class="type">guint</span> accel_key</code></em>,
<em class="parameter"><code><span class="type">GdkModifierType</span> accel_mods</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> replace</code></em>);</pre>
<p>Changes the <em class="parameter"><code>accel_key</code></em>
and <em class="parameter"><code>accel_mods</code></em>
currently associated with <em class="parameter"><code>accel_path</code></em>
.
Due to conflicts with other accelerators, a change may not always be possible,
<em class="parameter"><code>replace</code></em>
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 <code class="literal">TRUE</code> return value.</p>
<p>Note that <em class="parameter"><code>accel_path</code></em>
string will be stored in a <span class="type">GQuark</span>. Therefore, if you
pass a static string, you can save some memory by interning it first with
<code class="function">g_intern_static_string()</code>.</p>
<div class="refsect3">
<a name="gtk-accel-map-change-entry.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>a valid accelerator path</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_key</p></td>
<td class="parameter_description"><p>the new accelerator key</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_mods</p></td>
<td class="parameter_description"><p>the new accelerator modifiers</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>replace</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> if other accelerators may be deleted upon conflicts</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-accel-map-change-entry.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the accelerator could be changed, <code class="literal">FALSE</code> otherwise</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-load"></a><h3>gtk_accel_map_load ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_load (<em class="parameter"><code>const <span class="type">gchar</span> *file_name</code></em>);</pre>
<p>Parses a file previously saved with <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save" title="gtk_accel_map_save ()"><code class="function">gtk_accel_map_save()</code></a> for
accelerator specifications, and propagates them accordingly.</p>
<div class="refsect3">
<a name="gtk-accel-map-load.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>file_name</p></td>
<td class="parameter_description"><p>a file containing accelerator specifications,
in the GLib file name encoding. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> filename]</span></td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-save"></a><h3>gtk_accel_map_save ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_save (<em class="parameter"><code>const <span class="type">gchar</span> *file_name</code></em>);</pre>
<p>Saves current accelerator specifications (accelerator path, key
and modifiers) to <em class="parameter"><code>file_name</code></em>
.
The file is written in a format suitable to be read back in by
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load" title="gtk_accel_map_load ()"><code class="function">gtk_accel_map_load()</code></a>.</p>
<div class="refsect3">
<a name="gtk-accel-map-save.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>file_name</p></td>
<td class="parameter_description"><p>the name of the file to contain
accelerator specifications, in the GLib file name encoding. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> filename]</span></td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-foreach"></a><h3>gtk_accel_map_foreach ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_foreach (<em class="parameter"><code><span class="type">gpointer</span> data</code></em>,
<em class="parameter"><code><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMapForeach" title="GtkAccelMapForeach ()"><span class="type">GtkAccelMapForeach</span></a> foreach_func</code></em>);</pre>
<p>Loops over the entries in the accelerator map whose accel path
doesnt match any of the filters added with <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-add-filter" title="gtk_accel_map_add_filter ()"><code class="function">gtk_accel_map_add_filter()</code></a>,
and execute <em class="parameter"><code>foreach_func</code></em>
on each. The signature of <em class="parameter"><code>foreach_func</code></em>
is
that of <a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMapForeach" title="GtkAccelMapForeach ()"><span class="type">GtkAccelMapForeach</span></a>, the <em class="parameter"><code>changed</code></em>
parameter indicates whether
this accelerator was changed during runtime (thus, would need
saving during an accelerator map dump).</p>
<div class="refsect3">
<a name="gtk-accel-map-foreach.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>data to be passed into <em class="parameter"><code>foreach_func</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>foreach_func</p></td>
<td class="parameter_description"><p>function to be executed for each accel
map entry which is not filtered out. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-load-fd"></a><h3>gtk_accel_map_load_fd ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_load_fd (<em class="parameter"><code><span class="type">gint</span> fd</code></em>);</pre>
<p>Filedescriptor variant of <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load" title="gtk_accel_map_load ()"><code class="function">gtk_accel_map_load()</code></a>.</p>
<p>Note that the file descriptor will not be closed by this function.</p>
<div class="refsect3">
<a name="gtk-accel-map-load-fd.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>fd</p></td>
<td class="parameter_description"><p>a valid readable file descriptor</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-save-fd"></a><h3>gtk_accel_map_save_fd ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_save_fd (<em class="parameter"><code><span class="type">gint</span> fd</code></em>);</pre>
<p>Filedescriptor variant of <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save" title="gtk_accel_map_save ()"><code class="function">gtk_accel_map_save()</code></a>.</p>
<p>Note that the file descriptor will not be closed by this function.</p>
<div class="refsect3">
<a name="gtk-accel-map-save-fd.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>fd</p></td>
<td class="parameter_description"><p>a valid writable file descriptor</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-load-scanner"></a><h3>gtk_accel_map_load_scanner ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_load_scanner (<em class="parameter"><code><span class="type">GScanner</span> *scanner</code></em>);</pre>
<p><span class="type">GScanner</span> variant of <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-load" title="gtk_accel_map_load ()"><code class="function">gtk_accel_map_load()</code></a>.</p>
<div class="refsect3">
<a name="gtk-accel-map-load-scanner.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>scanner</p></td>
<td class="parameter_description"><p>a <span class="type">GScanner</span> which has already been provided with an input file</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-add-filter"></a><h3>gtk_accel_map_add_filter ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_add_filter (<em class="parameter"><code>const <span class="type">gchar</span> *filter_pattern</code></em>);</pre>
<p>Adds a filter to the global list of accel path filters.</p>
<p>Accel map entries whose accel path matches one of the filters
are skipped by <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-foreach" title="gtk_accel_map_foreach ()"><code class="function">gtk_accel_map_foreach()</code></a>.</p>
<p>This function is intended for GTK+ modules that create their own
menus, but dont want them to be saved into the applications accelerator
map dump.</p>
<div class="refsect3">
<a name="gtk-accel-map-add-filter.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>filter_pattern</p></td>
<td class="parameter_description"><p>a pattern (see <span class="type">GPatternSpec</span>)</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-foreach-unfiltered"></a><h3>gtk_accel_map_foreach_unfiltered ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_foreach_unfiltered (<em class="parameter"><code><span class="type">gpointer</span> data</code></em>,
<em class="parameter"><code><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMapForeach" title="GtkAccelMapForeach ()"><span class="type">GtkAccelMapForeach</span></a> foreach_func</code></em>);</pre>
<p>Loops over all entries in the accelerator map, and execute
<em class="parameter"><code>foreach_func</code></em>
on each. The signature of <em class="parameter"><code>foreach_func</code></em>
is that of
<a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMapForeach" title="GtkAccelMapForeach ()"><span class="type">GtkAccelMapForeach</span></a>, the <em class="parameter"><code>changed</code></em>
parameter indicates whether
this accelerator was changed during runtime (thus, would need
saving during an accelerator map dump).</p>
<div class="refsect3">
<a name="gtk-accel-map-foreach-unfiltered.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>data to be passed into <em class="parameter"><code>foreach_func</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>foreach_func</p></td>
<td class="parameter_description"><p>function to be executed for each accel
map entry. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-get"></a><h3>gtk_accel_map_get ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="returnvalue">GtkAccelMap</span></a> *
gtk_accel_map_get (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Gets the singleton global <a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="type">GtkAccelMap</span></a> object. This object
is useful only for notification of changes to the accelerator
map via the ::changed signal; it isnt a parameter to the
other accelerator map functions.</p>
<div class="refsect3">
<a name="gtk-accel-map-get.returns"></a><h4>Returns</h4>
<p>the global <a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="type">GtkAccelMap</span></a> object. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-lock-path"></a><h3>gtk_accel_map_lock_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_lock_path (<em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>);</pre>
<p>Locks the given accelerator path. If the accelerator map doesnt yet contain
an entry for <em class="parameter"><code>accel_path</code></em>
, a new one is created.</p>
<p>Locking an accelerator path prevents its accelerator from being changed
during runtime. A locked accelerator path can be unlocked by
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-unlock-path" title="gtk_accel_map_unlock_path ()"><code class="function">gtk_accel_map_unlock_path()</code></a>. Refer to <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-change-entry" title="gtk_accel_map_change_entry ()"><code class="function">gtk_accel_map_change_entry()</code></a>
for information about runtime accelerator changes.</p>
<p>If called more than once, <em class="parameter"><code>accel_path</code></em>
remains locked until
<a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-unlock-path" title="gtk_accel_map_unlock_path ()"><code class="function">gtk_accel_map_unlock_path()</code></a> has been called an equivalent number
of times.</p>
<p>Note that locking of individual accelerator paths is independent from
locking the <a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> containing them. For runtime accelerator
changes to be possible, both the accelerator path and its <a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a>
have to be unlocked.</p>
<div class="refsect3">
<a name="gtk-accel-map-lock-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>a valid accelerator path</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-accel-map-unlock-path"></a><h3>gtk_accel_map_unlock_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_accel_map_unlock_path (<em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>);</pre>
<p>Undoes the last call to <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-lock-path" title="gtk_accel_map_lock_path ()"><code class="function">gtk_accel_map_lock_path()</code></a> on this <em class="parameter"><code>accel_path</code></em>
.
Refer to <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-lock-path" title="gtk_accel_map_lock_path ()"><code class="function">gtk_accel_map_lock_path()</code></a> for information about accelerator path locking.</p>
<div class="refsect3">
<a name="gtk-accel-map-unlock-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>a valid accelerator path</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkAccelMap-struct"></a><h3>GtkAccelMap</h3>
<pre class="programlisting">typedef struct _GtkAccelMap GtkAccelMap;</pre>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GtkAccelMap-changed"></a><h3>The <code class="literal">“changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="gtk3-Accelerator-Maps.html#GtkAccelMap"><span class="type">GtkAccelMap</span></a> *object,
<span class="type">char</span> *accel_path,
<span class="type">guint</span> accel_key,
<span class="type">GdkModifierType</span> accel_mods,
<span class="type">gpointer</span> user_data)</pre>
<p>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::<code class="literal">accel_path</code>.</p>
<div class="refsect3">
<a name="GtkAccelMap-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>the global accel map object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>the path of the accelerator that changed</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_key</p></td>
<td class="parameter_description"><p>the key value for the new accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_mods</p></td>
<td class="parameter_description"><p>the modifier mask for the new accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Has Details</p>
<p class="since">Since: 2.4</p>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Accelerator-Maps.see-also"></a><h2>See Also</h2>
<p><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a>, <a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelKey" title="struct GtkAccelKey"><span class="type">GtkAccelKey</span></a>, <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a>, <a class="link" href="GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()"><code class="function">gtk_widget_set_accel_path()</code></a>, <a class="link" href="GtkMenuItem.html#gtk-menu-item-set-accel-path" title="gtk_menu_item_set_accel_path ()"><code class="function">gtk_menu_item_set_accel_path()</code></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>