いがらしです。これまた遅くなりましたが……

At Wed, 26 Apr 2000 08:33:53 -0400,
in [ruby-ext:01055] Gtk::Window#set_geometry_hints,
Yasushi Shoji <yashi / yashi.com> wrote:
> 
> %rubyで話にでたので書いてみました。APIがへぼいので、なんだかなぁ〜ですが
> 一応投げておきます。
> 
> こういうただの structってどう扱うべきなんでしょうか?

すでにソースプログラムで見たと思いますが、
GdkRectangle/GdkRegionなどの場合は普通にwrapしてます。
これらの間で演算メソッドを定義するためです。
でもGdkGeometryはどうしたらいいかというと、

> +    /* once ruby gets parameterized arguments feature, setters should
> +     * be changed. 2000-040-26 yashi */
> +    rb_define_method(gdkGeometry, "set", geo_set, 10);

named argumentsのことですよね。
    geometry.set(max_width: 256)
みたいな。

> +static VALUE
> +gwin_set_geometry_hints(self, geometry_widget, geometry, geom_mask)
> +    VALUE self, geometry_widget, geometry, geom_mask;

そしてこれなんですが、CレベルでのGdkGeometryとGdkWindowHints
(ここでは変数geometry, geom_mask)は、RubyではHash1つで
表現できますね。
他にGdkGeometryの使い道はなく、setter/getter以外にメソッドも
不要なので、新たにクラスを定義する必要はないのかも知れません。

こうしてみるとHashで済んでしまいそうなのだけど。
独自のクラス名があった方がよければStructを使うか。
その方がいいかなぁ。意見下さい。

--
五十嵐  宏  (Hiroshi IGARASHI)