summaryrefslogtreecommitdiff
path: root/ext/gtk
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-10 06:50:18 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-10 06:50:18 +0000
commitb2fa1cbeda1b7893910205f38733430f521c3744 (patch)
tree0ed8dc323fd608bcb19fa18e1114351f8927eaf6 /ext/gtk
parentb814252d728cb08f159da1777feca4f8e9362327 (diff)
1.1b7 pre2
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@68 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/gtk')
-rw-r--r--ext/gtk/gtk.c25
1 files changed, 16 insertions, 9 deletions
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];
@@ -368,6 +368,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;
}