いがらしです。

At Sun, 26 Mar 2000 00:33:44 -0500,
in [ruby-ext:01008] GtkType vs Ruby,
Yasushi Shoji <yashi / yashi.com> wrote:
> 
> Gtk+の type system を上手く使う方法がないか探してます。
> 
> GtkTypeを key、各 objectの Init_gtk_*()の中の rb_define_class_under()で
> の返り値を valueにした hashを作りたいんですが:

新しいtypeを追加可能な VALUE get_gtk_type(GtkObject *) の
代替物を作ろうという意図ですよね。

> 1) rb_define_class_under()の時点では、全ての Gtk+の objectは type
> systemで initializeされてない(と思う)。

確かにinit.cで
    Init_gtk_gtk();
は
    gtk_init(&argc, &argv);
の前で呼ばれているのですが、gtk_xxxx_get_type()でGtkType値を
得ることは……やはりできないかなぁ。

それともInit_gtk_gtk()とgtk_initの順序を入れ換えるか。
これは大丈夫だと思うのですが。

> 2) はじめて instanceを作った時に hashを作ると、大量の objectを使う
> programで遅くなりそう。

どういう感じなのかぴんとこないのですが、
例えば、初めてGtk::Buttonをnewしたときに、
    gtk_button_get_type()の返り値 --> gButton (クラスオブジェクト)
を登録するということでしょうか。
気にするほど遅くなるとは思いません(が、試してないので確信なし)。
1)でできれば、その方がいいのですが。

--
五十嵐  宏  (Hiroshi IGARASHI)