You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(47) |
Jul
(47) |
Aug
(75) |
Sep
(6) |
Oct
(5) |
Nov
|
Dec
(5) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(2) |
Feb
(5) |
Mar
(5) |
Apr
|
May
|
Jun
(1) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
|
From: Masao M. <mu...@hi...> - 2002-07-29 15:26:44
|
むとうです。 自分で書いておいてなんですが。 On Tue, 30 Jul 2002 00:10:21 +0900 Masao Mutoh <mu...@hi...> wrote: > > * 考えてみたらNeilさんもruby-bzlibを入れてましたし、 > > それに比べたらずっと関係が深いよなぁと思ったのと > > うーん、正直言ってruby-bzlibは場違いかなぁと思ってます。 > ruby-gconfは良いんですが。 ちなみにruby-bzlibって私が引き取ったことになってるんでしょうか? メンテナンスとかってした方が良いんでしょうかねぇ。 #ってそれはNeilに相談しろよ<オレ(-o-;) -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-07-29 15:10:26
|
むとうです。 On Mon, 29 Jul 2002 01:34:06 +0900 Masahiro Sakai <s01...@sf...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome-users-ja] Re: Ruby/GNOMEの呼び出し時の引数 > Date: Fri, 26 Jul 2002 19:13:26 +0900 > > > > > Ruby/GTKが必ず必要と言うことでしたら、Ruby-GNOMEに入れてしまうとか? > > > > #入れすぎ?(^^;) > > > > > > さすがにそれはやり過ぎかと。(^^;) > > > > たはははは。 > > と思ったのですけど、やはりお願いしてしまって良いでしょうか? > # ころころ変わってすいません。(_ _) > > * 考えてみたらNeilさんもruby-bzlibを入れてましたし、 > それに比べたらずっと関係が深いよなぁと思ったのと うーん、正直言ってruby-bzlibは場違いかなぁと思ってます。 ruby-gconfは良いんですが。 > * 最近飽きてきていじっていないので、 > それならばどこでも良いからCVSに入れてしまって、 > 他の人がいじれる/引き継げる状態にしておいた方が良さそう > と思ったのが心変わりの理由です。 これはCVSにあると良い点ですよね。 それでは、以下の2つのどちらかにしていただくというのはどうでしょうか。 1. 一番トップディレクトリのruby-gnome2と同列にGimp-Rubyも入れる → 再配布はruby-gnome/ruby-gnome2とは別。 2. ruby-gnome/ruby-gnome2の配下にgimpというディレクトリを作りそこに入れる → 特に更新等が無くてもruby-gnome/ruby-gnome2と一緒に配布する。 ちなみに、ruby-gconfは2.のやり方で良いかなと考えてます。 Gimp-Rubyはさかいさんの好きな方でやっちゃってください。 また、ruby-gnomeと一緒にするのか、ruby-gnome2と一緒にするのか、どちらも 一緒にするのかも、さかいさんの考えで決めてもらって良いですよ。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: KUBO T. <ku...@ji...> - 2002-07-28 16:59:35
|
久保@茅ヶ崎市です。 ずっと以前に一回やったことあるのですが、Gnome::CanvasItem 対応を再 度行いました。以前は test-gnome.rb の Antialias でも SIGSEGV が起 こったのですが、今回は今のところ問題なし。 # 一週間ほど前、Gnome::CanvasItem についてフィンランドの人から直接 # 問い合わせがあって、「使えない」という回答をした。使う人がいるな # らやってみようと思い立ってやってみた。 ファイルは http://www.jiubao.org/tmp/gnome-canvas-patch.tar.gz にあります。 展開したあと、canvas.dif のパッチを当てて、flower.png, toroid.png を gnome/sample/test-gnome にコピーしてください。 新規ファイル gnome/sample/test-gnome/canvas-arrowhead.rb gnome/sample/test-gnome/canvas-features.rb gnome/sample/test-gnome/canvas-fifteen.rb gnome/sample/test-gnome/canvas-primitives.rb gnome/sample/test-gnome/canvas.rb gnome/sample/test-gnome/flower.png gnome/sample/test-gnome/toroid.png gnome/src/rbgnome-canvas-util.c 修正したファイル gnome/sample/test-gnome/test-gnome.rb gnome/src/rbgnome-canvas-group.c gnome/src/rbgnome-canvas-item.c gnome/src/rbgnome-canvas.c gnome/src/rbgnome.c gnome/src/rbgnome.h このソースで使っている方法は Ruby/GNOME2 には適用できません。 Ruby/GNOME2 のためには rbgnome-canvas-item.c の先頭部分は書き直し でしょう。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
|
From: Masahiro S. <s01...@sf...> - 2002-07-28 16:34:11
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome-users-ja] Re: Ruby/GNOMEの呼び出し時の引数 Date: Fri, 26 Jul 2002 19:13:26 +0900 > > > Ruby/GTKが必ず必要と言うことでしたら、Ruby-GNOMEに入れてしまうとか? > > > #入れすぎ?(^^;) > > > > さすがにそれはやり過ぎかと。(^^;) > > たはははは。 と思ったのですけど、やはりお願いしてしまって良いでしょうか? # ころころ変わってすいません。(_ _) * 考えてみたらNeilさんもruby-bzlibを入れてましたし、 それに比べたらずっと関係が深いよなぁと思ったのと * 最近飽きてきていじっていないので、 それならばどこでも良いからCVSに入れてしまって、 他の人がいじれる/引き継げる状態にしておいた方が良さそう と思ったのが心変わりの理由です。 -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-07-28 13:39:23
|
むとうです。 On Sun, 28 Jul 2002 20:54:02 +0900 Masahiro Sakai <s01...@sf...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome-users-ja] Re: Ruby/GNOMEの呼び出し時の引数 > Date: Fri, 26 Jul 2002 19:13:26 +0900 > > > これ、将来的に問題出てくるような気もするんで外出しする方向 > > で考えてます。 > > という事は、 > * gtk2.soがロードされた時点では、gtk_init()は呼ばれない。 > Gtkモジュールが作られるだけで各クラスは作られない。 > * Gtk.initのようなメソッドを呼び出した時点で、はじめてgtk_init()が呼ばれて、 > その後各クラスが作られる。 > といった感じでしょうか? gnomeの実装と同じにするということであれば、 * gtk2.soがロードされた時点では、gtk_init()は呼ばれない。 各クラス(Ruby側から参照できるクラスという意味)はここで作られる。 * Gtk.initのようなメソッドを呼び出した時点で、GTK+のライブラリが初期化される。 という形になると思います。 > こうなると、gtk_init()とgtk_init_check()を両方提供できるのが良さそう。 そうですね。その辺も含めて考えましょう。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masahiro S. <s01...@sf...> - 2002-07-28 11:54:06
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome-users-ja] Re: Ruby/GNOMEの呼び出し時の引数 Date: Fri, 26 Jul 2002 19:13:26 +0900 > これ、将来的に問題出てくるような気もするんで外出しする方向 > で考えてます。 という事は、 * gtk2.soがロードされた時点では、gtk_init()は呼ばれない。 Gtkモジュールが作られるだけで各クラスは作られない。 * Gtk.initのようなメソッドを呼び出した時点で、はじめてgtk_init()が呼ばれて、 その後各クラスが作られる。 といった感じでしょうか? こうなると、gtk_init()とgtk_init_check()を両方提供できるのが良さそう。 > > ちなみに、Ruby/Gtk無しでもGUIが使えなくなるだけで、 > > 一応スクリプトを動かすことは問題なく出来るようになってます。 > > あ、そりゃそうですよね。っていうかそんなことも知らないのか<オレ(^^;)。 いやいや。 逆に、そんな細かい事までむとうさんが知っていたら、 そっちの方がビビりますよー (^^;) -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-07-28 04:36:21
|
むとうです。 On Sun, 28 Jul 2002 13:21:34 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > > バグレポート等、お待ちしております(^^;)。 > > Gnome::init で第三引数が与えられてないとき、gnome_s_init() の変数 > options が初期化されず、gnome_init_with_popt_table() の奥の方で > SIGSEGV を起こしてました。 > > 私の ruby script では SIGSEGV が起こるのに、test-gnome.rb ではどう > して起きないのかは不明。p(^^;) > > CVS の最新版に対する patch です。 ありがとうございます。CVSの方に反映しました。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: KUBO T. <ku...@ji...> - 2002-07-28 04:24:11
|
久保@茅ヶ崎市です。
> バグレポート等、お待ちしております(^^;)。
Gnome::init で第三引数が与えられてないとき、gnome_s_init() の変数
options が初期化されず、gnome_init_with_popt_table() の奥の方で
SIGSEGV を起こしてました。
私の ruby script では SIGSEGV が起こるのに、test-gnome.rb ではどう
して起きないのかは不明。p(^^;)
CVS の最新版に対する patch です。
diff -u -r1.22 rbgnome.c
--- rbgnome.c 28 Jul 2002 03:55:32 -0000 1.22
+++ rbgnome.c 28 Jul 2002 04:21:54 -0000
@@ -134,6 +134,7 @@
}
len = 0;
+ options = NULL;
if (! NIL_P(rb_options)){
len = RARRAY(rb_options)->len;
options = ALLOCA_N(struct poptOption, len + 1);
では、再見
--
神奈川県茅ヶ崎市在住 久保 健洋
email: ku...@ji...
web: http://www.jiubao.org
GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262
|
|
From: Masao M. <mu...@hi...> - 2002-07-28 04:04:02
|
むとうです。 On Sun, 28 Jul 2002 01:02:42 +0900 Kazuhiro NISHIYAMA <zn...@mb...> wrote: > 西山和広です。 > > In <200...@hi...> > On Tue, 23 Jul 2002 14:07:55 +0900 > Masao Mutoh <mu...@hi...> wrote: > > 次に、hogeのようなオプション指定無しのものはargsというキーに配列としてまとめられます。 > > > > others = args["args"] #=> ["hoge", "fuga"] > > > シンボル :args のように文字列以外のものにすればそういう制限を > つけなくていいと思うのですが。 > > # 文字列でも空文字列という手がありそう。 なるほど。 今回の場合、新たにシンボルを作ると言うほどのこともないと思いましたので、 空文字にしました。CVSにci済みです。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Kazuhiro N. <zn...@mb...> - 2002-07-27 16:03:00
|
西山和広です。 In <200...@hi...> On Tue, 23 Jul 2002 14:07:55 +0900 Masao Mutoh <mu...@hi...> wrote: > 次に、hogeのようなオプション指定無しのものはargsというキーに配列としてまとめられます。 > > others = args["args"] #=> ["hoge", "fuga"] > > したがって、各アプリケーションは"args"という引数を使うことはできませんので注意して > ください。 > > なお、argsはGnome::POPT_ARGSという定数値になっていますので上記は、 > > others = args[Gnome::POPT_ARGS] > > と書くことができます。なるべくこちらの形を使うようにしてください。 シンボル :args のように文字列以外のものにすればそういう制限を つけなくていいと思うのですが。 # 文字列でも空文字列という手がありそう。 -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA) |
|
From: Masao M. <mu...@hi...> - 2002-07-26 10:13:31
|
むとうです。 On Fri, 26 Jul 2002 18:58:10 +0900 Masahiro Sakai <s01...@sf...> wrote: > さかいです。 > ようやくテストとレポートから解放されました。(^^;) おー、お疲れさまです。お待ちしておりました。 > どの辺りが嬉しくなかったかというと、gtk_init()は2回目以降の呼び出しで > は何もしないので、先にRuby/Gtkがgtk_init()を呼び出してしまっていると、 > gimp_ui_init()が内部でgtk_init()の呼び出した際の引数が無視されてしまう > 事でした。 > > 今のところ、大した問題ではないし、 > うまい解決法もなかったので放置してあります。 これ、将来的に問題出てくるような気もするんで外出しする方向 で考えてます。 > > Ruby/GTKが必ず必要と言うことでしたら、Ruby-GNOMEに入れてしまうとか? > > #入れすぎ?(^^;) > > さすがにそれはやり過ぎかと。(^^;) たはははは。 > ちなみに、Ruby/Gtk無しでもGUIが使えなくなるだけで、 > 一応スクリプトを動かすことは問題なく出来るようになってます。 あ、そりゃそうですよね。っていうかそんなことも知らないのか<オレ(^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masahiro S. <s01...@sf...> - 2002-07-26 09:58:16
|
さかいです。 ようやくテストとレポートから解放されました。(^^;) From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome-users-ja] Re: Ruby/GNOMEの呼び出し時の引数 Date: Tue, 16 Jul 2002 01:43:10 +0900 > > そういえば、libgimpuiではgimp_ui_init()という関数をgtk_init()の代わり > > に呼び出すことになっているのですが、Ruby/GtkとGimp-Rubyの組合わせだと、 > > gimpui.soがgimp_ui_init()を呼び出す前に、gtk.soがgtk_init()を呼び出し > > てしまってあまり嬉しくない事になるという事がありました。 > > なるほど。 > ソースを見ていないでこういうこというのもなんですが、嬉しくないなりに > うまい解決策ってのがあったのでしょうか。それとも、何か制限があるとか? どの辺りが嬉しくなかったかというと、gtk_init()は2回目以降の呼び出しで は何もしないので、先にRuby/Gtkがgtk_init()を呼び出してしまっていると、 gimp_ui_init()が内部でgtk_init()の呼び出した際の引数が無視されてしまう 事でした。 今のところ、大した問題ではないし、 うまい解決法もなかったので放置してあります。 > > PS: > > Gimp-Rubyですが、一人でいじっているのにも飽きたので、 > > 誰か一緒にやりませんか? > > じゃ、私が。といいたいところですが、もう首が回りません(^^;)。 > #っていうかすでに回っていないという説も... うーん。残念。 > Ruby/GTKが必ず必要と言うことでしたら、Ruby-GNOMEに入れてしまうとか? > #入れすぎ?(^^;) さすがにそれはやり過ぎかと。(^^;) ちなみに、Ruby/Gtk無しでもGUIが使えなくなるだけで、 一応スクリプトを動かすことは問題なく出来るようになってます。 -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-07-23 05:07:59
|
むとうです。
つづき。
On Tue, 23 Jul 2002 13:48:09 +0900
Masao Mutoh <mu...@hi...> wrote:
> -----
> Gnome.initはRuby/GNOMEライブラリの初期化を行うと同時に引数の解析も行います。
> Ruby/GNOMEライブラリの初期化を行うために、Ruby/GNOMEアプリケーションでは
> 一番最初に必ず呼び出す必要があります。
> #sample/gnome-init-popt.rbにサンプルを追加しておきましたので
> #そちらもご参照ください。
>
> サンプルコード:
> ----
> options = [
> ["label", 'l', Gnome::POPT_ARG_STRING, "Hello World", "Set button label", "label"],
> ["width", 'w', Gnome::POPT_ARG_INT, 300, "Set window width", "width"],
> ["height", 'h', Gnome::POPT_ARG_INT, 200, "Set window height", "height"],
> ["border", 'b', Gnome::POPT_ARG_NONE, nil, "Remove window border"]
> ]
>
> args = Gnome.init("gnome-init-popt", "1.0", options)
戻り値のことを書くのを忘れてました(^^;)。
戻り値には2種類あります。1つはオプション名付き(上記で指定した)もので--label=argという
形で呼び出すもの、もう1つはオプション指定無しで呼び出すものです。
例えば、上の例ですと、
ruby test.rb --label="Hello World" hoge fuga
のような感じで --label="Hello World"が前者、hoge, fugaが後者になります。
で、optionsで指定したものに関しては、argsをHashとしてそのまま使うことができます。
label = args["label"]
この場合、長い名称がキーとして使われます。
次に、hogeのようなオプション指定無しのものはargsというキーに配列としてまとめられます。
others = args["args"] #=> ["hoge", "fuga"]
したがって、各アプリケーションは"args"という引数を使うことはできませんので注意して
ください。
なお、argsはGnome::POPT_ARGSという定数値になっていますので上記は、
others = args[Gnome::POPT_ARGS]
と書くことができます。なるべくこちらの形を使うようにしてください。
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Masao M. <mu...@hi...> - 2002-07-23 04:48:13
|
むとうです。
On Thu, 11 Jul 2002 23:44:11 +0900
Masao Mutoh <mu...@hi...> wrote:
> むとうです。
>
> ruby-gnome-users-enの方でMatthias Veitさんから
> 指摘されたのですが
> 現在、Ruby-GNOMEでは引数を取ることができません。
(略)
> とはいえ、Ruby/GNOMEを使ったアプリケーションはまだまだ少ないと
> 思いますし、引数を受け付けることができないというのはかなり深刻な
> 問題だと思います。
>
> 私自身は、思いっきり互換性を無視して直してしまうべきか、
> Ruby/GNOME2で対応すべきかというところで揺れていますが
> どうしたもんでしょうか....。
特に反対意見が出ませんでしたので、互換性を無視してRuby/GNOMEで
対応することにしました。
すでにRuby/GNOMEを用いたアプリケーションを開発している方は、
次の正式リリースから、アプリケーションの先頭にGnome.init文を挿入する
必要があります。
Gnome.init("アプリケーション名","アプリケーションのバージョン")
-----
Gnome.initはRuby/GNOMEライブラリの初期化を行うと同時に引数の解析も行います。
Ruby/GNOMEライブラリの初期化を行うために、Ruby/GNOMEアプリケーションでは
一番最初に必ず呼び出す必要があります。
#sample/gnome-init-popt.rbにサンプルを追加しておきましたので
#そちらもご参照ください。
サンプルコード:
----
options = [
["label", 'l', Gnome::POPT_ARG_STRING, "Hello World", "Set button label", "label"],
["width", 'w', Gnome::POPT_ARG_INT, 300, "Set window width", "width"],
["height", 'h', Gnome::POPT_ARG_INT, 200, "Set window height", "height"],
["border", 'b', Gnome::POPT_ARG_NONE, nil, "Remove window border"]
]
args = Gnome.init("gnome-init-popt", "1.0", options)
----
注意点は以下の通りです。
1. Gnome.initは常に一番最初に呼び出されなければならない
gnomeモジュール内のあらゆるメソッドより先に1度だけ呼び出す必要があります。
2. 第1引数はアプリケーション名称、第2引数はアプリケーションのバージョン
3. optionsは以下の書式です。必須ではありません。
[長い名称, 1文字の名称, 種類, デフォルト値, 長い説明, 短い説明]
(1)長い名称 ・・・ --長い名称 という形で使います。 --label=hello
(2)1文字の名称 ・・・ -短い名称 という形で使います。 -l hello
(3)種類 ・・・ 以下の3種類を使うことができます。
Gnome::POPT_ARG_STRING ・・・ 文字列 --label=hello
Gnome::POPT_ARG_INT ・・・ 数値 --width=100
Gnome::POPT_ARG_NONE ・・・なし --border
(4)デフォルト値 ・・・ ユーザが起動時に指定しなかった場合のデフォルト値を
指定します。
Gnome::POPT_ARG_NONEの場合は省略可能です。
(5)長い説明 ・・・ --helpでヘルプを表示したときの説明文になります(省略可)。
(6)短い説明 ・・・ --helpでヘルプを表示したときの右辺値になります(省略可)。
これらは、--helpオプションでアプリケーションを呼び出したときに以下のようになります。
gnome-init-popt オプション
-l, --label=label Set button label
-w, --width=width Set window width
-h, --height=height Set window height
-b, --border Remove window border
つまり、
アプリケーション名称 オプション
-1文字の名称, --長い名称=短い説明 長い説明
という感じです。
特に長い説明は国際化されていることが望ましいですが、ひとまずは
英語で書いておくだけでも良いでしょう。
バグレポート等、お待ちしております(^^;)。
それでは。
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Masao M. <mu...@hi...> - 2002-07-16 12:31:44
|
むとうです。 ReplyはTo(Reply Allではなく)でお願いしますね。 #なんか2通(1通は個人宛(^^;))ずつ来るんですよね、 #西澤さんのメール(^^;)。 On Tue, 16 Jul 2002 21:14:18 +0900 Seiya Nishizawa <se...@ku...> wrote: > 西澤です。 > 勉強不足がばれます。 > 納得致しました。 > どうもありがとうございます。 いやいや、正直、GTK+/GDKでこのレイヤをやろうとする方は少ないと 思いますよ(^^;)。ましてRuby/GTKでは(^^;)。 余談ですが、 さらに、なぜ、カラーをカラーマップにアロケートする必要が あるのかと言ったことまで興味がおありでしたら、 是非、Xlib, あるいはX Window Systemそのものの勉強をして みてください。 #そして、私に教えていただけるとものすごく助かります。 #実は私もその辺のこと詳しくありませんので(<-他力本願(^^;))。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Seiya N. <se...@ku...> - 2002-07-16 12:14:26
|
西澤です。 > > それならばと 直接 Gdk::Pixmap をつくろうと > > Gdk::Pixmap.create_from_data > > を使おうとしました。depth を24として作ったのですが真っ黒になります。 > > 当然 depth が 24 以外だと前と同じエラーとなります。 > > なんだか根本的に理解が間違っているような気がしますが。 > > おぉ。Gdk::Pixmap.create_from_data()の存在を忘れていました(^^;)。 > > GDKレベルでは、生成したGdk::Colorはそのままでは使えません。カラーマップに > アロケートする必要があります(Gdk::Colormap.alloc_colorする)。 > #GTKでは各Widgetがその内部でGdk::Colormap.alloc_colorしているため、 > #ユーザは意識しないで済むようになっています。 なるほど。 勉強不足がばれます。 納得致しました。 どうもありがとうございます。 ---------- Seiya Nishizawa se...@ku... |
|
From: Masao M. <mu...@hi...> - 2002-07-16 12:00:31
|
むとうです。
On Tue, 16 Jul 2002 20:22:11 +0900
Seiya Nishizawa <se...@ku...> wrote:
> 西澤です。
>
> > > Gdk-ERROR **: BadMatch (invalid parameter attributes)
> > > serial 156 error_code 8 request_code 62 minor_code 0
> それならばと 直接 Gdk::Pixmap をつくろうと
> Gdk::Pixmap.create_from_data
> を使おうとしました。depth を24として作ったのですが真っ黒になります。
> 当然 depth が 24 以外だと前と同じエラーとなります。
> なんだか根本的に理解が間違っているような気がしますが。
おぉ。Gdk::Pixmap.create_from_data()の存在を忘れていました(^^;)。
GDKレベルでは、生成したGdk::Colorはそのままでは使えません。カラーマップに
アロケートする必要があります(Gdk::Colormap.alloc_colorする)。
#GTKでは各Widgetがその内部でGdk::Colormap.alloc_colorしているため、
#ユーザは意識しないで済むようになっています。
つまり、以下のようにします。
require "gtk"
data = [
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x3f, 0x00, 0xe0, 0x78, 0x00, 0xe0, 0x70, 0x00, 0xe0, 0x70, 0x00,
0xe0, 0x38, 0x00, 0xe0, 0x1f, 0x00, 0xe0, 0x1d, 0x00, 0xe0, 0x38, 0x00,
0xe0, 0x78, 0x00, 0xe0, 0xf0, 0x00, 0xf0, 0xf3, 0x01, 0xf0, 0xe3, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].pack("c*")
window = Gtk::Window.new
window.set_usize(28,24)
window.set_app_paintable(true)
window.realize
red = Gdk::Color.new(65535, 0, 0)
green = Gdk::Color.new(0, 65535, 0)
colormap = Gdk::Colormap.get_system
colormap.alloc_color(red, false, true) #ここがポイント!
colormap.alloc_color(green, false, true) #ここも
pixmap = Gdk::Pixmap.create_from_data(window.window, data, 24, 20, 24, red, green)
gc = Gdk::GC.new(window.window)
window.signal_connect("expose_event"){|widget, evt|
widget.window.draw_pixmap(gc, pixmap, 0, 0, 2, 2, -1, -1)
}
window.show_all
Gtk.main
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Seiya N. <se...@ku...> - 2002-07-16 11:22:28
|
西澤です。
> > Gdk-ERROR **: BadMatch (invalid parameter attributes)
> > serial 156 error_code 8 request_code 62 minor_code 0
> で、通常はdepthが等しいモノ同士でないと一緒に描画とかはできません。
> depthが異なる2つのdrawableを1つにしようとするとXlibで言うところ
> のXCopyPlane()が必要となると思うのですが、GTK+/GDKではこれに相当する
> メソッドが定義されていないようです。
なるほど納得です。
> 個人的にはGdk::Bitmapをマスク以外の目的で使用するのはお奨めしませんが
> あえてというのであれば、以下のような使い方はいかがでしょうか。
> 強引にマスクでビットマップを表現するというアイデアです。
それならばと 直接 Gdk::Pixmap をつくろうと
Gdk::Pixmap.create_from_data
を使おうとしました。depth を24として作ったのですが真っ黒になります。
当然 depth が 24 以外だと前と同じエラーとなります。
なんだか根本的に理解が間違っているような気がしますが。
お手数をお掛けしてすいません。
------------------------
require "gtk"
data = [
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x3f, 0x00, 0xe0, 0x78, 0x00, 0xe0, 0x70, 0x00, 0xe0, 0x70, 0x00,
0xe0, 0x38, 0x00, 0xe0, 0x1f, 0x00, 0xe0, 0x1d, 0x00, 0xe0, 0x38, 0x00,
0xe0, 0x78, 0x00, 0xe0, 0xf0, 0x00, 0xf0, 0xf3, 0x01, 0xf0, 0xe3, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].pack("c*")
window = Gtk::Window.new
window.set_usize(28,24)
window.set_app_paintable(true)
window.realize
pixmap = Gdk::Pixmap.create_from_data(window.window, data, 24, 20, 24,
Gdk::Color.new(0,0,65535), Gdk::Color.new(65535,0,0) )
gc = Gdk::GC.new(window.window)
window.signal_connect("expose_event"){|widget, evt|
widget.window.draw_pixmap(gc, pixmap, 0, 0, 2, 2, -1, -1)
}
window.show_all
Gtk.main
----------------------
----------
Seiya Nishizawa
se...@ku...
|
|
From: Masao M. <mu...@hi...> - 2002-07-15 16:43:14
|
むとうです。 On Mon, 15 Jul 2002 03:31:35 +0900 Masahiro Sakai <s01...@sf...> wrote: > From: Masao Mutoh <mu...@hi...> > Subject: [ruby-gnome-users-ja] Ruby/GNOMEの呼び出し時の引数 > Date: Thu, 11 Jul 2002 23:44:11 +0900 > > > これの解決策として、gnome_initを外出しにして > > 以下のようにするしかないと思っています。 > > そういえば、libgimpuiではgimp_ui_init()という関数をgtk_init()の代わり > に呼び出すことになっているのですが、Ruby/GtkとGimp-Rubyの組合わせだと、 > gimpui.soがgimp_ui_init()を呼び出す前に、gtk.soがgtk_init()を呼び出し > てしまってあまり嬉しくない事になるという事がありました。 なるほど。 ソースを見ていないでこういうこというのもなんですが、嬉しくないなりに うまい解決策ってのがあったのでしょうか。それとも、何か制限があるとか? > PS: > Gimp-Rubyですが、一人でいじっているのにも飽きたので、 > 誰か一緒にやりませんか? じゃ、私が。といいたいところですが、もう首が回りません(^^;)。 #っていうかすでに回っていないという説も... Ruby/GTKが必ず必要と言うことでしたら、Ruby-GNOMEに入れてしまうとか? #入れすぎ?(^^;) それでは。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-07-15 16:38:49
|
むとうです。こんばんわ。
On Mon, 15 Jul 2002 11:19:45 +0900
Seiya Nishizawa <se...@ku...> wrote:
> 西澤と申します。
>
> 質問で申し訳ないのですが
> Gdk::Bitmap.create_from_data
> を使おうと思ったのですがうまく行きません。
>
> そもそも使い方が間違っているのでしょうか。
> 以下にサンプルと実行結果をつけておきます。
> なにかお気づきの点がありましたらアドバイスをいただけたらうれしいのですが。
> よろしくお願いします。
実は私も詳しくないのですが....(^^;)。
> bitmap = Gdk::Bitmap.create_from_data(window.window, data, 24, 20 )
> gc = Gdk::GC.new(window.window)
>
> window.signal_connect("expose_event"){|widget, evt|
> widget.window.draw_pixmap(gc, bitmap, 0, 0, 2, 2, -1, -1)
> }
>
> Gdk-ERROR **: BadMatch (invalid parameter attributes)
> serial 156 error_code 8 request_code 62 minor_code 0
簡単に言うと、このエラーはwindow.window(Gdk::Window)と
bitmap(Gdk::Bitmap)のdepth(1ピクセルあたりの色の深さ)が
異なるから出ていると思います。前者が24や32で、後者の場合は1です。
で、通常はdepthが等しいモノ同士でないと一緒に描画とかはできません。
depthが異なる2つのdrawableを1つにしようとするとXlibで言うところ
のXCopyPlane()が必要となると思うのですが、GTK+/GDKではこれに相当する
メソッドが定義されていないようです。
似たようなメソッドにgdk_window_copy_area()があるのですが、
2つのGdk::Window(Gdk::DrawableではないのでPixmap/Bitmapは使えない)
で、かつ、同じdepthである必要があります。
#詳しくはman XCopyPlaneしてみてください。
つまり、depthという制限の多さからGdk::Bitmapを
Gdk::Pixmapと同じように使うことはできません。
そういった意味ではGdk::PixmapのサブクラスがGdk::Bitmapというのは
ちょっとまずいような気もしてきました。
でも、Gdk::Pixmapのdepthが1になったものがGdk::Bitmapなんですよね。
ものすごく制限されたGdk::PixmapがGdk::Bitmapであると考えれば
それもありか....難しい。
個人的にはGdk::Bitmapをマスク以外の目的で使用するのはお奨めしませんが
あえてというのであれば、以下のような使い方はいかがでしょうか。
強引にマスクでビットマップを表現するというアイデアです。
他に良いアイデアありますかね。
くわがたさんあたりが詳しそうですが、とフッてみたり(^^;)。
#私の解釈自体が間違えてたりしそうな気もするのでちょっと
#不安だったりしますので間違えてたらご指摘ください。
----------------
require "gtk"
data = [
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x3f, 0x00, 0xe0, 0x78, 0x00, 0xe0, 0x70, 0x00, 0xe0, 0x70, 0x00,
0xe0, 0x38, 0x00, 0xe0, 0x1f, 0x00, 0xe0, 0x1d, 0x00, 0xe0, 0x38, 0x00,
0xe0, 0x78, 0x00, 0xe0, 0xf0, 0x00, 0xf0, 0xf3, 0x01, 0xf0, 0xe3, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].pack("c*")
str = data.unpack("b*")[0]
n=24
for i in 0..str.length/n
print str[i*n..(i+1)*n-1],"\n"
end
window = Gtk::Window.new
window.set_usize(28,24)
window.set_app_paintable(true)
window.realize
red = Gdk::Color.new(65535, 0, 0)
colormap = Gdk::Colormap.get_system
colormap.alloc_color(red, false, true)
pix = Gdk::Pixmap.new(window.window, *window.window.get_geometry[2..4])
bit = Gdk::Bitmap.create_from_data(window.window, data, 24, 20)
gc = Gdk::GC.new(pix)
gc.set_foreground(red)
pix.draw_rectangle(gc, true, *window.window.get_geometry[0..3])
pixmap = Gtk::Pixmap.new(pix, bit)
window.add(pixmap)
window.show_all
Gtk.main
----------------
>
> P.S
> このメーリングリストってこのような質問をしても良い場なのでしょうか。
良いですよ。ただし、誰からも返答が無い場合もあるでしょうし、
今回のように解決できないかもしれませんが:->。
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Seiya N. <se...@ku...> - 2002-07-15 02:19:54
|
西澤と申します。
質問で申し訳ないのですが
Gdk::Bitmap.create_from_data
を使おうと思ったのですがうまく行きません。
そもそも使い方が間違っているのでしょうか。
以下にサンプルと実行結果をつけておきます。
なにかお気づきの点がありましたらアドバイスをいただけたらうれしいのですが。
よろしくお願いします。
%cat test.rb
require "gtk"
data = [
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x3f, 0x00, 0xe0, 0x78, 0x00, 0xe0, 0x70, 0x00, 0xe0, 0x70, 0x00,
0xe0, 0x38, 0x00, 0xe0, 0x1f, 0x00, 0xe0, 0x1d, 0x00, 0xe0, 0x38, 0x00,
0xe0, 0x78, 0x00, 0xe0, 0xf0, 0x00, 0xf0, 0xf3, 0x01, 0xf0, 0xe3, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].pack("c*")
str = data.unpack("b*")[0]
n=24
for i in 0..str.length/n
print str[i*n..(i+1)*n-1],"\n"
end
window = Gtk::Window.new
window.set_usize(28,24)
window.set_app_paintable(true)
window.realize
bitmap = Gdk::Bitmap.create_from_data(window.window, data, 24, 20 )
gc = Gdk::GC.new(window.window)
window.signal_connect("expose_event"){|widget, evt|
widget.window.draw_pixmap(gc, bitmap, 0, 0, 2, 2, -1, -1)
}
window.show_all
Gtk.main
%ruby test.rb
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000011111111110000000000
000001110001111000000000
000001110000111000000000
000001110000111000000000
000001110001110000000000
000001111111100000000000
000001111011100000000000
000001110001110000000000
000001110001111000000000
000001110000111100000000
000011111100111110000000
000011111100011110000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
Gdk-ERROR **: BadMatch (invalid parameter attributes)
serial 156 error_code 8 request_code 62 minor_code 0
P.S
このメーリングリストってこのような質問をしても良い場なのでしょうか。
----------
Seiya Nishizawa
se...@ku...
|
|
From: Masahiro S. <s01...@sf...> - 2002-07-14 18:31:41
|
From: Masao Mutoh <mu...@hi...> Subject: [ruby-gnome-users-ja] Ruby/GNOMEの呼び出し時の引数 Date: Thu, 11 Jul 2002 23:44:11 +0900 > これの解決策として、gnome_initを外出しにして > 以下のようにするしかないと思っています。 そういえば、libgimpuiではgimp_ui_init()という関数をgtk_init()の代わり に呼び出すことになっているのですが、Ruby/GtkとGimp-Rubyの組合わせだと、 gimpui.soがgimp_ui_init()を呼び出す前に、gtk.soがgtk_init()を呼び出し てしまってあまり嬉しくない事になるという事がありました。 とりあえず参考までに。 PS: Gimp-Rubyですが、一人でいじっているのにも飽きたので、 誰か一緒にやりませんか? -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-07-11 14:44:16
|
むとうです。
ruby-gnome-users-enの方でMatthias Veitさんから
指摘されたのですが
現在、Ruby-GNOMEでは引数を取ることができません。
> test.rb
> ---------------------------------------
> require 'gnome'
> Gtk::Window.new.set_title(ARGV[0]).show
> Gtk.main
> ---------------------------------------
> $ruby test.rb --hoge #->勝手にエラー出力してしまう
これの解決策として、gnome_initを外出しにして
以下のようにするしかないと思っています。
#もし、他に良い案があったら教えてください。
-----------
require 'gnome'
options = [
['foo','f',Gnome::POPT_ARG_NONE, .... ]
['bar','b',Gnome::POPT_ARG_STRING, .... ]]
args = Gnome.init("ApplicationName", "1.0", options) #<- ここ!
Gtk::Window.new.set_title(args['bar']).show
...
Gtk.main
-----------
ただし、これをやってしまうと現状のRuby/GNOMEを使った
アプリケーション全てに修正が必要となってしまいます。
とはいえ、Ruby/GNOMEを使ったアプリケーションはまだまだ少ないと
思いますし、引数を受け付けることができないというのはかなり深刻な
問題だと思います。
私自身は、思いっきり互換性を無視して直してしまうべきか、
Ruby/GNOME2で対応すべきかというところで揺れていますが
どうしたもんでしょうか....。
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Masao M. <mu...@hi...> - 2002-07-04 14:12:44
|
むとうです。 On Thu, 4 Jul 2002 12:44:14 +0900 WATANABE Hirofumi <eb...@os...> wrote: > わたなべです。 > 今回は > GTK+ for Windows 2000-12-26版 > GTK+ for Windows 2002-03-10版 > をそれぞれCygwin, MinGW版で > GTK+ version 1.2.10 for X > をCygwinで試したので大丈夫だと思います。 > #実はそれぞれ1.6.7, 1.7.2で試したので更に倍。 これだけ多くの環境で試すのはさぞかし大変だったでしょう(^^;)。 どうもありがとうございました。 ちなみにRuby-GNOME2の方にもひとまず同じ修正を入れました。 #もちろん使えるかどうかは不明ですが。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: WATANABE H. <eb...@os...> - 2002-07-04 03:44:33
|
わたなべです。 Masao Mutoh <mu...@hi...> writes: :> というわけで、CVSからの差分です。これでCygwin版Xベースの :> glib 1.2.10, gtk+ 1.2.10でもokです。 : :ありがとうございます。助かります。 :CVSの方に反映しときましたのでご確認ください。 すみません。またしてもチェックが甘かったようです。 今回は GTK+ for Windows 2000-12-26版 GTK+ for Windows 2002-03-10版 をそれぞれCygwin, MinGW版で GTK+ version 1.2.10 for X をCygwinで試したので大丈夫だと思います。 #実はそれぞれ1.6.7, 1.7.2で試したので更に倍。 Index: src/rbgtk.h =================================================================== RCS file: /cvsroot/ruby-gnome/ruby-gnome/gtk/src/rbgtk.h,v retrieving revision 1.17 diff -u -1 -r1.17 rbgtk.h --- src/rbgtk.h 3 Jul 2002 13:48:40 -0000 1.17 +++ src/rbgtk.h 4 Jul 2002 02:24:54 -0000 @@ -23,2 +23,5 @@ #elif defined G_OS_WIN32 +# if !defined HWND_DESKTOP +# define HWND_DESKTOP 0 +# endif # define GDK_ROOT_WINDOW() ((guint32) HWND_DESKTOP) |