diff options
author | Tim Janik <timj@src.gnome.org> | 1998-01-29 20:44:14 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-01-29 20:44:14 +0000 |
commit | db6a8d4a8a6b817458b1fe1f8e334bb24aef4dfa (patch) | |
tree | d7e2fce920e6425b13ca13cecfcfc64456a4d1b1 /gtk/gtksignal.h | |
parent | 22388cfc079990a267084fff08abbd26823350e0 (diff) | |
download | gtk+-db6a8d4a8a6b817458b1fe1f8e334bb24aef4dfa.tar.gz |
new user signal, and possibility to query signal information.
-timj
Diffstat (limited to 'gtk/gtksignal.h')
-rw-r--r-- | gtk/gtksignal.h | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/gtk/gtksignal.h b/gtk/gtksignal.h index 68ff999025..8519cf9dac 100644 --- a/gtk/gtksignal.h +++ b/gtk/gtksignal.h @@ -35,14 +35,7 @@ extern "C" { #define GTK_SIGNAL_OFFSET(t, f) ((int) ((char*) &((t*) 0)->f)) #endif /* offsetof */ -#define GTK_SIGNAL_FUNC(f) ((GtkSignalFunc) f) - - -typedef void (*GtkSignalFunc) (void); -typedef void (*GtkSignalMarshaller) (GtkObject *object, - GtkSignalFunc func, - gpointer func_data, - GtkArg *args); + typedef void (*GtkSignalMarshal) (GtkObject *object, gpointer data, gint nparams, @@ -51,6 +44,18 @@ typedef void (*GtkSignalMarshal) (GtkObject *object, GtkType return_type); typedef void (*GtkSignalDestroy) (gpointer data); +typedef struct _GtkSignalQuery GtkSignalQuery; + +struct _GtkSignalQuery +{ + gint object_type; + const gchar *signal_name; + gboolean is_user_signal; + GtkSignalRunType run_type; + GtkType return_val; + guint nparams; + const GtkType *params; +}; gint gtk_signal_new (const gchar *name, GtkSignalRunType run_type, @@ -60,6 +65,14 @@ gint gtk_signal_new (const gchar *name, GtkType return_val, gint nparams, ...); +gint gtk_signal_newv (const gchar *name, + GtkSignalRunType run_type, + gint object_type, + gint function_offset, + GtkSignalMarshaller marshaller, + GtkType return_val, + gint nparams, + GtkType *params); gint gtk_signal_lookup (const gchar *name, gint object_type); gchar* gtk_signal_name (gint signal_num); @@ -115,6 +128,12 @@ void gtk_signal_default_marshaller (GtkObject *object, void gtk_signal_set_funcs (GtkSignalMarshal marshal_func, GtkSignalDestroy destroy_func); +/* Report internal information about a signal. The caller has the response + * to invoke a supsequent g_free (returned_data); but must leave the + * contents of GtkSignalQuery untouched. + */ +GtkSignalQuery* gtk_signal_query (gint signal_num); + #ifdef __cplusplus } |