今日は、岡本です。

# Gdk の扱いは難しいなあとおもう今日このごろです。
# Gtk も簡単というほど簡単には思えませんが。

From: "Minoru Inachi" <inachi / earth.interq.or.jp>
Subject: [ruby-list:16255] Re: Ruby/Gtk GC::set_foreground
Date: Mon, 23 Aug 1999 03:52:06 +0900

> 稲地です。

こんにちは。

> ----- Original Message -----
> 送信者 : Kazumi Okamoto <kazusan / pluto.dti.ne.jp>
> 宛先 : ruby mailing list <ruby-list / netlab.co.jp>
> 送信日時 : 1999年8月22日 22:41
> 件名 : [ruby-list:16252] Ruby/Gtk GC::set_foreground
> 
> デフォルトのカラーマップに確保されている色が使われています。

やっぱりそうでしたか、うーん。

> > Gdk::GC::set_foreground メソッドの値をかえると色がかわるのですが、
> > この値の求めかたがわかりません。
> > Gdk::Color で設定した値ではだめなんでしょうか?
> 
> ネィティブな GTK+ でやるとすれば
> 
>    1. GdkColor で色を指定。
>    2. その色をカラーマップで確保する(GtkColorにピクセル値を得る)。
>    3. gdk_gc_set_forground に GdkColor を指定。
> 
> といった手順だと思うのですが、現状の Ruby/Gtk だと Gdk::Colormap はない
> ので、Gdk::Color からピクセル値を得る手段がなく、Gdk::GC::set_foreground は
> 直接ピクセル値を指定するようになっているので方法がないのではないかと。

てっきり、Colormap がないのは、別の手段があるからだと
おもってました。

> 試しに先の手順を Ruby/Gtk で行えるようにするパッチを作成してみました
> (ruby-gtk-SNAPSHOT-19990807用)。これを適用して
> 
>     c = Gdk::Color.new(0, 0xFFFF, 0xFFFF, 0xFFFF)
>     cmap = Gdk::Colormap.get_system
>     cmap.alloc(c);
> 
>     gc = Gdk::GC.new(self)
>     gc.set_foreground(c)
> 
> のようにすると、Gdk::Color の指定が有効になることは確認しました。
>

わざわざ、ありがとうございます。
今日は時間がありませんので、後日ためしてみます。
どうもありがとうございました。

--
Kazumi Okamoto
kazusan / pluto.dti.ne.jp