[#41630] [ANN] langhelp-0.9.0 — rubikitch@...
るびきちです。
7 messages
2005/12/01
[#41654] Hashを継承したクラスの利用方法について — saitani <cxj15527@...>
お世話になります。
9 messages
2005/12/04
[#41720] Tempfile#== — とみたまさひろ <tommy@...>
とみたです。
5 messages
2005/12/21
[#41728] ruby 1.8.4 released — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
9 messages
2005/12/24
[ruby-list:41665] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb
From:
天野 竜太郎 <wn9r-amn@...>
Date:
2005-12-05 12:56:27 UTC
List:
ruby-list #41665
ruby-list:41651の
>メッセージボックスでは WM_DELETE_WINDOW プロトコルを無視
しています.
>そのため,閉じるボタンが無視されているのは正常です
この「メッセージボックス」を「Message Box Demonstration」
ウィンドウと誤解していました。
>とはいえ,今回の「固まる」という状況は,閉じるボタンによって
>ウィンドウを消した場合でなくても (閉じるボタンには触れず,
>きちんとダイアログ上のボタンをクリックした結果として
>ウィンドウが消えた場合でも) 発生するのですよね?
固まるという状況は普通にラジオボタンをクリックした結果として発生
します。
これまで報告したとおりです。
また既述の通り、AquaTclTkのwidgetは固まりません。
以下に詳細を。
私が「生きている」と言ったのは、
widgetの「ダイアログウィンドウ」の「1、メッセージボックス」をク
リックして出てくる「Message Box Demonstration」ウィンドウ
の「閉じるボタン」が生きているという意味でした。
「Message Box Demonstration」ウィンドウの「メッセージボッ
クス」ボタンを押して出てくる「これはOKという種類のメッセー
ジボックスで、"info"という種類のアイコンが表示されていま
す。」という種類のダイアログにはそもそも最初から「閉じる」、「最
小化」、「最大化」のボタンはついていません。そしてそのダイアログ
上の「OK」ボタンを押して出てくる「あなたは"ok"を押し
ましたね」というダイアログにも、「閉じる」、「最小化」、「最大
化」のボタンは付いていません。
この二つのダイアログは、どちらも「Message Box
Demonstration」ウィンドウのタイトル部分からにょきっという感じで
出てくるSheet風のダイアログで、OSXになってからできた
タイプのもので、それ以前のOS9のMacソフトには存在して
いませんでした。AquaTclTkなので、OSXのAPIを利
用しているのだと思います。
親ウィンドウの「Message Box Demonstration」ウィンドウと
くっついているので、独立して動かすことはできません。
たぶん、WinやUnixのソフトでこの手のダイアログはない
ので、ちょっと説明しにくいのですが。
ただ、この部分は、AquaTclTk側にも問題があるのかもしれませ
ん。
/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Scripts/demos/
widget
において、Common DialogのMessage Boxesを実行して
Message Box Demonstrationの「Message Box」ボタンを押して、
「Thisi si a "ok" type message box with the "info" icon」
という確認Sheetが出てきた状態で、Message Box
Demonstrationウィンドウのタイトルバーの部分をマウスでドラッグし
て動かすことができません。
これはこの場面で、OKボタンを押して出てくる次のSheet(You
have selected "ok")でも同じです。
通常のMac OSXソフトではこの手のSheetダイアログが出て
きた場面では親ウィンドウのタイトルバーをマウスでドラッグして動か
すことができます。
アップル純正の「テキストエディット」もそうです。
それなのに、AquaTclTkのwidgetでドラッグできないとい
うのは、問題かもしれません。
というわけで「閉じるボタン」に関しては私の勘違いでしたが、
ruby-list:41658のpatchを当てても、固まることに変わりなしで
した。
あと、最初のラベル、ボタン、チェックボタン、ラジオボタンの
13番
13,画像を見るための簡単なユーザーインターフェイス(機能に対応し
たバージョンのTkが必要)
ですが、「ディレクトリ選択」ボタンをクリックするとエラーになりま
す。
------------------------------------------------------------------------
------
RuntimeError: bad directory "v00003"
---< backtrace of Ruby side >-----
/usr/local/lib/ruby/1.8/tk.rb:2252:in `__invoke'
/usr/local/lib/ruby/1.8/tk.rb:2252:in `_invoke'
/usr/local/lib/ruby/1.8/tk.rb:1676:in `_ip_invoke_core'
/usr/local/lib/ruby/1.8/tk.rb:1710:in `_tk_call_core'
/usr/local/lib/ruby/1.8/tk.rb:1734:in `tk_call'
/usr/local/lib/ruby/1.8/tk.rb:1640:in `chooseDirectory'
mysrc/ruby-1.8.4/ext/tk/sample/demos-jp/widget:593:in
`selectAndLoadDir3'
mysrc/ruby-1.8.4/ext/tk/sample/demos-jp/widget:664:in `_null_binding'
/usr/local/lib/ruby/1.8/tk.rb:1187:in `cb_eval'
/usr/local/lib/ruby/1.8/tk.rb:1138:in `call'
/usr/local/lib/ruby/1.8/tk.rb:1304:in `callback'
/usr/local/lib/ruby/1.8/tk.rb:1303:in `callback'
/usr/local/lib/ruby/1.8/tk.rb:1537:in `mainloop'
mysrc/ruby-1.8.4/ext/tk/sample/demos-jp/widget:888
---< backtrace of Tk side >-------
invoked from within
"rb_out c00023"
invoked from within
".w00024.w00030.w00035 invoke"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list $w invoke]"
(procedure "tk::ButtonUp" line 23)
invoked from within
"tk::ButtonUp .w00024.w00030.w00035"
(command bound to event)
------------------------------------------------------------------------
----
AquaTclTkの同じサンプルは正常に動作します。
その手前の12番は問題ないです。
Ryutaro Amano
wn9r-amn@asahi-net.or.jp