diff options
Diffstat (limited to 'ds9/library/projection.tcl')
-rw-r--r-- | ds9/library/projection.tcl | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/ds9/library/projection.tcl b/ds9/library/projection.tcl new file mode 100644 index 0000000..9dc331e --- /dev/null +++ b/ds9/library/projection.tcl @@ -0,0 +1,128 @@ +# Copyright (C) 1999-2016 +# Smithsonian Astrophysical Observatory, Cambridge, MA, USA +# For conditions of distribution and use, see copyright notice in "copyright" + +package provide DS9 1.0 + +proc ProjectionDialog {varname} { + upvar #0 $varname var + global $varname + + # see if we already have a header window visible + if {[winfo exists $var(top)]} { + raise $var(top) + return + } + + # variables + set rr [$var(frame) get wcs] + set var(tcoord) [lindex $rr 0] + set var(tformat) degrees + AdjustCoordSystem $varname tcoord + + # procs + set var(which) projection + set var(proc,apply) ProjectionApply + set var(proc,coordCB) ProjectionCoordCB + set var(proc,editCB) ProjectionEditCB + set var(proc,distCB) ProjectionDistCB + + # base + MarkerBaseLineDialog $varname 500 200 + + # analysis + $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis + menu $var(mb).analysis + + # plot2d + MarkerAnalysisPlot2dDialog $varname + + # init + ProjectionThickCB $varname + + set f $var(top).param + + # Thick + ttk::label $f.tthick -text [msgcat::mc {Thickness}] + ttk::entry $f.thick -textvariable ${varname}(thick) -width 13 + DistMenuButton $f.uthick $varname tcoord 1 tformat \ + [list ProjectionThickCB $varname] + DistMenuEnable $f.uthick.menu $varname tcoord 1 tformat + + grid $f.tthick $f.thick $f.uthick -padx 2 -pady 2 -sticky w +} + +# actions + +proc ProjectionApply {varname} { + upvar #0 $varname var + global $varname + + $var(frame) marker $var(id) projection $var(system) $var(sky) \ + $var(x) $var(y) $var(x2) $var(y2) \ + $var(thick) $var(tcoord) $var(tformat) + + MarkerBaseLineApply $varname +} + +# callbacks + +proc ProjectionCoordCB {varname {dummy {}}} { + upvar #0 $varname var + global $varname + + global debug + if {$debug(tcl,marker)} { + puts stderr "ProjectionCoordCB" + } + + MarkerAnalysisPlot2dSystem $varname + MarkerBaseCoordCB $varname + ProjectionEditCB $varname +} + +proc ProjectionEditCB {varname {dummy {}}} { + upvar #0 $varname var + global $varname + + global debug + if {$debug(tcl,marker)} { + puts stderr "ProjectionEditCB" + } + + MarkerBaseLineEditCB $varname + + set var(dist) [$var(frame) get marker $var(id) projection length \ + $var(dcoord) $var(dformat)] + set var(thick) [$var(frame) get marker $var(id) projection thick \ + $var(tcoord) $var(tformat)] + set var(angle) [$var(frame) get marker $var(id) angle \ + $var(system) $var(sky)] +} + +proc ProjectionDistCB {varname {dummy {}}} { + upvar #0 $varname var + global $varname + + global debug + if {$debug(tcl,marker)} { + puts stderr "ProjectionDistCB" + } + + set var(dist) [$var(frame) get marker $var(id) projection length \ + $var(dcoord) $var(dformat)] +} + +proc ProjectionThickCB {varname {dummy {}}} { + upvar #0 $varname var + global $varname + + global debug + if {$debug(tcl,marker)} { + puts stderr "ProjectionThickCB" + } + + set var(thick) [$var(frame) get marker $var(id) projection thick \ + $var(tcoord) $var(tformat)] +} + |