From 4b9f920960a1ea2ef35eabdf05d5d0e934c572df Mon Sep 17 00:00:00 2001 From: William Joye Date: Mon, 22 Jul 2019 15:07:33 -0400 Subject: support multiple graphs per plot --- ds9/library/catcmd.tcl | 8 ++++---- ds9/library/catplot.tcl | 21 +++++++++++++++++++++ ds9/library/plot.tcl | 10 ++++++---- ds9/library/plotprocess.tcl | 14 -------------- ds9/library/plotscatter.tcl | 17 ++++++----------- 5 files changed, 37 insertions(+), 33 deletions(-) diff --git a/ds9/library/catcmd.tcl b/ds9/library/catcmd.tcl index dbc5b76..e033f51 100644 --- a/ds9/library/catcmd.tcl +++ b/ds9/library/catcmd.tcl @@ -120,7 +120,7 @@ proc CATSelectBrowseCmd {varname ss rc} { # plot if {$var(plot)} { - PlotCmdHighliteElement $var(plot,var) $rowlist + CATPlotHighliteElement $varname $rowlist } # samp @@ -196,7 +196,7 @@ proc CATSelectRows {varname src rowlist} { switch $src { samp { if {$var(plot)} { - PlotCmdHighliteElement $var(plot,var) $rowlist + CATPlotHighliteElement $varname $rowlist } } plot { @@ -748,7 +748,7 @@ proc CATRelease {which x y} { CATStatusRows $varname $rowlist # plot if {$var(plot)} { - PlotCmdHighliteElement $var(plot,var) $rowlist + CATPlotHighliteElement $varname 1 1 $rowlist } # samp if {[info exists samp]} { @@ -773,7 +773,7 @@ proc CATRelease {which x y} { CATStatusRows $varname $rowlist #plot if {$var(plot)} { - PlotCmdHighliteElement $var(plot,var) $rowlist + CATPlotHighliteElement $varname $rowlist } # samp if {[info exists samp]} { diff --git a/ds9/library/catplot.tcl b/ds9/library/catplot.tcl index ade9f34..c42d29b 100644 --- a/ds9/library/catplot.tcl +++ b/ds9/library/catplot.tcl @@ -218,3 +218,24 @@ proc CATPlotDialogColsMenu {varname f ww} { } } } + +# used by CATALOG +proc CATPlotHighliteElement {varname rowlist} { + upvar #0 $varname var + global $varname + + set vvarname $var(plot,var) + upvar #0 $vvarname vvar + global $vvarname + + # rowlist starts at 1 + set result {} + foreach rr $rowlist { + append result "[expr $rr-1] " + } + + if {[info exists vvar(1,graph)]} { + $vvar(1,proc,highlite) $vvarname 1 1 $result + } +} + diff --git a/ds9/library/plot.tcl b/ds9/library/plot.tcl index 25c6eab..0f00da8 100644 --- a/ds9/library/plot.tcl +++ b/ds9/library/plot.tcl @@ -146,19 +146,19 @@ proc PlotAddGraph {varname type} { line { PlotLineAddGraph $varname set var(graph,proc,updateelement) PlotLineUpdateElement - set var(graph,proc,highlite) PlotHighLiteElement + set var(graph,proc,highlite) PlotHighliteElement set var(graph,proc,button) PlotButton } bar { PlotBarAddGraph $varname set var(graph,proc,updateelement) PlotBarUpdateElement - set var(graph,proc,highlite) PlotHighLiteElement + set var(graph,proc,highlite) PlotHighliteElement set var(graph,proc,button) PlotButton } scatter { PlotScatterAddGraph $varname set var(graph,proc,updateelement) PlotScatterUpdateElement - set var(graph,proc,highlite) PlotScatterHighLiteElement + set var(graph,proc,highlite) PlotScatterHighliteElement set var(graph,proc,button) PlotScatterButton } } @@ -673,11 +673,13 @@ proc PlotButtonInvoke {varname x y} { proc PlotButton {varname x y} { upvar #0 $varname var global $varname +# no-op } -proc PlotHighliteElement {varname rowlist} { +proc PlotHighliteElement {varname cc nn rowlist} { upvar #0 $varname var global $varname +# no-op } # menus diff --git a/ds9/library/plotprocess.tcl b/ds9/library/plotprocess.tcl index 571fa74..62ffbaf 100644 --- a/ds9/library/plotprocess.tcl +++ b/ds9/library/plotprocess.tcl @@ -330,20 +330,6 @@ proc PlotCmdExport {format fn} { PlotExport $cvarname $fn $format } -# used by SAMP and CATALOG -proc PlotCmdHighliteElement {varname rowlist} { - upvar #0 $varname var - global $varname - - # rowlist starts at 1 - set result {} - foreach rr $rowlist { - append result "[expr $rr-1] " - } - - $var(graph,proc,highlite) $varname $result -} - proc ProcessSendPlotCmd {proc id param {sock {}} {fn {}}} { global iap global parse diff --git a/ds9/library/plotscatter.tcl b/ds9/library/plotscatter.tcl index d9d6029..167ccc6 100644 --- a/ds9/library/plotscatter.tcl +++ b/ds9/library/plotscatter.tcl @@ -155,18 +155,14 @@ proc PlotScatterUpdateElement {varname} { PlotSaveState $varname -# DumpCallStack - set cc $var(graph,current) if {[llength $var($cc,dss)] == 0} { return } -# puts "***$var(graph,ds,shape,symbol)" if {$var(graph,ds,shape,symbol) == "none"} { set var(graph,ds,shape,symbol) circle } -# puts "=$var(graph,ds,shape,symbol)" if {$var(graph,ds,shape,fill)} { set clr $var(graph,ds,shape,color) @@ -206,6 +202,8 @@ proc PlotScatterButton {varname x y} { upvar #0 $varname var global $varname + puts "PlotScatterButton $varname $x $y" + set cc $var(graph,current) if {[llength $var($cc,dss)] == 0} { @@ -233,22 +231,19 @@ proc PlotScatterButton {varname x y} { } } -proc PlotScatterHighliteElement {varname rowlist} { +proc PlotScatterHighliteElement {varname cc nn rowlist} { upvar #0 $varname var global $varname - set cc $var(graph,current) - set nn $var(graph,ds,current) - if {[llength $var($cc,dss)] == 0} { return } - if {$var(graph,ds,show)} { - $var(graph) element deactivate $nn + if {$var($cc,$nn,show)} { + $var($cc,graph) element deactivate $nn if {$rowlist != {}} { # can have multiple rows - eval "$var(graph) element activate $nn $rowlist" + eval "$var($cc,graph) element activate $nn $rowlist" } } } -- cgit v0.12