summaryrefslogtreecommitdiff
path: root/gtk/gtksignal.h
diff options
context:
space:
mode:
authorTim Janik <timj@src.gnome.org>1998-01-29 20:44:14 +0000
committerTim Janik <timj@src.gnome.org>1998-01-29 20:44:14 +0000
commitdb6a8d4a8a6b817458b1fe1f8e334bb24aef4dfa (patch)
treed7e2fce920e6425b13ca13cecfcfc64456a4d1b1 /gtk/gtksignal.h
parent22388cfc079990a267084fff08abbd26823350e0 (diff)
downloadgtk+-db6a8d4a8a6b817458b1fe1f8e334bb24aef4dfa.tar.gz
new user signal, and possibility to query signal information.
-timj
Diffstat (limited to 'gtk/gtksignal.h')
-rw-r--r--gtk/gtksignal.h35
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
}