From b2fa1cbeda1b7893910205f38733430f521c3744 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 10 Feb 1998 06:50:18 +0000 Subject: 1.1b7 pre2 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@68 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/gtk/gtk.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'ext') diff --git a/ext/gtk/gtk.c b/ext/gtk/gtk.c index 6c68cca20c..9c922aac5a 100644 --- a/ext/gtk/gtk.c +++ b/ext/gtk/gtk.c @@ -347,11 +347,11 @@ get_gtkprevinfo(value) } static void -exec_callback(widget, data, nparams, params) +signal_callback(widget, data, nparams, params) GtkWidget *widget; VALUE data; int nparams; - GtkType *params; + GtkArg *params; { VALUE self = get_value_from_gobject(GTK_OBJECT(widget)); VALUE proc = RARRAY(data)->ptr[0]; @@ -367,6 +367,14 @@ exec_callback(widget, data, nparams, params) } } +static void +exec_callback(widget, proc) + GtkWidget *widget; + VALUE proc; +{ + rb_funcall(proc, id_call, 1, get_value_from_gobject(GTK_OBJECT(widget))); +} + static void free_ttips(tips) GtkTooltips *tips; @@ -861,13 +869,12 @@ gobj_smethod_added(self, id) GtkObject *obj = get_gobject(self); char *name = rb_id2name(NUM2INT(id)); - if (gtk_signal_lookup(name, GTK_OBJECT_TYPE(obj))) { VALUE handler = assoc_new(Qnil, id); add_relative(self, handler); gtk_signal_connect_interp(obj, name, - exec_callback, (gpointer)handler, + signal_callback, (gpointer)handler, NULL, 0); } return Qnil; @@ -922,7 +929,7 @@ gobj_sig_connect(argc, argv, self) handler = assoc_new(handler, INT2NUM(id)); add_relative(self, handler); n = gtk_signal_connect_interp(GTK_OBJECT(widget), RSTRING(sig)->ptr, - exec_callback, (gpointer)handler, + signal_callback, (gpointer)handler, NULL, 0); return INT2FIX(n); @@ -947,7 +954,7 @@ gobj_sig_connect_after(argc, argv, self) } add_relative(self, handler); n = gtk_signal_connect_interp(GTK_OBJECT(widget), RSTRING(sig)->ptr, - exec_callback, (gpointer)handler, + signal_callback, (gpointer)handler, NULL, 1); return INT2FIX(n); @@ -3715,7 +3722,7 @@ tbar_append_item(self, text, ttext, icon, func) STR2CSTR(ttext), get_widget(icon), exec_callback, - (gpointer)ary_new3(1, func)); + (gpointer)func); return self; } @@ -3733,7 +3740,7 @@ tbar_prepend_item(self, text, ttext, icon, func) STR2CSTR(ttext), get_widget(icon), exec_callback, - (gpointer)ary_new3(1, func)); + (gpointer)func); return self; } @@ -3751,7 +3758,7 @@ tbar_insert_item(self, text, ttext, icon, func, pos) STR2CSTR(ttext), get_widget(icon), exec_callback, - (gpointer)ary_new3(1, func), + (gpointer)func, NUM2INT(pos)); return self; } -- cgit v1.2.3