----Next_Part(Sat_Aug__4_14:20:44_2001_898)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

酒井といいます。

のRuby/Gtkは、gtk+のオブジェクトのuser_data
(ie: gtk_object_set_user_data, gtk_object_get_user_data)
を使って、Rubyのオブジェクトへの参照を持たしていますが、
このuser_dataを使わないようになると嬉しいです。

というのも、libgimpuiのウィジェットで
user_dataを使ってしまっているものがあって、
Gimp-Rubyで困っているんです。

libgimpuiのようなライブラリがuser_dataを占有するのは
明らかな誤りだと思いますが、
既存のアプリケーションにはuser_dataを使っているものも少なくないですし、
Ruby/Gtk側がuser_dataを使わないことで、
いったアプリケーションに組み込む際の摩擦も避けられると思います。

とりあえず、手元ではこんなパッチを当てているのですが、
どうでしょうか?

-- さかい

----Next_Part(Sat_Aug__4_14:20:44_2001_898)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="gtk-0.25-no-user-data.diff"

--- gtk-0.25.orig/src/rbgtk.c	Mon Apr  9 05:38:46 2001
+++ gtk-0.25/src/rbgtk.c	Sun Jul 29 20:18:02 2001
@@ -17,6 +17,8 @@
 # include <sys/time.h>
 #endif
 
+static const char* const ruby_object_key  __ruby_gtk_object__";
+
 VALUE mGtk;
 VALUE gError;
 VALUE gObject;
@@ -222,7 +224,7 @@
 	data  ata_Wrap_Struct(rb_cData, cinfo->mark, cinfo->free, gtkobj);
     else
 	data  ata_Wrap_Struct(rb_cData, gobj_mark, 0, gtkobj);
-    gtk_object_set_user_data(gtkobj, (gpointer)obj);
+    gtk_object_set_data(gtkobj, ruby_object_key, (gpointer)obj);
 
     rb_ivar_set(obj, id_relatives, Qnil);
 
@@ -257,7 +259,7 @@
     GtkObject *obj;
 {
     VALUE  ret;
-    ret  VALUE)gtk_object_get_user_data(obj);
+    ret  VALUE)gtk_object_get_data(obj, ruby_object_key);
     if ( ! ret )
 	ret  ake_gobject_auto_type(obj);
     return ret;

----Next_Part(Sat_Aug__4_14:20:44_2001_898)----