## Bindings Bindings — Key bindings for individual widgets |

## Synopsis

    #include <gtk/gtk.h>

                GtkBindingSet;
                GtkBindingEntry;
                GtkBindingSignal;
                GtkBindingArg;
    GtkBindingSet* gtk_binding_set_new          (const gchar *set_name);
    GtkBindingSet* gtk_binding_set_by_class     (gpointer object_class);
    GtkBindingSet* gtk_binding_set_find         (const gchar *set_name);
    gboolean    gtk_bindings_activate           (GtkObject *object,
                                                 guint keyval,
                                                 GdkModifierType modifiers);
    gboolean    gtk_bindings_activate_event     (GtkObject *object,
                                                 GdkEventKey *event);
    gboolean    gtk_binding_set_activate        (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers,
                                                 GtkObject *object);
    #define     gtk_binding_entry_add
    void        gtk_binding_entry_clear         (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers);
    void        gtk_binding_entry_add_signal    (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers,
                                                 const gchar *signal_name,
                                                 guint n_args,
                                                 ...);
    void        gtk_binding_set_add_path        (GtkBindingSet *binding_set,
                                                 GtkPathType path_type,
                                                 const gchar *path_pattern,
                                                 GtkPathPriorityType priority);
    void        gtk_binding_entry_remove        (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers);
    void        gtk_binding_entry_add_signall   (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers,
                                                 const gchar *signal_name,
                                                 GSList *binding_args);
    guint       gtk_binding_parse_binding       (GScanner *scanner);

## Description

## Details

### GtkBindingSet

    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;

### GtkBindingEntry

    typedef struct {
      /* key portion
       */
      guint			 keyval;
      GdkModifierType	 modifiers;

      GtkBindingSet		*binding_set;
      guint			destroyed : 1;
      guint			in_emission : 1;
      GtkBindingEntry	*set_next;
      GtkBindingEntry	*hash_next;
      GtkBindingSignal	*signals;
    } GtkBindingEntry;

### GtkBindingSignal

    typedef struct {
      GtkBindingSignal	*next;
      gchar 		*signal_name;
      guint			 n_args;
      GtkBindingArg		*args;
    } GtkBindingSignal;

### GtkBindingArg

    typedef struct {
      GType		 arg_type;
      union {
        glong	 long_data;
        gdouble	 double_data;
        gchar	*string_data;
      } d;
    } GtkBindingArg;

### gtk_binding_set_new ()

    GtkBindingSet* gtk_binding_set_new          (const gchar *set_name);

`set_name` : |
Returns : |

### gtk_binding_set_by_class ()

    GtkBindingSet* gtk_binding_set_by_class     (gpointer object_class);

`object_class` : |
Returns : |

### gtk_binding_set_find ()

    GtkBindingSet* gtk_binding_set_find         (const gchar *set_name);

`set_name` : |
Returns : |

### gtk_bindings_activate ()

    gboolean    gtk_bindings_activate           (GtkObject *object,
                                                 guint keyval,
                                                 GdkModifierType modifiers);

`object` : |
`keyval` : |
`modifiers` : |
Returns : |

### gtk_bindings_activate_event ()

    gboolean    gtk_bindings_activate_event     (GtkObject *object,
                                                 GdkEventKey *event);

Looks up key bindings for `object` to find one matching `event`, and if one was found, activate it.

`object` : | a GtkObject (generally must be a widget)
`event` : | a GdkEventKey
Returns : | `TRUE` if a matching key binding was found

### gtk_binding_set_activate ()

    gboolean    gtk_binding_set_activate        (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers,
                                                 GtkObject *object);

`binding_set` : |
`keyval` : |
`modifiers` : |
`object` : |
Returns : |

### gtk_binding_entry_add

    #define	 gtk_binding_entry_add		gtk_binding_entry_clear

### gtk_binding_entry_clear ()

    void        gtk_binding_entry_clear         (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers);

`binding_set` : |
`keyval` : |
`modifiers` : |

### gtk_binding_entry_add_signal ()

    void        gtk_binding_entry_add_signal    (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers,
                                                 const gchar *signal_name,
                                                 guint n_args,
                                                 ...);

`binding_set` : |
`keyval` : |
`modifiers` : |
`signal_name` : |
`n_args` : |
`...` : |

### gtk_binding_set_add_path ()

    void        gtk_binding_set_add_path        (GtkBindingSet *binding_set,
                                                 GtkPathType path_type,
                                                 const gchar *path_pattern,
                                                 GtkPathPriorityType priority);

`binding_set` : |
`path_type` : |
`path_pattern` : |
`priority` : |

### gtk_binding_entry_remove ()

    void        gtk_binding_entry_remove        (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers);

`binding_set` : |
`keyval` : |
`modifiers` : |

### gtk_binding_entry_add_signall ()

    void        gtk_binding_entry_add_signall   (GtkBindingSet *binding_set,
                                                 guint keyval,
                                                 GdkModifierType modifiers,
                                                 const gchar *signal_name,
                                                 GSList *binding_args);

`binding_set` : |
`keyval` : |
`modifiers` : |
`signal_name` : |
`binding_args` : |

### gtk_binding_parse_binding ()

    guint       gtk_binding_parse_binding       (GScanner *scanner);

`scanner` : |
Returns : |