いがらしです。

At Sun, 19 Dec 1999 02:40:05 -0500,
in [ruby-ext:00757] Re: Gdk::Visual (Re:  Gdk::Colormap#new),
Yasushi Shoji <yashi / yashi.com> wrote:
> +    rb_define_method(gdkVisual, "type", gdkvisual_type, 0);

これ、Object#typeとかぶるので、
Gdk::Visual#visual_typeにしていいでしょうか?

> いくつか質問。
> 
> - enumを pしたときに数字じゃなくて文字列を出す方法はありますか?
>   e.g
>   v = Gdk::Visual.whatever
>   p v.type
>    => Gdk::Visual::STATIC_GRAY

ないです。ただのFixnumなので、それ自体は名前や属するenum type 
をもっていません。

個人的にはこういう感じにできて欲しいなと思ってます。

p v
 => Gdk::Visual::STATIC_GRAY # Gdk::Visual::VisualType::STATIC_GRAYは長過ぎ?
p v.type
 => Gdk::Visual::VisualType
p v.to_i  # NUM2INTは非Fixnumに対してto_iを呼んで変換するので引数に使える
 => 0     # (GDK_VISUAL_STATIC_GRAYの値)
Gdk::Visual::VisualType === Gdk::Visual::STATIC_GRAY
 => true
Gdk::Visual::VisualType.to_a
 => [Gdk::Visual::STATIC_GRAY, Gdk::Visual::GRAYSCALE, ...]

列挙型が欲しいと思うことはよくありますが、
これに関しての議論はruby-devの方がいいでしょうね。

> - guint32の maskとかって INT2NUMで良いでしょうか?

1 pixel = 32 bit (って見たことありませんが)のとき、
(おそらくred_maskが)Fixnumの範囲に収まらないので、
INT2NUMを使う必要があると思います(自信なし^_^;)。

--
五十嵐  宏  (Hiroshi IGARASHI)