package require tkblt #set sleep 1000 set sleep 500 if {![info exists dops]} { set dops 0 } proc bltPlot {w title} { toplevel $w wm title $w $title wm protocol $w WM_DELETE_WINDOW [list bltPlotDestroy $w] set mb ${w}mb menu $mb $w configure -menu $mb } proc bltPlotDestroy {w} { destroy ${w}mb destroy $w } proc bltTest {graph option value {dops 0}} { global sleep puts stderr " $option $value" set org [$graph cget $option] $graph configure $option $value update if {$dops} { $graph postscript output foo.ps exec open /Applications/Preview.app/ foo.ps } # after $sleep read stdin 1 $graph configure $option $org update after $sleep } proc bltTest2 {graph which option value {dops 0}} { global sleep puts stderr " $option $value" set org [$graph $which cget $option] $graph $which configure $option $value update if {$dops} { $graph postscript output foo.ps exec open /Applications/Preview.app/ foo.ps } # after $sleep read stdin 1 $graph $which configure $option $org update after $sleep } proc bltTest3 {graph which item option value {dops 0}} { global sleep puts stderr " $item $option $value" set org [$graph $which cget $item $option] $graph $which configure $item $option $value update if {$dops} { $graph postscript output foo.ps exec open /Applications/Preview.app/ foo.ps } # after $sleep read stdin 1 $graph $which configure $item $option $org update after $sleep } proc bltCmd {graph args} { global sleep puts stderr " $graph $args" eval $graph $args update # after $sleep read stdin 1 } proc bltElements {graph} { blt::vector create xv(10) blt::vector create yv(10) xv set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } yv set { 5 10 10 15 15 10 20 25 30 35 } $graph element create data1 -data {0.2 13 0.4 25 0.6 36 0.8 46 1.0 55 1.2 64 1.4 70 1.6 75 1.8 80 2.0 90} $graph element create data2 \ -xdata {0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0} \ -ydata {26 50 72 92 110 128 140 150 160 180} \ -xerror {.05 .05 .05 .05 .05 .05 .05 .05 .05 .05} \ -yerror {10 10 10 10 10 10 10 10 10 10 10} \ -color red $graph element create data3 -xdata xv -ydata yv -color green $graph legend configure -title "Legend" } proc bltBarGraph {w} { global sleep bltPlot $w "Bar Graph" set graph [blt::barchart ${w}.gr \ -width 600 \ -height 500 \ -title "Bar\nGraph" \ -barwidth .2 \ -barmode aligned \ ] pack $graph -expand yes -fill both bltElements $graph update after $sleep return $graph } proc bltLineGraph {w} { global sleep bltPlot $w "Line Graph" set graph [blt::graph ${w}.gr \ -width 600 \ -height 500 \ -title "Line\nGraph" \ ] pack $graph -expand yes -fill both bltElements $graph update after $sleep return $graph }