📄 gtk-bindings.html
字号:
of the key presses, e.g. by an entry's parent widget, is now possible.</p><p>The "unbind" functionality has been introduced in GTK+ 2.12.</p></div></div><div class="refsect1" lang="en"><a name="id3259724"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3259734"></a><h3><a name="GtkBindingSet"></a>GtkBindingSet</h3><a class="indexterm" name="id3259747"></a><pre class="programlisting">typedef struct { gchar *set_name; gint priority; GSList *widget_path_pspecs; GSList *widget_class_pspecs; GSList *class_branch_pspecs; GtkBindingEntry *entries; GtkBindingEntry *current; guint parsed : 1; /* From RC content */} GtkBindingSet;</pre><p>A binding set maintains a list of activatable key bindings.A single binding set can match multiple types of widgets.Similar to styles, widgets can be mapped by widget name paths, widget class paths or widget class types. When a binding within a set is matched upon activation, an action signal is emitted on the target widget to carry out the actual activation.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *<em class="structfield"><code>set_name</code></em>;</span></p></td><td> unique binding set name</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> <em class="structfield"><code>priority</code></em>;</span></p></td><td> unused</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html#GSList">GSList</a> *<em class="structfield"><code>widget_path_pspecs</code></em>;</span></p></td><td> widgets matched by path that this binding set applies to</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html#GSList">GSList</a> *<em class="structfield"><code>widget_class_pspecs</code></em>;</span></p></td><td> widgets matched by class path that this binding set applies to</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html#GSList">GSList</a> *<em class="structfield"><code>class_branch_pspecs</code></em>;</span></p></td><td> widgets matched by class that this binding set applies to</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingEntry">GtkBindingEntry</a> *<em class="structfield"><code>entries</code></em>;</span></p></td><td> the key binding entries in this binding set</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingEntry">GtkBindingEntry</a> *<em class="structfield"><code>current</code></em>;</span></p></td><td> implementation detail</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <em class="structfield"><code>parsed</code></em> : 1;</span></p></td><td> whether this binding set stems from an RC file and is reset upon theme changes</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3259946"></a><h3><a name="GtkBindingEntry"></a>GtkBindingEntry</h3><a class="indexterm" name="id3259959"></a><pre class="programlisting">typedef struct { /* key portion */ guint keyval; GdkModifierType modifiers; GtkBindingSet *binding_set; guint destroyed : 1; guint in_emission : 1; guint marks_unbound : 1; GtkBindingEntry *set_next; GtkBindingEntry *hash_next; GtkBindingSignal *signals;} GtkBindingEntry;</pre><p>Each key binding element of a binding sets binding list is represented by a <a class="link" href="gtk-Bindings.html#GtkBindingEntry"><span class="type">GtkBindingEntry</span></a>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <em class="structfield"><code>keyval</code></em>;</span></p></td><td> key value to match</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/gdk/gdk-Windows.html#GdkModifierType">GdkModifierType</a> <em class="structfield"><code>modifiers</code></em>;</span></p></td><td> key modifier to match</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingSet">GtkBindingSet</a> *<em class="structfield"><code>binding_set</code></em>;</span></p></td><td> binding set this entry belongs to</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <em class="structfield"><code>destroyed</code></em> : 1;</span></p></td><td> implementation detail</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <em class="structfield"><code>in_emission</code></em> : 1;</span></p></td><td> implementation detail</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <em class="structfield"><code>marks_unbound</code></em> : 1;</span></p></td><td>implementation detail</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingEntry">GtkBindingEntry</a> *<em class="structfield"><code>set_next</code></em>;</span></p></td><td> linked list of entries maintained by binding set</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingEntry">GtkBindingEntry</a> *<em class="structfield"><code>hash_next</code></em>;</span></p></td><td> implementation detail</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingSignal">GtkBindingSignal</a> *<em class="structfield"><code>signals</code></em>;</span></p></td><td> action signals of this entry</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3260181"></a><h3><a name="GtkBindingSignal"></a>GtkBindingSignal</h3><a class="indexterm" name="id3260194"></a><pre class="programlisting">typedef struct { GtkBindingSignal *next; gchar *signal_name; guint n_args; GtkBindingArg *args;} GtkBindingSignal;</pre><p>A <a class="link" href="gtk-Bindings.html#GtkBindingSignal"><span class="type">GtkBindingSignal</span></a> stores the necessary information to activate a widgetin response to a key press via a signal emission.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingSignal">GtkBindingSignal</a> *<em class="structfield"><code>next</code></em>;</span></p></td><td> implementation detail</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *<em class="structfield"><code>signal_name</code></em>;</span></p></td><td> the action signal to be emitted</td></tr><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <em class="structfield"><code>n_args</code></em>;</span></p></td><td> number of arguments specified for the signal</td></tr><tr><td><p><span class="term"><a class="link" href="gtk-Bindings.html#GtkBindingArg">GtkBindingArg</a> *<em class="structfield"><code>args</code></em>;</span></p></td><td> the arguments specified for the signal</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3260309"></a><h3><a name="GtkBindingArg"></a>GtkBindingArg</h3><a class="indexterm" name="id3260322"></a><pre class="programlisting">typedef struct { GType arg_type; union { glong long_data; gdouble double_data; gchar *string_data; } d;} GtkBindingArg;</pre><p>A <a class="link" href="gtk-Bindings.html#GtkBindingArg"><span class="type">GtkBindingArg</span></a> holds the data associated with an argument for akey binding signal emission as stored in <a class="link" href="gtk-Bindings.html#GtkBindingSignal"><span class="type">GtkBindingSignal</span></a>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><ahref="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType">GType</a> <em class="structfield"><code>arg_type</code></em>;</span></p></td><td>implementation detail</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3260382"></a><h3><a name="gtk-binding-entry-add"></a>gtk_binding_entry_add</h3><a class="indexterm" name="id3260398"></a><pre class="programlisting">#define gtk_binding_entry_add gtk_binding_entry_clear</pre><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p><code class="literal">gtk_binding_entry_add</code> is deprecated and should not be used in newly-written code.</p></div><p>Deprecated.</p></div><hr><div class="refsect2" lang="en"><a name="id3260427"></a><h3><a name="gtk-binding-entry-add-signall"></a>gtk_binding_entry_add_signall ()</h3><a class="indexterm" name="id3260443"></a><pre class="programlisting">void gtk_binding_entry_add_signall (<a class="link" href="gtk-Bindings.html#GtkBindingSet">GtkBindingSet</a> *binding_set, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> keyval, <ahref="/usr/share/gtk-doc/html/gdk/gdk-Windows.html#GdkModifierType">GdkModifierType</a> modifiers, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *signal_name, <ahref="/usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html#GSList">GSList</a> *binding_args);</pre><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -