diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/ext/tk/lib/tkextlib/tclx |
Fresh start
Diffstat (limited to 'jni/ruby/ext/tk/lib/tkextlib/tclx')
-rw-r--r-- | jni/ruby/ext/tk/lib/tkextlib/tclx/setup.rb | 8 | ||||
-rw-r--r-- | jni/ruby/ext/tk/lib/tkextlib/tclx/tclx.rb | 74 |
2 files changed, 82 insertions, 0 deletions
diff --git a/jni/ruby/ext/tk/lib/tkextlib/tclx/setup.rb b/jni/ruby/ext/tk/lib/tkextlib/tclx/setup.rb new file mode 100644 index 0000000..ee406c6 --- /dev/null +++ b/jni/ruby/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/jni/ruby/ext/tk/lib/tkextlib/tclx/tclx.rb b/jni/ruby/ext/tk/lib/tkextlib/tclx/tclx.rb new file mode 100644 index 0000000..5a908fc --- /dev/null +++ b/jni/ruby/ext/tk/lib/tkextlib/tclx/tclx.rb @@ -0,0 +1,74 @@ +# +# 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 + PACKAGE_NAME = 'Tclx'.freeze + def self.package_name + PACKAGE_NAME + end + + def self.package_version + begin + TkPackage.require('Tclx') + rescue + '' + end + end + + def self.infox(*args) + Tk.tk_call('infox', *args) + end + + def self.signal(*args) + warn("Warning: Don't recommend to use TclX's 'signal' command. Please use Ruby's 'Signal.trap' method") + Tk.tk_call('signal', *args) + end + + def self.signal_restart(*args) + warn("Warning: Don't recommend to use TclX's 'signal' command. Please use Ruby's 'Signal.trap' method") + Tk.tk_call('signal', '-restart', *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 |