1#!/usr/bin/env ruby 2 3require 'tk' 4require 'tkextlib/vu/charts' 5 6####################################### 7 8xbm = File.join(File.dirname(File.expand_path(__FILE__)), 'm128_000.xbm') 9 10sval = [ 11, 22, 33, 44, 55, 66, 77, 88, 99 ] 11 12l0 = TkLabel.new(:width=>128, :height=>128, 13 :bitmap=>"@#{xbm}", :relief=>:groove).pack(:side=>:left) 14 15c0 = TkCanvas.new(:width=>80, :height=>80, 16 :insertwidth=>0, :highlightthickness=>0, 17 :selectborderwidth=>0, :borderwidth=>2, 18 :relief=>:ridge).place(:in=>l0, :relx=>0.5, :rely=>0.5, 19 :anchor=>:c) 20 21st = Tk::Vu::TkcStripchart.new(c0, 3, 3, 80, 80, 22 :background=>"#b7c0d7", :fill=>'slategray3', 23 :jumpscroll=>1, :outline=>'black', 24 :scaleline=>'blue', :stripline=>'red', 25 :selected=>1, :values=>sval) 26 27TkcText.create(c0, 40, 40, 28 :text=>Tk::TCL_PATCHLEVEL, :fill=>'cyan', :tags=>'text') 29 30 31l1 = TkLabel.new(:width=>128, :height=>128, 32 :bitmap=>"@#{xbm}", :relief=>:groove).pack(:side=>:left) 33 34c1 = TkCanvas.new(:width=>80, :height=>80, 35 :insertwidth=>0, :highlightthickness=>0, 36 :selectborderwidth=>0, :borderwidth=>2, 37 :relief=>:ridge).place(:in=>l1, :relx=>0.5, :rely=>0.5, 38 :anchor=>:c) 39 40bar1 = Tk::Vu::TkcBarchart.new(c1, 3, 3, 80, 80, 41 :background=>"#b7c0d7", :scalevalue=>10.0, 42 :autocolor=>true, :selected=>1, 43 :outline=>'black', :barline=>'yellow', 44 :scalelinestyle=>0) 45 46bar2 = Tk::Vu::TkcBarchart.new(c1, 53, 3, 80, 80, 47 :background=>"#b7c0d7", :scalevalue=>10.0, 48 :autocolor=>true, :selected=>1, 49 :outline=>'black', :fill=>"#b7c0d7", 50 :barline=>'red', :scalelinestyle=>22) 51 52 53l2 = TkLabel.new(:width=>128, :height=>128, 54 :bitmap=>"@#{xbm}", :relief=>:groove).pack(:side=>:left) 55 56c2 = TkCanvas.new(:width=>80, :height=>80, 57 :insertwidth=>0, :highlightthickness=>0, 58 :selectborderwidth=>0, :borderwidth=>2, 59 :relief=>:ridge).place(:in=>l2, :relx=>0.5, :rely=>0.5, 60 :anchor=>:c) 61 62begin 63 stick = Tk::Vu::TkcSticker.new(c2, 3, 3, 80, 80, 64 :text=>"Tcl/Tk", :space=>0, :color=>'red', 65 :outline=>'red', :font=>'Helvetica 14 bold', 66 :fill=>'', :stipple=>'', :bar=>'blue', 67 :orient=>:vertical, :anchor=>:s, 68 :relheight=>1.0, :relwidth=>0.15, 69 :relx=>0.1, :rely=>0.0) 70rescue 71 stick = nil 72 TkcText.new(c2, 40, 10, :text=>"No Sticker Item") 73end 74 75c_do = proc{ 76 st[:values] = rand() * 100 77 78 bar1[:values] = rand() * 10 79 bar2[:values] = rand() * 10 80 81 stick[:rely] = rand() * 100 * 0.01 if stick 82} 83 84c0.bind('1', c_do) 85 86TkTimer.new(100, -1, c_do).start 87 88Tk.root.bind('q', proc{exit}) 89 90Tk.mainloop 91