From: Masao M. <mu...@hi...> - 2003-12-30 19:46:34
|
むとうです。 2003年はご協力どうもありがとうございました。 いろいろ大変な一年でしたが、Ruby-GNOME2も徐々に知名度が あがってきたので、2004年は是非、飛躍の年にしたいですね。 #その前に1.0.0を出さねば....。 ちと、2004年への自分へのメモ代わりといっては何ですが、 自分の中でくすぶっているIssueとかTODOをまとめて公開した上 で2003年を終わりにしたいと思います。 細かいネタが多いと思いますが、1.0.0をリリースする前には 片づけたいと思っていますので、コメント等ございましたら 賀状代わりにでも是非お願いいたします。 #ってかお年玉代わりにパッチとか(^^;)。 ■ GLib::Object.type_registerについて 基本的には今の方向性で良いと思っているのですが、 以下のようなパターンがちょっといやかな、と感じてます。 require 'gtk2' class Test < Gtk::Button end class Test2 < Gtk::Button type_register("Test2") end class Test3 < Test2 type_register("Test3") end class Test4 < Test type_register("Test4") #ここでエラー end いやかな、と思っている箇所は2つあります。 a. Test4のところでエラー まぁ、これは直せるかな? b. a.が直せたとして、Test4のGType上のスーパークラス はGtk::Buttonになると思うのだけど、その際にRubyの クラス階層とは異なるようになるけどいいのかなーという あたりです。まぁ、でもこれはしょうがないのか。 ■ GLib::Type[]について これは、さかいさんと意見が分かれたところではあるのですが、 今後は、極力見せない形にしたいと考えています。 限界はあると思いますが、極力C言語知らない人でもRuby-GNOME2 が十分に楽しめるようにというのが大きな理由です。 #これ、キャッチフレーズにしようかな。 特にGLib::Object.signal_newは今後よく使われそうですので Rubyのクラスをそのまま使えるようにしていきたいと思います。 ■ GDKのFactory関連 GDKでは、実装がWin32の時やX11の時でそれぞれ別々のGTypeを 持ちます。 で、実は、いくつかのGdk関連のクラスで現在問題になっている のですが、Ruby側から登録されていないGTypeがあるために、 無名クラスとして値が返されるメソッドが結構あったりして そのままでは使えない状態になっています。 たとえば、Gdk::Screen.defaultなど。 で、以下の2つの対応方法を考えてみました。 1. GdkGCX11やGdkGCWin32はGdk::GCとして見えるようにする 2. GdkGCX11はGdk::GCX11に、GdkGCWin32はGdk::GCWin32にする 1.の場合、GOBJ2RVAL2(val, gtype)というのを作って明示的にRuby化 されるときのクラスを決定してしまう、という比較的安易な対応が できると思います。 2.の場合、すべて手作業でG_DEF_CLASSをするという手もありますが 結構面倒くさいかなーと。 プラッガブルに追加されるようなものを想定すると、 自動でクラスとgtypeのマッピングを生成するようなことを考える 必要がありますが、タイミング的にそれはちと難しいかなぁと 思っています。 実装の問題は置いておいて、本来どっちであるべきかというのも 実は悩ましいです。 GTK+は一つの環境には基本的に1つの実装(X11 or Win32 or linuxfb) がインストールされると思うのですが、その場合、rbbrなどで見たときに すべてのGdkクラス群が1つのサブクラス(というか実体)を持つという 感じになるのがちょっと冗長かな、と。 ドキュメント書くのも面倒くさいし(ホンネ)。 あー、でもここまで書いてきて思ったのですが、 やっぱり2の方が良さそうだなぁ。手動でもそんなに数が多いわけでも ないし。 ■ Ruby/ATKの実装 これ、もう少しで終わります...。 ■ GTK+-2.2対応 まだ結構、GTK+-2.0のままなんですよね。Hikiのステータス ページもバージョンごとに分けれるようにしないと。 ■ Ruby/GnomePrint 一度、某氏から送られてきたのをrejectしたのですが あのまま世に出たら使い物にならんって感じになりそうなので きちんとこちらでインプリしてあげたい.... 誰かやりませんか? ■ Ruby/PanelApplet うーん、うーん。 というわけで、良いお年を! -- .:% Masao Mutoh<mu...@hi...> |