aboutsummaryrefslogtreecommitdiffstats
path: root/ext/tk/lib/multi-tk.rb
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-07-31 20:52:40 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-07-31 20:52:40 +0000
commit75362fbd47cedf4b4906a361a6c54bc4ad8ea5ec (patch)
tree33e458bfb8dcf84face1eb34acede77b68ff5d8d /ext/tk/lib/multi-tk.rb
parent0cdf0d99c1e5164c53676a39265ff99120c8a026 (diff)
downloadruby-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.rb43
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