]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkbindings.h
Iterate on the proxies we hold when we change the sorting function and the
[~andy/gtk] / gtk / gtkbindings.h
index c906ca6fbd1fb76d9c9a83e60f4ad8042991b22d..a3109b2988b710f46c540ca74361fc6a8b819bfd 100644 (file)
@@ -36,9 +36,7 @@
 #include <gtk/gtkenums.h>
 
 
-#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__ */