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