mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
976124788e
bug on platform specific dialogs of Tcl/Tk Aqua on MacOS X. * ext/tk/tcltklib.c: fix bug on switching threads and waiting on the deleted interpreter on vwait and tkwait command. * ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk interpreter. * ext/tk/sample/demos-jp/image3.rb: [bug fix] wrong argument. * ext/tk/sample/demos-en/image3.rb: ditto. * ext/tk/sample/demos-jp/menu.rb: fix message for MacOS X. * ext/tk/sample/demos-jp/menu8x.rb: ditto. * ext/tk/sample/demos-en/menu.rb: ditto. * ext/tk/sample/demos-jp/widget; update version-info. * ext/tk/sample/demos-en/widget; ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
67 lines
2 KiB
Text
67 lines
2 KiB
Text
|
|
*** for MacOS X Aqua (Tcl/Tk Aqua) users ***
|
|
|
|
First of all, please read README.tcltklib to use Tcl/Tk Aqua Framework.
|
|
|
|
With Tcl/Tk Aqua libraries, current tcltklib somtimes freezes when
|
|
using Aqua specific dialogs (e.g. Tk.messageBox).
|
|
This is a known bug of Ruby-1.8.4 release.
|
|
|
|
When you meet the trouble on your GUI, you'll be able to avoid the trouble
|
|
by Tcl/Tk's traditional dialogs.
|
|
If you want to do that, please call some of the following bits of script
|
|
after "reqruie 'tk'".
|
|
|
|
=================================================================
|
|
# use a traditional dialog for Tk.chooseColor()
|
|
Tk.ip_eval(<<'EOS')
|
|
proc ::tk_chooseColor {args} {
|
|
return [eval tk::dialog::color:: $args]
|
|
}
|
|
EOS
|
|
|
|
# use a traditional dialog for Tk.getOpenFile() and Tk.getMultipleOpenFile()
|
|
Tk.ip_eval(<<'EOS')
|
|
proc ::tk_getOpenFile {args} {
|
|
if {$::tk_strictMotif} {
|
|
return [eval tk::MotifFDialog open $args]
|
|
} else {
|
|
return [eval ::tk::dialog::file:: open $args]
|
|
}
|
|
}
|
|
EOS
|
|
|
|
# use a traditional dialog for Tk.getSaveFile() and Tk.getMultipleSaveFile()
|
|
Tk.ip_eval(<<'EOS')
|
|
proc ::tk_getSaveFile {args} {
|
|
if {$::tk_strictMotif} {
|
|
return [eval tk::MotifFDialog save $args]
|
|
} else {
|
|
return [eval ::tk::dialog::file:: save $args]
|
|
}
|
|
}
|
|
EOS
|
|
|
|
# use a traditional dialog for Tk.messageBox()
|
|
Tk.ip_eval(<<'EOS')
|
|
proc ::tk_messageBox {args} {
|
|
return [eval tk::MessageBox $args]
|
|
}
|
|
EOS
|
|
|
|
# use a traditional dialog for Tk.chooseDirectory()
|
|
Tk.ip_eval(<<'EOS')
|
|
proc ::tk_chooseDirectory {args} {
|
|
return [eval ::tk::dialog::file::chooseDir:: $args]
|
|
}
|
|
EOS
|
|
=================================================================
|
|
|
|
Each of them replaces the platform specific dialog command to the
|
|
traditional one.
|
|
|
|
If you use some MultiTkIp objects, probably, you'll have to call the
|
|
bits of script for each MultiTkIp object.
|
|
|
|
--
|
|
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|