[ruby-list:41670] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb

From: Hidetoshi NAGAI <nagai@...>
Date: 2005-12-06 09:27:24 UTC
List: ruby-list #41670
永井@知能.九工大です.

From: 天野 竜太郎 <wn9r-amn@asahi-net.or.jp>
Subject: [ruby-list:41669] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb
Date: Tue, 6 Dec 2005 15:53:12 +0900
Message-ID: <986548DD-E4CE-4778-937E-4F66A34F4E06@asahi-net.or.jp>
> どのようにすればいいのでしょうか。
> できるだけ具体的指示をお願いします。
> (この部分をこのファイルのx行目以下に貼り付けろ、など)

では,messageBox のみについて対応することを考えるとすると,
demos-jp/widget の末尾で
---------------------------------------------------------
Tk.mainloop
---------------------------------------------------------
と呼んでいる部分の直前に
---------------------------------------------------------
Tk.ip_eval(<<'EOS')
    proc ::tk_messageBox {args} {
        return [eval tk::MessageBox $args]
    }
EOS
---------------------------------------------------------
という記述を加えてみてください.
期待通りであれば,メッセージボックスのデモにおいて,
Aqua 特有のダイアログの代りに,昔からの Tcl/Tk の
メッセージボックスが表示されることになるはずです.

> メニューの項目です。
> 1. メニューとカスケードを含んだウィンドウ
> 2. メニューとカスケードを含んだウィンドウ (Tk8.x 専用)
> 3.                 〃                (機能に対応したバー 
> ジョンのTkが必要)
> のうち、最初の二つは、
> 「Alt-Xを入力すると、Xがメニューにアンダーライン付き 
> で表示されている文字ならば...」
> とあり、
> 3番目のは
> 「Command+X('x'はコマンドキーシンボルに続けて表示されてい 
> る文字です)とタイプ...」
> とあります。1と2に関しては、マック環境でもこのように 
> 表示されて、いいわけですよね。
> 1と2がプラットフォーム判定のif文のミスで、Mac 
> 環境にもかかわらず「Alt-X...」の方の文が出てきているという 
> わけではないですよね。

はい.
1 と 2 は古くに作られたデモであるために,
単に aqua に対応していないというだけです.
1 と 2 での表示メッセージ決定部分は
------------------------------------------------------
  if $tk_platform['platform'] == 'macintosh'
------------------------------------------------------
という判定になっており,3 では
------------------------------------------------------
  if $tk_platform['platform'] == 'macintosh' ||
      windowingsystem == "classic" || windowingsystem == "aqua"
------------------------------------------------------
となっています.
紛らわしいので,本来なら 3 に揃えた方がいいのでしょうね.
念のための確認として,Aqua では
--------------------------------------------------
ruby -r tk -e 'p $tk_platform["platform"]'
--------------------------------------------------
が何を返すか教えていただけると助かります.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread