X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkbindings.h;h=a3109b2988b710f46c540ca74361fc6a8b819bfd;hb=43f5b189b71fb360a472526f2b25090857553c98;hp=c906ca6fbd1fb76d9c9a83e60f4ad8042991b22d;hpb=fb6a7df846c6f553a2cd3387b12d0027bc986f43;p=~andy%2Fgtk diff --git a/gtk/gtkbindings.h b/gtk/gtkbindings.h index c906ca6fb..a3109b298 100644 --- a/gtk/gtkbindings.h +++ b/gtk/gtkbindings.h @@ -36,9 +36,7 @@ #include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS /* Binding sets @@ -71,19 +69,12 @@ struct _GtkBindingEntry GtkBindingSet *binding_set; guint destroyed : 1; guint in_emission : 1; + guint marks_unbound : 1; GtkBindingEntry *set_next; GtkBindingEntry *hash_next; GtkBindingSignal *signals; }; -struct _GtkBindingSignal -{ - GtkBindingSignal *next; - gchar *signal_name; - guint n_args; - GtkBindingArg *args; -}; - struct _GtkBindingArg { GType arg_type; @@ -94,6 +85,13 @@ struct _GtkBindingArg } d; }; +struct _GtkBindingSignal +{ + GtkBindingSignal *next; + gchar *signal_name; + guint n_args; + GtkBindingArg *args; +}; /* Application-level methods */ @@ -103,20 +101,39 @@ 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); + +#ifndef GTK_DISABLE_DEPRECATED #define gtk_binding_entry_add gtk_binding_entry_clear void gtk_binding_entry_clear (GtkBindingSet *binding_set, guint keyval, GdkModifierType modifiers); -void gtk_binding_entry_add_signal (GtkBindingSet *binding_set, +void gtk_binding_entry_add_signall (GtkBindingSet *binding_set, guint keyval, GdkModifierType modifiers, const gchar *signal_name, - guint n_args, - ...); + GSList *binding_args); +guint gtk_binding_parse_binding (GScanner *scanner); +#endif /* GTK_DISABLE_DEPRECATED */ + +void gtk_binding_entry_skip (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_entry_remove (GtkBindingSet *binding_set, + guint keyval, + GdkModifierType modifiers); + void gtk_binding_set_add_path (GtkBindingSet *binding_set, GtkPathType path_type, const gchar *path_pattern, @@ -125,24 +142,29 @@ void gtk_binding_set_add_path (GtkBindingSet *binding_set, /* Non-public methods */ -void gtk_binding_entry_remove (GtkBindingSet *binding_set, - guint keyval, - GdkModifierType modifiers); -void gtk_binding_entry_add_signall (GtkBindingSet *binding_set, +guint _gtk_binding_parse_binding (GScanner *scanner); +void _gtk_binding_reset_parsed (void); +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); - -gboolean _gtk_bindings_activate_event (GtkObject *object, - GdkEventKey *event); -void _gtk_binding_reset_parsed (void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +/* Creates a signal with a fixed callback instead of a class offset; + * useful for key binding signals + */ +guint _gtk_binding_signal_new (const gchar *signal_name, + GType itype, + GSignalFlags signal_flags, + GCallback handler, + GSignalAccumulator accumulator, + gpointer accu_data, + GSignalCMarshaller c_marshaller, + GType return_type, + guint n_params, + ...); + +G_END_DECLS #endif /* __GTK_BINDINGS_H__ */