diff --git a/ext/tk/ChangeLog.tkextlib b/ext/tk/ChangeLog.tkextlib index 7eeabaa66c..1f680cea88 100644 --- a/ext/tk/ChangeLog.tkextlib +++ b/ext/tk/ChangeLog.tkextlib @@ -1,3 +1,7 @@ +2004-07-23 Hidetoshi NAGAI + + * add TclX support (partially; infox command and XPG/3 MsgCat only) + 2004-07-15 Hidetoshi NAGAI * bug fix diff --git a/ext/tk/lib/tkextlib/SUPPORT_STATUS b/ext/tk/lib/tkextlib/SUPPORT_STATUS index 81e92a1acf..58744f50ed 100644 --- a/ext/tk/lib/tkextlib/SUPPORT_STATUS +++ b/ext/tk/lib/tkextlib/SUPPORT_STATUS @@ -69,6 +69,10 @@ ICONS http://www.satisoft.com/tcltk/icons/ ==> ICONS IncrTcl http://sf.net/projects/incrTcl ==> itcl, itk +TclX http://sf.net/projects/tclx + ==> tclx (partial support; infox command and + XPG/3 message catalogs only) + TkImg http://sf.net/projects/tkimg ==> tkimg TkTreeCtrl http://tktreectrl.sourceforge.net/ ==> treectrl @@ -82,30 +86,26 @@ Tile http://tktable.sourceforge.net/tile/ ==> tile TkTrans http://www2.cmp.uea.ac.uk/~fuzz/tktrans/default.html ==> tktrans (win32 only) -TkDND http://sourceforge.net/projects/tkdnd ==> tkDND +TkDND http://sourceforge.net/projects/tkdnd ==> tkDND ===< plan to support (alpha quality libraries may be included) >============== -TclX http://sf.net/projects/tclx * may support Tk part only - winico http://tktable.sourceforge.net +GraphViz http://www.graphviz.org/ + +Tkgeomap http://tkgeomap.sourceforge.net/index.html + ===< not determined to supprt or not >======================================== -GraphViz http://www.graphviz.org/ - BLT http://sourceforge.net/projects/blt Tix http://tixlibrary.sourceforge.net/ -Tkgeomap http://tkgeomap.sourceforge.net/index.html - -XBit http://www.geocities.com/~chengye/ - TkZinc http://www.tkzinc.org/ Wbc http://home.t-online.de/home/csaba.nemethi/ @@ -114,15 +114,23 @@ Mentry http://home.t-online.de/home/csaba.nemethi/ Tablelist http://home.t-online.de/home/csaba.nemethi/ +ANIGIF http://cardtable.sourceforge.net/tcltk/ + +IMG_ROTATE http://cardtable.sourceforge.net/tcltk/ + +TclVfs http://sourceforge.net/projects/tclvfs/ + vfwtcl http://sourceforge.net/projects/avicaptcl + * Win32 only + +multicast http://sourceforge.net/projects/avicaptcl + * Win32 only + +XBit http://www.geocities.com/~chengye/ + * current implementation is for Windows only QuickTimeTcl http://hem.fyristorg.com/matben/qt/ - -ANIGIF http://cardtable.sourceforge.net/tcltk/ - -IMG_ROTATE http://cardtable.sourceforge.net/tcltk/ - -TclVfs http://sourceforge.net/projects/tclvfs/ + * works under Mac OS (8,9,X) or Windows diff --git a/ext/tk/lib/tkextlib/tclx.rb b/ext/tk/lib/tkextlib/tclx.rb new file mode 100644 index 0000000000..3a4ff27644 --- /dev/null +++ b/ext/tk/lib/tkextlib/tclx.rb @@ -0,0 +1,13 @@ +# +# TclX support +# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) +# + +# call setup script for general 'tkextlib' libraries +require 'tkextlib/setup.rb' + +# call setup script +require 'tkextlib/tclx/setup.rb' + +# load library +require 'tkextlib/tclx/tclx' diff --git a/ext/tk/lib/tkextlib/tclx/setup.rb b/ext/tk/lib/tkextlib/tclx/setup.rb new file mode 100644 index 0000000000..ce0f0bd4d4 --- /dev/null +++ b/ext/tk/lib/tkextlib/tclx/setup.rb @@ -0,0 +1,8 @@ +# +# setup.rb -- setup script before calling TkPackage.require() +# +# If you need some setup operations (for example, add a library path +# to the library search path) before using Tcl/Tk library packages +# wrapped by Ruby scripts in this directory, please write the setup +# operations in this file. +# diff --git a/ext/tk/lib/tkextlib/tclx/tclx.rb b/ext/tk/lib/tkextlib/tclx/tclx.rb new file mode 100644 index 0000000000..d10689d209 --- /dev/null +++ b/ext/tk/lib/tkextlib/tclx/tclx.rb @@ -0,0 +1,59 @@ +# +# tclx/tclx.rb +# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) +# +require 'tk' + +# call setup script for general 'tkextlib' libraries +require 'tkextlib/setup.rb' + +# call setup script +require 'tkextlib/tclx/setup.rb' + +# TkPackage.require('Tclx', '8.0') +TkPackage.require('Tclx') + +module Tk + module TclX + def self.package_version + begin + TkPackage.require('Tclx') + rescue + '' + end + end + + def self.infox(*args) + Tk.tk_call('infox', *args) + end + + ############################## + + class XPG3_MsgCat + class << self + alias open new + end + + def initialize(catname, fail_mode=false) + if fail_mode + @msgcat_id = Tk.tk_call('catopen', '-fail', catname) + else + @msgcat_id = Tk.tk_call('catopen', '-nofail', catname) + end + end + + def close(fail_mode=false) + if fail_mode + Tk.tk_call('catclose', '-fail', @msgcat_id) + else + Tk.tk_call('catclose', '-nofail', @msgcat_id) + end + self + end + + def get(setnum, msgnum, defaultstr) + Tk.tk_call('catgets', @msgcat_id, setnum, msgnum, defaultstr) + end + end + end +end