]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkbindings.h
gtk: Add gtk_widget_queue_draw_region()
[~andy/gtk] / gtk / gtkbindings.h
index a481f23df694c3583fdced745429e0d78848e41d..260eeb80b11f4a3759b201977ae2c53a5134451d 100644 (file)
@@ -1,7 +1,7 @@
 /* GTK - The GIMP Toolkit
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  *
- * GtkBindingSet: Keybinding manager for GtkObjects.
+ * GtkBindingSet: Keybinding manager for GObjects.
  * Copyright (C) 1998 Tim Janik
  *
  * This library is free software; you can redistribute it and/or
  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #ifndef __GTK_BINDINGS_H__
 #define __GTK_BINDINGS_H__
 
 
 #include <gdk/gdk.h>
-#include <gtk/gtkobject.h>
 #include <gtk/gtkenums.h>
 
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 
 /* Binding sets
@@ -71,22 +71,15 @@ 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
 {
-  GtkType      arg_type;
+  GType                 arg_type;
   union {
     glong       long_data;
     gdouble     double_data;
@@ -94,29 +87,47 @@ struct _GtkBindingArg
   } d;
 };
 
+struct _GtkBindingSignal
+{
+  GtkBindingSignal     *next;
+  gchar                *signal_name;
+  guint                         n_args;
+  GtkBindingArg                *args;
+};
 
 /* Application-level methods */
 
 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,
+gboolean gtk_bindings_activate         (GObject        *object,
                                         guint           keyval,
                                         GdkModifierType modifiers);
+gboolean gtk_bindings_activate_event    (GObject        *object,
+                                        GdkEventKey    *event);
 gboolean gtk_binding_set_activate      (GtkBindingSet  *binding_set,
                                         guint           keyval,
                                         GdkModifierType modifiers,
-                                        GtkObject      *object);
-#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,
+                                        GObject        *object);
+
+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_add_signall  (GtkBindingSet  *binding_set,
                                         guint           keyval,
                                         GdkModifierType modifiers,
                                         const gchar    *signal_name,
-                                        guint           n_args,
-                                        ...);
+                                        GSList         *binding_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 +136,14 @@ 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 */
 
+G_END_DECLS
 
 #endif /* __GTK_BINDINGS_H__ */