<refentry id="gtk-Bindings">
<refmeta>
<refentrytitle>Bindings</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Bindings</refname><refpurpose></refpurpose>
</refnamediv>

<refsynopsisdiv><title>Synopsis</title>
<synopsis>

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


struct      <link linkend="GtkBindingSet">GtkBindingSet</link>;
struct      <link linkend="GtkBindingEntry">GtkBindingEntry</link>;
struct      <link linkend="GtkBindingSignal">GtkBindingSignal</link>;
struct      <link linkend="GtkBindingArg">GtkBindingArg</link>;
<link linkend="GtkBindingSet">GtkBindingSet</link>* <link linkend="gtk-binding-set-new">gtk_binding_set_new</link>          (const <link linkend="gchar">gchar</link> *set_name);
<link linkend="GtkBindingSet">GtkBindingSet</link>* <link linkend="gtk-binding-set-by-class">gtk_binding_set_by_class</link>     (<link linkend="gpointer">gpointer</link> object_class);
<link linkend="GtkBindingSet">GtkBindingSet</link>* <link linkend="gtk-binding-set-find">gtk_binding_set_find</link>         (const <link linkend="gchar">gchar</link> *set_name);
<link linkend="gboolean">gboolean</link>    <link linkend="gtk-bindings-activate">gtk_bindings_activate</link>           (<link linkend="GtkObject">GtkObject</link> *object,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers);
<link linkend="gboolean">gboolean</link>    <link linkend="gtk-binding-set-activate">gtk_binding_set_activate</link>        (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers,
                                             <link linkend="GtkObject">GtkObject</link> *object);
#define     <link linkend="gtk-binding-entry-add">gtk_binding_entry_add</link>
void        <link linkend="gtk-binding-entry-clear">gtk_binding_entry_clear</link>         (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers);
void        <link linkend="gtk-binding-entry-add-signal">gtk_binding_entry_add_signal</link>    (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers,
                                             const <link linkend="gchar">gchar</link> *signal_name,
                                             <link linkend="guint">guint</link> n_args,
                                             ...);
void        <link linkend="gtk-binding-set-add-path">gtk_binding_set_add_path</link>        (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="GtkPathType">GtkPathType</link> path_type,
                                             const <link linkend="gchar">gchar</link> *path_pattern,
                                             <link linkend="GtkPathPriorityType">GtkPathPriorityType</link> priority);
void        <link linkend="gtk-binding-entry-remove">gtk_binding_entry_remove</link>        (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers);
void        <link linkend="gtk-binding-entry-add-signall">gtk_binding_entry_add_signall</link>   (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers,
                                             const <link linkend="gchar">gchar</link> *signal_name,
                                             <link linkend="GSList">GSList</link> *binding_args);
<link linkend="guint">guint</link>       <link linkend="gtk-binding-parse-binding">gtk_binding_parse_binding</link>       (<link linkend="GScanner">GScanner</link> *scanner);
</synopsis>
</refsynopsisdiv>





<refsect1>
<title>Description</title>
<para>

</para>
</refsect1>

<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="GtkBindingSet">struct GtkBindingSet</title>
<programlisting>struct GtkBindingSet
{
  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 */
};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="GtkBindingEntry">struct GtkBindingEntry</title>
<programlisting>struct GtkBindingEntry
{
  /* key portion
   */
  guint			 keyval;
  GdkModifierType	 modifiers;
  
  GtkBindingSet		*binding_set;
  guint			destroyed : 1;
  guint			in_emission : 1;
  GtkBindingEntry	*set_next;
  GtkBindingEntry	*hash_next;
  GtkBindingSignal	*signals;
};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="GtkBindingSignal">struct GtkBindingSignal</title>
<programlisting>struct GtkBindingSignal
{
  GtkBindingSignal	*next;
  gchar			*signal_name;
  guint			 n_args;
  GtkBindingArg		*args;
};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="GtkBindingArg">struct GtkBindingArg</title>
<programlisting>struct GtkBindingArg
{
  GtkType	arg_type;
  union {
    glong	 long_data;
    gdouble	 double_data;
    gchar	*string_data;
  } d;
};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="gtk-binding-set-new">gtk_binding_set_new ()</title>
<programlisting><link linkend="GtkBindingSet">GtkBindingSet</link>* gtk_binding_set_new          (const <link linkend="gchar">gchar</link> *set_name);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>set_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-set-by-class">gtk_binding_set_by_class ()</title>
<programlisting><link linkend="GtkBindingSet">GtkBindingSet</link>* gtk_binding_set_by_class     (<link linkend="gpointer">gpointer</link> object_class);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object_class</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-set-find">gtk_binding_set_find ()</title>
<programlisting><link linkend="GtkBindingSet">GtkBindingSet</link>* gtk_binding_set_find         (const <link linkend="gchar">gchar</link> *set_name);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>set_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-bindings-activate">gtk_bindings_activate ()</title>
<programlisting><link linkend="gboolean">gboolean</link>    gtk_bindings_activate           (<link linkend="GtkObject">GtkObject</link> *object,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>keyval</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>modifiers</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-set-activate">gtk_binding_set_activate ()</title>
<programlisting><link linkend="gboolean">gboolean</link>    gtk_binding_set_activate        (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers,
                                             <link linkend="GtkObject">GtkObject</link> *object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>binding_set</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>keyval</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>modifiers</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-entry-add">gtk_binding_entry_add</title>
<programlisting>#define	 gtk_binding_entry_add		gtk_binding_entry_clear
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="gtk-binding-entry-clear">gtk_binding_entry_clear ()</title>
<programlisting>void        gtk_binding_entry_clear         (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>binding_set</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>keyval</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>modifiers</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-entry-add-signal">gtk_binding_entry_add_signal ()</title>
<programlisting>void        gtk_binding_entry_add_signal    (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers,
                                             const <link linkend="gchar">gchar</link> *signal_name,
                                             <link linkend="guint">guint</link> n_args,
                                             ...);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>binding_set</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>keyval</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>modifiers</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>signal_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>n_args</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-set-add-path">gtk_binding_set_add_path ()</title>
<programlisting>void        gtk_binding_set_add_path        (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="GtkPathType">GtkPathType</link> path_type,
                                             const <link linkend="gchar">gchar</link> *path_pattern,
                                             <link linkend="GtkPathPriorityType">GtkPathPriorityType</link> priority);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>binding_set</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>path_type</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>path_pattern</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>priority</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-entry-remove">gtk_binding_entry_remove ()</title>
<programlisting>void        gtk_binding_entry_remove        (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>binding_set</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>keyval</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>modifiers</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-entry-add-signall">gtk_binding_entry_add_signall ()</title>
<programlisting>void        gtk_binding_entry_add_signall   (<link linkend="GtkBindingSet">GtkBindingSet</link> *binding_set,
                                             <link linkend="guint">guint</link> keyval,
                                             <link linkend="GdkModifierType">GdkModifierType</link> modifiers,
                                             const <link linkend="gchar">gchar</link> *signal_name,
                                             <link linkend="GSList">GSList</link> *binding_args);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>binding_set</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>keyval</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>modifiers</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>signal_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>binding_args</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-binding-parse-binding">gtk_binding_parse_binding ()</title>
<programlisting><link linkend="guint">guint</link>       gtk_binding_parse_binding       (<link linkend="GScanner">GScanner</link> *scanner);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scanner</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>

</refsect1>




</refentry>
