From: Masao M. <mu...@hi...> - 2003-06-15 16:09:49
|
むとうです。 On Mon, 16 Jun 2003 00:31:50 +0900 たむらけんいち <sgs...@ni...> wrote: > たむらです。 > > On Mon, 16 Jun 2003 00:07:10 +0900 > Mitsuo Igarashi <mi...@ru...> wrote: > * GNOME2 は GNOME の新しいバージョン > * だけど、APIは上位互換ではない。(例えば、Gtk::Window_TOPLEVELが無くなったとか) > * 基本的な考え方はほぼ同じ。 > * 機能が増え、依存するライブラリも増えた。 > > って辺りでしょうか。 > #ここ、ツッコムところです。まとまれば、Wikiのページに ;-) そうですねぇ。 GNOME2/GNOMEで言うと範囲が広すぎて私も把握し切れていないのですが、 GTK+に絞って言うと、GTK+2はAPI的にはほとんどGTK+の上位互換です。 ただし、一部のウィジェットはGTK_ENABLE_BROKEN, GTK_DISABLE_DEPRECATED の2つの段階でDeprecatedとなっています。 #前者の方がより使うな!という感じです。 それから考え方としてGObjectが導入されたというのも大きな違いですね。 内部的にだいぶ整理されてきました。 --- さて、Ruby-GNOMEとRuby-GNOME2ですが、むしろこちらの非互換性の 方が大きいんです。 実は、Ruby-GNOMEの頃はあまりAPIのレベルで実装のルール[1] が無かった(あるいはあったけど守られていなかった)ため、 例えばアクセッサなどの扱いに統一性の欠ける部分がありました。 Ruby-GNOME2では、まず決めごとを作って、たとえRuby-GNOMEに存在する メソッドであってもその決めごとに合わないモノはバッサバッサ切り捨て て(あるいは変更・移動した)整理しました。 さらに、GTK+の方でDeprecatedになっているクラス・メソッドは実装しない ことにしました。 そんなわけで、Ruby-GNOMEとRuby-GNOME2では非互換性がだいぶあるんです。 Ruby-GNOME2がRuby-GNOME-2.0でないのはその辺が大きいです。 ライブラリ名も gtkではなくgtk2なのはそういうことです。 さて、Gtk::Window::TOPLEVELですが、これはRuby/GTKでは、Gtk::WINDOW_TOPLEVEL (Gtk以外全て大文字)でした。つまり、Gtkという汎用的な部分に定数値が定義 されていました。 しかし、Ruby-GNOME2では、なるべく限定した場所に定数を定義するようにしています。 TOPLEVELという定数はGtk::Window(とそのサブクラス)でしか使わないので Gtk::Windowにあった方が自然、という考え方です。 [1] http://ruby-gnome2.sourceforge.jp/hiki.cgi?Naming+and+Conversion+Rules -- .:% Masao Mutoh<mu...@hi...> |