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

From: 天野 竜太郎 <wn9r-amn@...>
Date: 2005-12-02 12:25:22 UTC
List: ruby-list #41637
8.4.10のtcl.hやtk.hは、
/Library/Frameworks/Tk.framework/Versions/8.4/Headers/tk.h
/Library/Frameworks/Tcl.framework/Versions/8.4/Headers/tcl.h
です。

$ ls -l /Library/Frameworks/Tk.framework/ /Library/Frameworks/ 
Tcl.framework/
/Library/Frameworks/Tcl.framework/:
total 64
lrwxr-xr-x   1 root  admin   24 12  1 14:49 Headers@ -> Versions/ 
Current/Headers
lrwxr-xr-x   1 root  admin   31 12  1 14:49 PrivateHeaders@ ->  
Versions/Current/PrivateHeaders
lrwxr-xr-x   1 root  admin   26 12  1 14:49 Resources@ -> Versions/ 
Current/Resources
lrwxr-xr-x   1 root  admin   20 12  1 14:49 Tcl@ -> Versions/Current/Tcl
drwxr-xr-x   5 root  admin  170 12  1 14:50 Versions/
lrwxr-xr-x   1 root  admin   28 12  1 14:49 libtclstub8.4.a@ ->  
Versions/8.4/libtclstub8.4.a
lrwxr-xr-x   1 root  admin   29 12  1 14:49 libtclstub8.4g.a@ ->  
Versions/8.4/libtclstub8.4g.a
lrwxr-xr-x   1 root  admin   28 12  1 14:50 libtclstub8.5.a@ ->  
Versions/8.5/libtclstub8.5.a
lrwxr-xr-x   1 root  admin   29 12  1 14:49 tclConfig.sh@ -> Versions/ 
Current/tclConfig.sh

/Library/Frameworks/Tk.framework/:
total 64
lrwxr-xr-x   1 root  admin   24 12  1 14:49 Headers@ -> Versions/ 
Current/Headers
lrwxr-xr-x   1 root  admin   31 12  1 14:49 PrivateHeaders@ ->  
Versions/Current/PrivateHeaders
lrwxr-xr-x   1 root  admin   26 12  1 14:49 Resources@ -> Versions/ 
Current/Resources
lrwxr-xr-x   1 root  admin   19 12  1 14:49 Tk@ -> Versions/Current/Tk
drwxr-xr-x   6 root  admin  204 12  1 14:50 Versions/
lrwxr-xr-x   1 root  admin   27 12  1 14:49 libtkstub8.4.a@ ->  
Versions/8.4/libtkstub8.4.a
lrwxr-xr-x   1 root  admin   28 12  1 14:49 libtkstub8.4g.a@ ->  
Versions/8.4/libtkstub8.4g.a
lrwxr-xr-x   1 root  admin   27 12  1 14:50 libtkstub8.5.a@ ->  
Versions/8.5/libtkstub8.5.a
lrwxr-xr-x   1 root  admin   28 12  1 14:49 tkConfig.sh@ -> Versions/ 
Current/tkConfig.sh


 >パッチをあてずに ./configure --enable-pthread --enable-tcltk- 
framework
 >( --enable-macosx-aqua は付けない) とした場合でも
 >問題なく動作するでしょうか?
問題ありませんでした。8.4.10のほうとリンクされました。

 >エラーメッセージもなくメニュー部分だけが出ない
 >ということでしょうか?
「このウィンドウは様々なメニューとカスケードメニューから構成され 
ています。..」
という文章と、その下に「閉じる」、「コード参照」のボタンがあるだ 
けです。
ウィンドウを拡大しても何も出てきません。

 >単純な例ですが,以下でも出ませんか?
---------------------------------------------
require 'tk'
top = TkToplevel.new
m = TkMenu.new(top, :tearoff=>false)
m.add(:command, :label=>'hoge', :command=>proc{p 'hoge'})
top.menu(m)
Tk.mainloop
---------------------------------------------
何もない空のウィンドウが二つ出てきます。
ファイル名をtk.rbにしていますが、tk.rbとw00000 
という2つのウィンドウです。

 > ダイアログウィンドウ
 > 1、メッセージボックス
 > いくつかボタンを押していると操作不能になり強
 > 制終了しかなくなる。
これは、デフォルトでは、infoとokが選択されています 
が、ここで「メッセージボックス」ボタンを押すと「これ 
は"ok"という種類のメッセージボックスで"info"のアイコ 
ンが...」というダイアログウィンドウが出てOKを押すと 
確認のダイアログが出ますが、そこでもう一度OKを押す。ここま 
では問題ありません。
そこで今度は、アイコンをerror、種類を 
abortretryignoreに変えて「メッセージボックス」ボタンを押すとダイ 
アログが出てきてここで固まります。
これはアイコンや種類を別のものに変えても同じく固まります。
また最初の段階ですぐにinfoやokを別のものに変えて 
「メーセージボックス」を押すと、最初のダイアログが出てきて、 
OKを押して確認のダイアログウィンドウが出てきた時点で固まります。
あと出てくるアイコンがそれにふさわしいものになるのだと思うのです 
が、なっていません。

 > 2、ファイル選択ダイアログ
 > 機能していないと思います。
これはどのように機能するのでしょうか?
例えば、「開く」の方だとBrowseボタンでファイルを選択して 
Openボタンを押すと入力フィールドにフルパス名が出てさらにそのファ 
イルの内容まで開かれるのでしょうか?
フルパス名が出るだけなら問題ありません。
後、Motifボタンは機能しませんが、Macの場合は関係ない 
んですよね。


2点ほど
これはデフォルトのruby-1.8.2+TclTk8.4.7でもそうなのです 
が、ターミナルから
ruby tk.rbやirbからtkウィンドウを作ってもターミナル 
の背面に出てきます。操作するためにターミナルをずらすなどしてク 
リックする必要があります。
10.4で同じようにデフォルトでインストールされているPython  
Tkinterでもそうなるので仕方ないのかもしれませんが、同じようにデ 
フォルトでインストールされているwxPythonは、最初の起動から 
前面に出てきます。
同じように最初から前面に出てくると嬉しいのですが。

日本語入力は、AquaTclTkに頑張ってもらうしかないんですよね。
wxPythonはできるのでうらやましい。


Ryutaro Amano
wn9r-amn@asahi-net.or.jp



In This Thread