From d464704f111d211c1f1ff9ef23ef1d755054be00 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 15 Aug 2007 19:08:43 +0000 Subject: add tag v1_8_5_54 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_54@12952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_5/ext/tk/sample/remote-ip_sample2.rb | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ruby_1_8_5/ext/tk/sample/remote-ip_sample2.rb (limited to 'ruby_1_8_5/ext/tk/sample/remote-ip_sample2.rb') diff --git a/ruby_1_8_5/ext/tk/sample/remote-ip_sample2.rb b/ruby_1_8_5/ext/tk/sample/remote-ip_sample2.rb new file mode 100644 index 0000000000..e12b2a96c9 --- /dev/null +++ b/ruby_1_8_5/ext/tk/sample/remote-ip_sample2.rb @@ -0,0 +1,56 @@ +#!/usr/bin/env ruby + +require 'remote-tk' + +# start sub-process +ip_name = 'remote_ip' +ip_list = TkWinfo.interps +fork{ + exec "/usr/bin/env ruby -r tk -e \"Tk.appname('#{ip_name}');Tk.mainloop\"" +} +sleep 1 until (app = (TkWinfo.interps - ip_list)[0]) && app =~ /^#{ip_name}/ +p TkWinfo.interps + +# create RemoteTkIp object +ip = RemoteTkIp.new(app) + +# setup remote-ip window +btns = [] +ip.eval_proc{ + btns << + TkButton.new(:command=>proc{ + puts 'This procesure is on the controller-ip (Ruby-side)' + }, + :text=>'print on controller-ip (Ruby-side)').pack(:fill=>:x) + + btns << + TkButton.new(:command=> + 'puts {This procesure is on the remote-ip (Tk-side)}', + :text=>'print on remote-ip (Tk-side)').pack(:fill=>:x) + + btns << + TkButton.new(:command=> + 'ruby { + puts "This procedure is on the remote-ip (Ruby-side)" + p Array.new(3,"ruby") + }', + :text=>'ruby cmd on the remote-ip').pack(:fill=>:x) + + TkButton.new(:command=>'exit', :text=>'QUIT').pack(:fill=>:x) +} + +# setup controller-ip window +btns.each_with_index{|btn, idx| + # The scope of the eval-block of 'eval_proc' method is different from + # the enternal. If you want to pass local values to the eval-block, + # use arguments of eval_proc method. They are passed to block-arguments. + TkButton.new(:command=>proc{ip.eval_proc(btn){|b| b.flash}}, + :text=>"flash button-#{idx}", + :padx=>10).pack(:padx=>10, :pady=>2) +} + +TkButton.new(:command=>proc{exit}, :text=>'QUIT', + :padx=>10, :pady=>7).pack(:padx=>10, :pady=>7) + +# start eventloop +Tk.mainloop -- cgit v1.2.3