diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-07-21 22:05:04 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-07-21 22:05:04 +0000 |
commit | e3344184b11fa45e30ff18d853c06cc826e5fd2d (patch) | |
tree | dfe1ac616e08d920da1177c7b4762c3d0e74feb6 /ext/tk/lib/remote-tk.rb | |
parent | 26008404e53ae09913b8f3659f33247b01bdef6f (diff) | |
download | ruby-e3344184b11fa45e30ff18d853c06cc826e5fd2d.tar.gz ruby-e3344184b11fa45e30ff18d853c06cc826e5fd2d.tar.xz ruby-e3344184b11fa45e30ff18d853c06cc826e5fd2d.zip |
* ext/tk/tkutil/tkutil.c (tk_conv_args): forget to revert
thread_critical and gc_disable when raise ArgumentError.
* ext/tk/lib/remote-tk.rb: RemoteTkIp doesn't need to include TkUtil.
* ext/tk/tcltklib.c: add TclTkIp#has_mainwindow? method.
* ext/tk/lib/tk.rb: add Tk.has_mainwindow? method.
* ext/tk/lib/multi-tk.rb: add MultiTkIp#has_mainwindow? method.
* ext/tk/lib/remote-tk.rb: add RemoteTkIp#has_mainwindow? method.
* ext/tk/lib/multi-tk.rb: slave IP fail to exit itself when $SAFE==4.
* ext/tk/lib/multi-tk.rb: remove constants from MultiTkIp module to
avoid access from external.
* ext/tk/lib/multi-tk.rb: check_root flag is ignored on slave IPs'
mainloop.
* ext/tk/lib/multi-tk.rb: hang-up Tk.mainloop called on a slave IP
with $SAFE==4.
* ext/tk/lib/multi-tk.rb: MultiTkIp#bg_eval_proc doesn't work
properly.
* ext/tk/lib/multi-tk.rb: add MultiTkIp#set_cb_error(proc) and
cb_error(exc) to log errors at callbacks on safe slave IPs.
* ext/tk/lib/multi-tk.rb: fail to get an available slave IP object
when call Tk.mainloop in the block which is given to new_* method,
because cannot finish initialize while the root widget is alive.
* ext/tk/lib/multi-tk.rb: fail to control a slave IP when Tk.mainloop
runs on the IP.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/remote-tk.rb')
-rw-r--r-- | ext/tk/lib/remote-tk.rb | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/ext/tk/lib/remote-tk.rb b/ext/tk/lib/remote-tk.rb index ed7f75b33..6e64a1ca2 100644 --- a/ext/tk/lib/remote-tk.rb +++ b/ext/tk/lib/remote-tk.rb @@ -60,8 +60,6 @@ class << RemoteTkIp end class RemoteTkIp - include TkUtil - def initialize(remote_ip, displayof=nil, timeout=5) if $SAFE >= 4 fail SecurityError, "cannot access another interpreter at level #{$SAFE}" @@ -96,7 +94,7 @@ class RemoteTkIp @safe_level = [$SAFE] - @wait_on_mainloop = [true, false] + @wait_on_mainloop = [true, 0] @cmd_queue = Queue.new @@ -179,7 +177,7 @@ class RemoteTkIp fail SecurityError, "cannot send tainted commands at level #{$SAFE}" end - cmds = @interp._merge_tklist(*_conv_args([], enc_mode, *cmds)) + cmds = @interp._merge_tklist(*TkUtil::_conv_args([], enc_mode, *cmds)) if @displayof if async @interp.__invoke('send', '-async', '-displayof', @displayof, @@ -283,6 +281,19 @@ class RemoteTkIp end end + def has_mainwindow? + begin + inf = @interp._invoke_without_enc('info', 'command', '.') + rescue Exception + return nil + end + if !inf.kind_of?(String) || inf != '.' + false + else + true + end + end + def invalid_namespace? false end @@ -343,25 +354,25 @@ class RemoteTkIp def _get_variable(var_name, flag) # ignore flag - _appsend(false, 'set', _get_eval_string(var_name)) + _appsend(false, 'set', TkComm::_get_eval_string(var_name)) end def _get_variable2(var_name, index_name, flag) # ignore flag - _appsend(false, 'set', "#{_get_eval_string(var_name)}(#{_get_eval_string(index_name)})") + _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})") end def _set_variable(var_name, value, flag) # ignore flag - _appsend(false, 'set', _get_eval_string(var_name), _get_eval_string(value)) + _appsend(false, 'set', TkComm::_get_eval_string(var_name), TkComm::_get_eval_string(value)) end def _set_variable2(var_name, index_name, value, flag) # ignore flag - _appsend(false, 'set', "#{_get_eval_string(var_name)}(#{_get_eval_string(index_name)})", _get_eval_string(value)) + _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})", TkComm::_get_eval_string(value)) end def _unset_variable(var_name, flag) # ignore flag - _appsend(false, 'unset', _get_eval_string(var_name)) + _appsend(false, 'unset', TkComm::_get_eval_string(var_name)) end def _unset_variable2(var_name, index_name, flag) # ignore flag @@ -369,21 +380,21 @@ class RemoteTkIp end def _get_global_var(var_name) - _appsend(false, 'set', _get_eval_string(var_name)) + _appsend(false, 'set', TkComm::_get_eval_string(var_name)) end def _get_global_var2(var_name, index_name) - _appsend(false, 'set', "#{_get_eval_string(var_name)}(#{_get_eval_string(index_name)})") + _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})") end def _set_global_var(var_name, value) - _appsend(false, 'set', _get_eval_string(var_name), _get_eval_string(value)) + _appsend(false, 'set', TkComm::_get_eval_string(var_name), TkComm::_get_eval_string(value)) end def _set_global_var2(var_name, index_name, value) - _appsend(false, 'set', "#{_get_eval_string(var_name)}(#{_get_eval_string(index_name)})", _get_eval_string(value)) + _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})", TkComm::_get_eval_string(value)) end def _unset_global_var(var_name) - _appsend(false, 'unset', _get_eval_string(var_name)) + _appsend(false, 'unset', TkComm::_get_eval_string(var_name)) end def _unset_global_var2(var_name, index_name) _appsend(false, 'unset', "#{var_name}(#{index_name})") |