]> 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 051947d9d1340b2d2919e78d526f29ff5ea766a0..a3109b2988b710f46c540ca74361fc6a8b819bfd 100644 (file)
 #include <gtk/gtkenums.h>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Pattern matching
- */
-typedef struct _GtkPatternSpec GtkPatternSpec;
-
-struct _GtkPatternSpec
-{
-  GtkMatchType  match_type;
-  guint                 pattern_length;
-  gchar                *pattern;
-  gchar                *pattern_reversed;
-  gpointer      user_data;
-  guint                 seq_id;
-};
-
-void    gtk_pattern_spec_init      (GtkPatternSpec      *pspec,
-                                    const gchar         *pattern);
-void    gtk_pattern_spec_free_segs (GtkPatternSpec      *pspec);
-gboolean gtk_pattern_match         (GtkPatternSpec      *pspec,
-                                    guint                string_length,
-                                    const gchar         *string,
-                                    const gchar         *string_reversed);
-gboolean gtk_pattern_match_string   (GtkPatternSpec     *pspec,
-                                    const gchar         *string);
-gboolean gtk_pattern_match_simple   (const gchar        *pattern,
-                                    const gchar         *string);
+G_BEGIN_DECLS
 
 
 /* Binding sets
@@ -85,6 +56,7 @@ struct _GtkBindingSet
   GSList               *class_branch_pspecs;
   GtkBindingEntry      *entries;
   GtkBindingEntry      *current;
+  guint                  parsed : 1; /* From RC content */
 };
 
 struct _GtkBindingEntry
@@ -92,27 +64,20 @@ struct _GtkBindingEntry
   /* key portion
    */
   guint                         keyval;
-  guint                         modifiers;
+  GdkModifierType       modifiers;
   
   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
 {
-  GtkType      arg_type;
+  GType                 arg_type;
   union {
     glong       long_data;
     gdouble     double_data;
@@ -120,6 +85,13 @@ struct _GtkBindingArg
   } d;
 };
 
+struct _GtkBindingSignal
+{
+  GtkBindingSignal     *next;
+  gchar                *signal_name;
+  guint                         n_args;
+  GtkBindingArg                *args;
+};
 
 /* Application-level methods */
 
@@ -128,21 +100,40 @@ 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,
-                                        guint           modifiers);
+                                        GdkModifierType modifiers);
+gboolean gtk_bindings_activate_event    (GtkObject      *object,
+                                        GdkEventKey    *event);
 gboolean gtk_binding_set_activate      (GtkBindingSet  *binding_set,
                                         guint           keyval,
-                                        guint           modifiers,
+                                        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,
-                                        guint           modifiers);
-void    gtk_binding_entry_add_signal   (GtkBindingSet  *binding_set,
+                                        GdkModifierType modifiers);
+void    gtk_binding_entry_add_signall  (GtkBindingSet  *binding_set,
                                         guint           keyval,
-                                        guint           modifiers,
+                                        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,
@@ -151,22 +142,29 @@ void       gtk_binding_set_add_path       (GtkBindingSet  *binding_set,
 
 /* Non-public methods */
 
-void    gtk_binding_entry_remove       (GtkBindingSet  *binding_set,
-                                        guint           keyval,
-                                        guint           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,
-                                        guint           modifiers,
+                                        GdkModifierType modifiers,
                                         const gchar    *signal_name,
                                         GSList         *binding_args);
-guint   gtk_binding_parse_binding      (GScanner       *scanner);
 
-
-
-
-#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__ */