From: Koji Arai Date: 1999-12-21T23:18:44+09:00 Subject: [ruby-dev:8689] Re: [PATCH] Ruby/Tk 新井です。 >>> From: nagai@dumbo.ai.kyutech.ac.jp >>> Date: 21 Dec 1999 18:29:57 +0900 >>> Subject: [ruby-dev:8681] Re: [PATCH] Ruby/Tk > 永井@知能.九工大です. > JCA02266> どう思います?>永井さん(指名するやつ ^^;) > > 呼ばれてしまった.(^_^) お呼び立てしてすみませんです。ありがとうございます。 > window id については,私も文字列の方が都合が良さそうに感じます. やっぱり。最初「どっちでもいいかぁ、どーせ使わないし」とか思っ ていたら永井さんがembedでwindow idを使った例を出したのでした。 で、永井さんに聞くのが一番いいだろうと・・・(^^; > TkWinfo.visualsavailable の仕様ですが, > Tk が返してくるのはリストのリストですから, > 配列の配列を返すのはいいだろうと思います. Tclはこの辺でよく判断に迷います。 > が,includeids をデフォルトで付けてしまうのは反対です. > というのも,例えば, > % toplevel .t3 -visual {toplevel 16 0x22} > > は error になりますよね. なるほど。visualsavailableはこのように使えるのですか。私は情 報量は多い方がいいだろうという程度でしか考えてませんでした。 > いかがでしょうか? 了解です。以下のようにした追加パッチを付けます。 require "tk" p TkWinfo.visualsavailable Tk.root p TkWinfo.visualsavailable Tk.root, true => [["truecolor", 16]] [["truecolor", 16, "0x22"]] --- ext/tk/lib/tk.rb.old Tue Dec 21 22:44:34 1999 +++ ext/tk/lib/tk.rb Tue Dec 21 23:03:34 1999 @@ -594,7 +594,7 @@ module Tk tk_call 'wm', 'focusmodel', path, *args end def frame - tk_call('wm', 'frame', path).hex + tk_call('wm', 'frame', path) end def geometry(*args) tk_call('wm', 'geometry', path, *args) @@ -1138,7 +1138,7 @@ module TkWinfo TkWinfo.height self end def TkWinfo.id(window) - tk_call('winfo', 'id', window.path).hex + tk_call('winfo', 'id', window.path) end def winfo_id TkWinfo.id self @@ -1292,17 +1292,16 @@ module TkWinfo def winfo_visualid TkWinfo.visualid self end - def TkWinfo.visualsavailable(window) - begin + def TkWinfo.visualsavailable(window, includeids=false) + if includeids v = tk_call('winfo', 'visualsavailable', window.path, "includeids") - rescue RuntimeError - # for Tk4.0 + else v = tk_call('winfo', 'visualsavailable', window.path) end list(v) end - def winfo_visualsavailable - TkWinfo.visualsavailable self + def winfo_visualsavailable(includeids=false) + TkWinfo.visualsavailable self, includeids end def TkWinfo.vrootheight(window) number(tk_call('winfo', 'vrootheight', window.path))