[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>

5.5 です。

22 messages 2008/03/04

[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

11 messages 2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない? — Kazuhiro NISHIYAMA <zn@...> 2008/03/17

西山和広です。

[ruby-list:44800] [ANN] update Ruby/Tk for Ruby(1.9|1.8) and Tcl/Tk8.5

From: Hidetoshi NAGAI <nagai@...>
Date: 2008-03-29 07:02:10 UTC
List: ruby-list #44800
永井@知能.九工大です.

Ruby/Tk の更新を trunk と ruby_1_8 とに commit しました.
今回の更新で,Ruby 1.9 でもほとんど問題なく Ruby/Tk が
動くようになったのではないかと思います.
今回の修正では,正式に Tcl/Tk8.5 をサポートしたつもりです.
それに伴って,変更量は少々大きなものになっています.

# 以前の Ruby 1.8 版との diff を取ると,
# diff ファイルの行数が 20,000 行を越えています.(^_^;

ですので,バグが残っている可能性は高いですし,
見落としていいて実装できていない機能というのもあるだろうと思います.
もしバグを見つけたり,実装して欲しい機能があったりした場合は
この ML か ruby-dev ML に送ってください.

# ダイレクトメールは見落とす可能性があるので ML の方が助かるのですが,
# どうしても ML には送りたくないということであれば
# ダイレクトメールでもかまいません.
# その場合は,見落としにくいようなメールのタイトルとなるように
# 工夫していただけますと嬉しいです.
# 要望等を送っていただいた場合にはきちんと返事をするつもりですので,
# 数日待っても返事がない場合には見落としている可能性があります.
# その時にはお手数ですが再送していただけますようお願い致します.

今回の修正の目玉の一つは,「デフォルトで使用するウィジェット集合を
標準の Tk と Ttk (Tile) 拡張との間で切り替え可能」という点です.

通常は,例えば TkButton は標準の Tk ウィジェットである Tk::Button を
指し示すようになっています.
ですが,"Tk.default_widget_set = :Ttk" を呼ぶと,
それ以降は TkButton が Ttk (Tile) ウィジェットの Tk::Tile::TButton を
指し示すようになります.
その後 "Tk.default_widget_set = :Tk" を呼ぶと,
再び標準の Tk ウィジェットを指し示すようになります.
この機能を使えば,以前に作成した Ruby/Tk スクリプトを書き換えずに
デフォルトで Ttk (Tile) ウィジェットを使うようにさせることができます.

もちろん,Tk ウィジェットが持つ属性には,
Ttk ウィジェットがサポートしていないものが存在します.
例えば activeforeground のようにウィジェットの見掛けに影響する属性は
styling engine とは相容れないものがありますので,
サポートされていないケースが多いです.
したがってそのままでは,知らない属性であるとして
例外を生じてしまうことが多いと思われます.

というわけで,今回はちょっと危険な香りのするメソッドを提供しています.
"TkConfigMethod.__set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode)" です.
mode を true として呼ぶと,それ以降,configure メソッドにおいて
知らないオプションを無視するようになります.
これにより別の問題を生じる可能性は当然ありますが,
Ttk ウィジェットで動かせるスクリプトを増やすことができるはずです.

簡単にこの機能を試せるように,今回,
"ttk_wrapper.rb" というサンプルを追加しました.
"ruby ttk_wrapper.rb -h" とすれば使い方を見ることができます.
例えば,"ruby ttk_wrapper.rb -t blue tkhello.rb" とすれば,
従来から存在する tkhello.rb というサンプルスクリプトを,
Ttk ウィジェットを使うようにして "blue" というテーマで表示させた結果を
得ることができるはずです.

この修正ですが,近くリリースされる予定の ruby 1.8.7 には含まれません.
何とか間に合わせようと頑張ってはいたのですが,
結局,期限に間に合いませんでした.(^_^;
そういうわけで,ruby 1.8 系をご利用の方で使ってみたいと思われた方は
SVN から入手してください.
ext/tk 以下をまるまる入れ替えて make してもらえれば良いと思います.

In This Thread

Prev Next