From: Masao M. <mu...@hi...> - 2003-08-31 07:32:20
|
むとうです。 On Sun, 31 Aug 2003 15:40:29 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] Enum/Flags > Date: Sun, 31 Aug 2003 00:29:50 +0900 > > > むとうです。 > > > > On Sat, 30 Aug 2003 23:00:48 +0900 > > Masao Mutoh <mu...@hi...> wrote: > > > > > さかいさん > > > > > > それから、現状、<=>等のメソッドがEnumの方に定義されていないので、 > > > > 例えば、gtk/sample/misc/cursor.rb等でエラーが出ます。 > > > > これは、Flagsの方に合わせて単に定義すればよいのかな。 > > Flagsの方の比較演算はビット集合の包含関係で定義してありますが、 > > Enumの比較演算は > * 整数値としての大小関係 > * nameの文字列としての大小関係 > * nickの文字列としての大小関係 > とか色々考えられて、必ずしも自明ではないように思ったので、 > 今のところは Enum#== 以外定義していません。 なるほど。互換性を考えたら整数値としての大小関係なのでしょうけど。 > このgtk/sample/misc/cursor.rbに関しては、 > 定数を探してソートする事に苦労するよりは、 > cursors = Gdk::Cursor::Type.values > としてしまったような方が良いと思います。 そうですね。まぁ、これくらいの非互換性はヨシとしましょう。 > > これ、1つずつの値を出したりできたら良いかもしれませんね。 > > GLib::Flags#to_a みたいな。 > > #もちろん、|,&とかも定義されてるのでそちらから導き出すことはできるの > > #でしょうけど。 > > そうですね。 > のような感じのメソッドを定義していたのですが、 > > * valuesの中には単一のフラグでないような値 > (例えば Gdk::Event::ALL_EVENTS_MASK)も含まれている事があるので、 > その扱いで悩んだのと、 > * to_aという名前に違和感があったので、 > > 消してしまいました。 > > 良い名前があれば復活させたいところです。 ALL_EVENTS_MASKの扱いはちょっと難しいですねぇ。 名前の方はそうだなぁ、separateとか?イマイチかな。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |