summaryrefslogtreecommitdiff
path: root/ext/tk
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-22 02:23:59 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-22 02:23:59 +0000
commitc93c500910bc184afdde27c0a65d0d1ddd2fc441 (patch)
tree52c0101c23c8a580ba152b0430e9f11fbede1377 /ext/tk
parent56761e29f655407aa7bbbf27072f9ff6bf055757 (diff)
* add a new sample 'ext/tk/sample/remote-ikp_sample2.rb'
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk')
-rw-r--r--ext/tk/sample/remote-ip_sample.rb2
-rw-r--r--ext/tk/sample/remote-ip_sample2.rb53
2 files changed, 54 insertions, 1 deletions
diff --git a/ext/tk/sample/remote-ip_sample.rb b/ext/tk/sample/remote-ip_sample.rb
index 3a2dbe4852..3c153e94fa 100644
--- a/ext/tk/sample/remote-ip_sample.rb
+++ b/ext/tk/sample/remote-ip_sample.rb
@@ -16,7 +16,7 @@ unless (wish = TkWinfo.interps.find{|ip| ip =~ /^wish/})
end
ip = RemoteTkIp.new(wish)
-ip.eval_proc{TkButton.new(:command=>proc{puts 'This procesure is on the controller-ip (Rubh/Tk)'}, :text=>'print on Ruby/Tk (controller-ip)').pack(:fill=>:x)}
+ip.eval_proc{TkButton.new(:command=>proc{puts 'This procesure is on the controller-ip (Ruby/Tk)'}, :text=>'print on Ruby/Tk (controller-ip)').pack(:fill=>:x)}
ip.eval_proc{TkButton.new(:command=>'puts {This procesure is on the remote-ip (wish)}', :text=>'print on wish (remote-ip)').pack(:fill=>:x)}
# If your remote-ip is Ruby/Tk, you can control the remote Ruby by
diff --git a/ext/tk/sample/remote-ip_sample2.rb b/ext/tk/sample/remote-ip_sample2.rb
new file mode 100644
index 0000000000..51b950387a
--- /dev/null
+++ b/ext/tk/sample/remote-ip_sample2.rb
@@ -0,0 +1,53 @@
+#!/usr/bin/env ruby
+
+ip_name = 'remote_ip'
+
+fork{
+ exec "/usr/bin/env ruby -r tk -e \"Tk.appname('#{ip_name}');Tk.mainloop\""
+}
+
+require 'remote-tk'
+
+15.times{
+ break if TkWinfo.interps.find{|ip| ip =~ /^#{ip_name}/}
+ sleep 1
+}
+
+p TkWinfo.interps
+
+ip = RemoteTkIp.new(ip_name)
+
+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)
+}
+
+btns.each_with_index{|b, idx|
+ TkButton.new(:command=>proc{ip.eval_proc{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)
+
+Tk.mainloop