From: Masao M. <mu...@hi...> - 2003-07-19 18:43:59
|
むとうです。 #さかいさんもお疲れのようで(^^;) On Sat, 19 Jul 2003 20:51:29 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: Masahiro Sakai (酒井政裕) <sa...@to...> > Subject: Re: [ruby-gnome2-devel-ja] enum/flags のクラス化 > Date: Sat, 19 Jul 2003 14:20:57 +0900 (JST) > > > > コーディング上は、Cレベルでrb_define_constしてたところ辺りを > > > ざっくり削除して、 > > > > > > G_DEF_CONST("GtkWindowType"); > > > > > > とか書けたりしたら、それだけでもかなり便利になるような気がします。 > > > #ここでは自動化はしない方がRuby/GTKの好きなクラスにEnumsを配置できるので > > > #良いような気がします。 > > > > 今調べてみたところ、PyGtkでは > > pyg_enum_add_constants(PyObject *module, GType enum_type, > > const gchar *strip_prefix) > > という関数を使って定数を定義しているようです。 > > > > これにならって、 > > rbg_enum_add_constants(GTYPE2CLASS(GTK_TYPE_WINDOW), GTK_TYPE_WINDOW_TYPE, > > "GTK_WINDOW_") > > のように書けるようにするのが良さそうな気がして来ました。 > > このアイディアを実装してみました。 > 値は整数のまま変更していません。 これ、良いですね。まずは第1段階ということで。 ただ、これだけ頻繁に使われるのでマクロを用意しておきたいです。 他のものにあわせて G_DEF_CONSTANTS(klass, gtype, strip_prefix) でどうでしょうか? 問題ないようでしたらCVSにあてちゃってください。 -- ところで、第2段階としてクラス化したとすると、 関数内でINT2NUMとかを使ってる部分が結構悩ましいですね。 -- .:% Masao Mutoh<mu...@hi...> |