diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-01-25 05:42:49 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-01-25 05:42:49 +0000 |
commit | 17e40d68e09563188e7edc49a24c55b853e61d11 (patch) | |
tree | 4d31728e7bc837e17b3f128aa2b4bc7bee255873 /ext/tk/sample/tkextlib/vu/vu_demo.rb | |
parent | ead5e7c7f744ee0f7e3b35f1c2b2f966b5f75346 (diff) | |
download | ruby-17e40d68e09563188e7edc49a24c55b853e61d11.tar.gz |
* ext/tk/sample/vu/vu_demo.rb: rename from vu.rb; avoid the bug on
Windows version of Tcl/Tk. The trouble based on the bug occurs when
the script name (without extension) is a same name as a Tcl/Tk's
library file name (without extension) required in the script.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/sample/tkextlib/vu/vu_demo.rb')
-rw-r--r-- | ext/tk/sample/tkextlib/vu/vu_demo.rb | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/ext/tk/sample/tkextlib/vu/vu_demo.rb b/ext/tk/sample/tkextlib/vu/vu_demo.rb new file mode 100644 index 0000000000..d078ae16f2 --- /dev/null +++ b/ext/tk/sample/tkextlib/vu/vu_demo.rb @@ -0,0 +1,67 @@ +#!/usr/bin/env ruby + +require 'tk' +require 'tkextlib/vu' + +####################################### + +puts "Show off barchart and dial widgets" + +speed = TkVariable.new(0) + +dial = Tk::Vu::Dial.new(:resolution=>0.001, :from=>-0.1, :to=>0.1, + :showvalue=>true, :minortickinterval=>0.01, + :tickinterval=>0.1, :radius=>50, :label=>"Dial", + :beginangle=>-20, :endangle=>260, :dialcolor=>'red3', + :active=>'red2', :variable=>speed) + +bar = Tk::Vu::Bargraph.new(:from=>0, :to=>100, :relief=>:groove, + :border=>2, :label=>"Bar Chart") + +####################################### + +green = 25 +blue = 50 +purple = 75 +current = 50 + +def rand_bool + +end + +update = TkTimer.new(200, -1, proc{ + if (rand() - 0.5 + speed.numeric * 3) > 0 + current += 1 + else + current -= 1 + end + bar.set(current) + if current < green + current = 100 if current <= 0 + bar[:barcolor] = 'green' + elsif current < blue + bar[:barcolor] = 'blue' + elsif current < purple + bar[:barcolor] = 'purple' + else + bar[:barcolor] = 'red' + current = 0 if current >= 100 + end + }) + +####################################### + +gobar = TkButton.new(:text=>"Start", :command=>proc{update.start}) +nobar = TkButton.new(:text=>"Stop", :command=>proc{update.stop}) +quit = TkButton.new(:text=>"Exit", :command=>proc{exit}) + +Tk.grid('x', gobar, :sticky=>:ew, :padx=>4, :pady=>4) +Tk.grid(dial, bar, :sticky=>:news) +Tk.grid('x', nobar, :sticky=>:ew, :padx=>4, :pady=>4) +Tk.grid(quit, '-', '-', :sticky=>:ew, :padx=>4, :pady=>4) +Tk.root.grid_columnconfigure(2, :weight=>1) +Tk.root.grid_rowconfigure(1, :weight=>1) + +####################################### + +Tk.mainloop |