summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-23 06:31:57 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-23 06:31:57 +0000
commita32c01d85a5adb0fa4357db00eb98be5ad2240a6 (patch)
treeeadf1aad083bbca4e03dd59d304ce2c2d6228566
parent0caca522a909b2268b6495e2f00b6ec1e10eb5e3 (diff)
* add TclX extension support (partially)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ext/tk/ChangeLog.tkextlib4
-rw-r--r--ext/tk/lib/tkextlib/SUPPORT_STATUS36
-rw-r--r--ext/tk/lib/tkextlib/tclx.rb13
-rw-r--r--ext/tk/lib/tkextlib/tclx/setup.rb8
-rw-r--r--ext/tk/lib/tkextlib/tclx/tclx.rb59
5 files changed, 106 insertions, 14 deletions
diff --git a/ext/tk/ChangeLog.tkextlib b/ext/tk/ChangeLog.tkextlib
index 7eeabaa66cb..1f680cea882 100644
--- a/ext/tk/ChangeLog.tkextlib
+++ b/ext/tk/ChangeLog.tkextlib
@@ -1,3 +1,7 @@
+2004-07-23 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+
+ * add TclX support (partially; infox command and XPG/3 MsgCat only)
+
2004-07-15 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* bug fix
diff --git a/ext/tk/lib/tkextlib/SUPPORT_STATUS b/ext/tk/lib/tkextlib/SUPPORT_STATUS
index 81e92a1acf7..58744f50ed7 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/
+
+===< not determined to supprt or not >========================================
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/
-vfwtcl http://sourceforge.net/projects/avicaptcl
+ANIGIF http://cardtable.sourceforge.net/tcltk/
-QuickTimeTcl http://hem.fyristorg.com/matben/qt/
+IMG_ROTATE http://cardtable.sourceforge.net/tcltk/
-ANIGIF http://cardtable.sourceforge.net/tcltk/
+TclVfs http://sourceforge.net/projects/tclvfs/
-IMG_ROTATE http://cardtable.sourceforge.net/tcltk/
+vfwtcl http://sourceforge.net/projects/avicaptcl
+ * Win32 only
-TclVfs http://sourceforge.net/projects/tclvfs/
+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/
+ * 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 00000000000..3a4ff276446
--- /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 00000000000..ce0f0bd4d4b
--- /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 00000000000..d10689d209a
--- /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