summaryrefslogtreecommitdiff
path: root/gtk/gtksignal.h
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>1998-11-30 07:09:36 +0000
committerTim Janik <timj@src.gnome.org>1998-11-30 07:09:36 +0000
commit2c0fc39e626e93225e8d15ae8c1a51c1e6be79f0 (patch)
tree2d89e5a8abdaa694ecd320e617808f7732077d53 /gtk/gtksignal.h
parent140c26afbc334a8c24f2f721597d6aa7d39d8827 (diff)
downloadgtk+-2c0fc39e626e93225e8d15ae8c1a51c1e6be79f0.tar.gz
added an event watcher for enter/leave based on signal emission hooks.
Mon Nov 30 06:20:36 1998 Tim Janik <timj@gtk.org> * gtk/testgtk.c: added an event watcher for enter/leave based on signal emission hooks. * gtk/gtkobject.c (gtk_object_class_init): made GtkObject::destroy a GTK_RUN_NO_HOOKS signal. * gtk/gtksignal.h: * gtk/gtksignal.c: implemented emission hooks, new hooks can be added to a signal with gtk_signal_add_emission_hook or gtk_signal_add_emission_hook_full, and can be removed again with gtk_signal_remove_emission_hook. * gtk/gtkenums.h: remove GTK_RUN_MASK, since it doesn't represent an appropriate mask for signal runtypes for a long time now. added GTK_RUN_NO_HOOKS value, which is used to flag signals that do not allow the running of signal hooks.
Diffstat (limited to 'gtk/gtksignal.h')
-rw-r--r--gtk/gtksignal.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/gtk/gtksignal.h b/gtk/gtksignal.h
index fa43c8c215..f9be8a870c 100644
--- a/gtk/gtksignal.h
+++ b/gtk/gtksignal.h
@@ -33,13 +33,17 @@ extern "C" {
#define GTK_SIGNAL_OFFSET(struct, field) (GTK_STRUCT_OFFSET (struct, field))
-typedef void (*GtkSignalMarshal) (GtkObject *object,
+typedef void (*GtkSignalMarshal) (GtkObject *object,
gpointer data,
guint nparams,
GtkArg *args,
GtkType *arg_types,
GtkType return_type);
-typedef void (*GtkSignalDestroy) (gpointer data);
+typedef void (*GtkSignalDestroy) (gpointer data);
+typedef gboolean (*GtkEmissionHook) (GtkObject *object,
+ guint signal_id,
+ gpointer data);
+
typedef struct _GtkSignalQuery GtkSignalQuery;
@@ -166,6 +170,16 @@ guint gtk_signal_handler_pending_by_func (GtkObject *object,
GtkSignalFunc func,
gpointer data);
void gtk_signal_handlers_destroy (GtkObject *object);
+guint gtk_signal_add_emission_hook (guint signal_id,
+ GtkEmissionHook hook_func,
+ gpointer data);
+guint gtk_signal_add_emission_hook_full (guint signal_id,
+ GtkEmissionHook hook_func,
+ gpointer data,
+ GDestroyNotify destroy);
+void gtk_signal_remove_emission_hook (guint signal_id,
+ guint hook_id);
+
void gtk_signal_set_funcs (GtkSignalMarshal marshal_func,
GtkSignalDestroy destroy_func);