diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-07-31 20:52:40 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-07-31 20:52:40 +0000 |
commit | 75362fbd47cedf4b4906a361a6c54bc4ad8ea5ec (patch) | |
tree | 33e458bfb8dcf84face1eb34acede77b68ff5d8d /ext/tk/lib/multi-tk.rb | |
parent | 0cdf0d99c1e5164c53676a39265ff99120c8a026 (diff) | |
download | ruby-75362fbd47cedf4b4906a361a6c54bc4ad8ea5ec.tar.gz |
* (IMPORTANT BUG FIX) scan of event keywords doesn't work on recent
versions of Tck/Tk
* (bug fix) initialize error of instance variable on TkComposite
* (bug fix) initialize error on encoding-system on MultiTkIp
* (bug fix) trouble on destroying widgets
* (new) add JP and EN version of Ruby/Tk widget demos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/multi-tk.rb')
-rw-r--r-- | ext/tk/lib/multi-tk.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ext/tk/lib/multi-tk.rb b/ext/tk/lib/multi-tk.rb index 99c25f2595..af94204252 100644 --- a/ext/tk/lib/multi-tk.rb +++ b/ext/tk/lib/multi-tk.rb @@ -174,6 +174,8 @@ class MultiTkIp @@DEFAULT_MASTER = self.allocate @@DEFAULT_MASTER.instance_eval{ + @encoding = [] + @tk_windows = {} @tk_table_list = [] @@ -433,6 +435,8 @@ class MultiTkIp fail ArgumentError, "expecting a Hash object for the 2nd argument" end + @encoding = [] + @tk_windows = {} @tk_table_list = [] @@ -792,6 +796,10 @@ end # class methods to delegate to TclTkIp class << MultiTkIp + def method_missing(id, *args) + __getip.send(id, *args) + end + def make_safe __getip.make_safe end @@ -1141,6 +1149,41 @@ class MultiTkIp end end + +# encoding convert +class MultiTkIp + # from tkencoding.rb by ttate@jaist.ac.jp + alias __eval _eval + alias __invoke _invoke + private :__eval + private :__invoke + + def encoding + @encoding[0] + end + def encoding=(enc) + @encoding[0] = enc + end + + def _eval(cmd) + if @encoding[0] != nil + _fromUTF8(__eval(_toUTF8(cmd, @encoding[0])), @encoding[0]) + else + __eval(cmd) + end + end + + def _invoke(*cmds) + if defined?(@encoding[0]) && @encoding[0] != nil + cmds = cmds.collect{|cmd| _toUTF8(cmd, @encoding[0])} + _fromUTF8(__invoke(*cmds), @encoding[0]) + else + __invoke(*cmds) + end + end +end + + # end of MultiTkIp definition MultiTkIp.freeze # defend against modification |