/usr/share/blt2.4/demos/barchart4.tcl is in blt-demo 2.4z-7ubuntu2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | #!/usr/bin/wish
package require BLT
# --------------------------------------------------------------------------
# Starting with Tcl 8.x, the BLT commands are stored in their own
# namespace called "blt". The idea is to prevent name clashes with
# Tcl commands and variables from other packages, such as a "table"
# command in two different packages.
#
# You can access the BLT commands in a couple of ways. You can prefix
# all the BLT commands with the namespace qualifier "blt::"
#
# blt::graph .g
# blt::table . .g -resize both
#
# or you can import all the command into the global namespace.
#
# namespace import blt::*
# graph .g
# table . .g -resize both
#
# --------------------------------------------------------------------------
if { $tcl_version >= 8.0 } {
namespace import blt::*
namespace import -force blt::tile::*
}
source scripts/demo.tcl
proc random {{max 1.0} {min 0.0}} {
global randomSeed
set randomSeed [expr (7141*$randomSeed+54773) % 259200]
set num [expr $randomSeed/259200.0*($max-$min)+$min]
return $num
}
set randomSeed 14823
set graph .graph
source scripts/stipples.tcl
source scripts/patterns.tcl
option add *Barchart.title "A Simple Barchart"
option add *Barchart.relief raised
option add *Barchart.borderWidth 2
option add *Barchart.plotBackground white
option add *Barchart.baseline 57.299
option add *Element.borderWidth 2
option add *Element.Background white
option add *Element.Relief raised
option add *x.Title "X Axis"
option add *x.Font *Times-Medium-R*10*
option add *y.Title "Y Axis"
option add *LineMarker.Foreground yellow
set visual [winfo screenvisual .]
if { $visual != "staticgray" && $visual != "grayscale" } {
option add *print.background yellow
option add *quit.background red
option add *graph.background palegreen
}
htext .header -text \
{ This is an example of the barchart widget. The barchart has
many components; x and y axis, legend, crosshairs, elements, etc.
To create a postscript file "bar.ps", press the %%
set w $htext(widget)
button $w.print -text {Print} -command {
$graph postscript output bar.ps
}
$w append $w.print
%% button.
}
barchart $graph
$graph xaxis configure -rotate 90 -stepsize 0
htext .footer -text { Hit the %%
set im [image create photo -file ./images/stopsign.gif]
button $htext(widget).quit -image $im -command { exit }
$htext(widget) append $htext(widget).quit -pady 2
%% button when you've seen enough. %%
label $htext(widget).logo -bitmap BLT
$htext(widget) append $htext(widget).logo
%%}
set attributes {
red bdiagonal1
orange bdiagonal2
yellow fdiagonal1
green fdiagonal2
blue hline1
cyan hline2
magenta vline1
violetred vline2
purple crossdiag
lightblue hobbes
}
set count 0
foreach { color stipple } $attributes {
$graph pen create pen$count -fg ${color}1 -bg ${color}4 -stipple $stipple
lappend styles [list pen$count $count $count]
incr count
}
vector x y w
x seq 0 1000
y expr random(x)*90.0
w expr round(y/10.0)%$count
y expr y+10.0
$graph element create data -label {} \
-x x -y y -weight w -styles $styles
table . \
0,0 .header -fill x \
1,0 .graph -fill both \
2,0 .footer -fill x
table configure . r0 r2 -resize none
wm min . 0 0
Blt_ZoomStack $graph
Blt_Crosshairs $graph
Blt_ActiveLegend $graph
Blt_ClosestPoint $graph
|