diff options
Diffstat (limited to 'ds9/library/markerdialog.tcl')
-rw-r--r-- | ds9/library/markerdialog.tcl | 292 |
1 files changed, 292 insertions, 0 deletions
diff --git a/ds9/library/markerdialog.tcl b/ds9/library/markerdialog.tcl new file mode 100644 index 0000000..3cee4b7 --- /dev/null +++ b/ds9/library/markerdialog.tcl @@ -0,0 +1,292 @@ +# 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 MarkerLoadDialog {} { + global marker + global ed + global current + global wcs + + set w {.mkd} + + set ed(ok) 0 + set ed(format) $marker(format) + set ed(load) $marker(load) + set ed(frame) $current(frame) + + set ed(system) $wcs(system) + set ed(sky) $wcs(sky) + set ed(skyformat) $wcs(skyformat) + AdjustCoordSystem ed system + + DialogCreate $w [msgcat::mc {Load Regions}] ed(ok) + + # Param + set f [ttk::frame $w.param] + + ttk::label $f.formattitle -text [msgcat::mc {Format}] + set m $f.formatbutton.menu + ttk::menubutton $f.formatbutton -textvariable ed(format) -menu $m + ttk::label $f.coordtitle -text [msgcat::mc {Coordinate System}] + set ed(cb) $f.coordbutton + CoordMenuButton $ed(cb) ed system 1 sky skyformat {} + ttk::radiobutton $f.current -text [msgcat::mc {Load into Current Frame}] \ + -variable ed(load) -value current + ttk::radiobutton $f.all -text [msgcat::mc {Load into All Frames}] \ + -variable ed(load) -value all + + menu $m + $m add radiobutton -label {DS9/Funtools} -variable ed(format) -value ds9 \ + -command UpdateMarkerLoadDialog + $m add radiobutton -label {XML} -variable ed(format) -value xml \ + -command UpdateMarkerLoadDialog + $m add radiobutton -label {CIAO} -variable ed(format) -value ciao \ + -command UpdateMarkerLoadDialog + $m add radiobutton -label {SAOtng} -variable ed(format) -value saotng \ + -command UpdateMarkerLoadDialog + $m add radiobutton -label {SAOimage} -variable ed(format) -value saoimage \ + -command UpdateMarkerLoadDialog + $m add radiobutton -label {IRAF PROS} -variable ed(format) -value pros \ + -command UpdateMarkerLoadDialog + $m add radiobutton -label {X Y} -variable ed(format) -value xy \ + -command UpdateMarkerLoadDialog + + grid $f.formattitle $f.formatbutton -padx 2 -pady 2 -sticky w + grid $f.coordtitle $f.coordbutton -padx 2 -pady 2 -sticky w + grid $f.current - -padx 2 -pady 2 -sticky w + grid $f.all - -padx 2 -pady 2 -sticky w + + # Button + set f [ttk::frame $w.buttons] + ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed(ok) 1} \ + -default active + ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed(ok) 0} + pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4 + + bind $w <Return> {set ed(ok) 1} + + # Fini + ttk::separator $w.sep -orient horizontal + pack $w.buttons $w.sep -side bottom -fill x + pack $w.param -side top -fill both -expand true + + UpdateMarkerLoadDialog + + DialogCenter $w + DialogWait $w ed(ok) + DialogDismiss $w + + if {$ed(ok)} { + set marker(format) $ed(format) + set marker(system) $ed(system) + set marker(sky) $ed(sky) + set marker(skyformat) $ed(skyformat) + set marker(load) $ed(load) + } + + set rr $ed(ok) + unset ed + return $rr +} + +proc UpdateMarkerLoadDialog {} { + global ed + global current + + set mm $ed(cb).menu + set ed(frame) $current(frame) + CoordMenuEnable $mm ed system 1 sky skyformat + + switch -- $ed(format) { + xy {$ed(cb) configure -state normal} + default {$ed(cb) configure -state disabled} + } + + AdjustCoordSystem ed system + CoordMenuButtonCmd ed system sky {} +} + +proc MarkerSaveDialog {title} { + global marker + global ed + global current + global wcs + + set w {.mkd} + + set ed(ok) 0 + set ed(format) $marker(format) + set ed(frame) $current(frame) + + set ed(system) $wcs(system) + set ed(sky) $wcs(sky) + set ed(skyformat) $wcs(skyformat) + AdjustCoordSystem ed system + + DialogCreate $w $title ed(ok) + + # Param + set f [ttk::frame $w.param] + + ttk::label $f.formattitle -text [msgcat::mc {Format}] + set m $f.formatbutton.menu + ttk::menubutton $f.formatbutton -textvariable ed(format) -menu $m + ttk::label $f.coordtitle -text [msgcat::mc {Coordinate System}] + set ed(cb) $f.coordbutton + + CoordMenuButton $ed(cb) ed system 1 sky skyformat UpdateMarkerSaveDialog + + menu $m + $m add radiobutton -label {DS9/Funtools} -variable ed(format) -value ds9 \ + -command UpdateMarkerSaveDialog + $m add radiobutton -label {XML} -variable ed(format) -value xml \ + -command UpdateMarkerSaveDialog + $m add radiobutton -label {CIAO} -variable ed(format) -value ciao \ + -command UpdateMarkerSaveDialog + $m add radiobutton -label {SAOtng} -variable ed(format) -value saotng \ + -command UpdateMarkerSaveDialog + $m add radiobutton -label {SAOimage} -variable ed(format) -value saoimage \ + -command UpdateMarkerSaveDialog + $m add radiobutton -label {IRAF PROS} -variable ed(format) -value pros \ + -command UpdateMarkerSaveDialog + $m add radiobutton -label {X Y} -variable ed(format) -value xy \ + -command UpdateMarkerSaveDialog + + grid $f.formattitle $f.formatbutton -padx 2 -pady 2 -sticky w + grid $f.coordtitle $f.coordbutton -padx 2 -pady 2 -sticky w + + # Button + set f [ttk::frame $w.buttons] + ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed(ok) 1} \ + -default active + ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed(ok) 0} + pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4 + + bind $w <Return> {set ed(ok) 1} + + # Fini + ttk::separator $w.sep -orient horizontal + pack $w.buttons $w.sep -side bottom -fill x + pack $w.param -side top -fill both -expand true + + UpdateMarkerSaveDialog + + DialogCenter $w + DialogWait $w ed(ok) + DialogDismiss $w + + if {$ed(ok)} { + set marker(format) $ed(format) + set marker(system) $ed(system) + set marker(sky) $ed(sky) + set marker(skyformat) $ed(skyformat) + } + + set rr $ed(ok) + unset ed + return $rr +} + +proc UpdateMarkerSaveDialog {} { + global ed + global current + + set mm $ed(cb).menu + set ed(frame) $current(frame) + CoordMenuEnable $mm ed system 1 sky skyformat + + switch -- $ed(format) { + ds9 - + xml - + xy {} + + ciao { + switch -- $ed(system) { + detector - + amplifier - + physical - + image {set ed(system) physical} + wcs - + default {set ed(system) wcs} + } + + set ed(sky) fk5 + set ed(skyformat) sexagesimal + + $mm entryconfig [msgcat::mc {Multiple WCS}] -state disabled + $mm entryconfig [msgcat::mc {Image}] -state disabled + $mm entryconfig [msgcat::mc {Amplifier}] -state disabled + $mm entryconfig [msgcat::mc {Detector}] -state disabled + + $mm entryconfig [msgcat::mc {FK4}] -state disabled + $mm entryconfig [msgcat::mc {ICRS}] -state disabled + $mm entryconfig [msgcat::mc {Galactic}] -state disabled + $mm entryconfig [msgcat::mc {Ecliptic}] -state disabled + + $mm entryconfig [msgcat::mc {Degrees}] -state disabled + } + + saotng { + switch -- $ed(system) { + detector - + amplifier - + image - + physical {set ed(system) image} + wcs - + default {set ed(system) wcs} + } + + $mm entryconfig [msgcat::mc {Multiple WCS}] -state disabled + $mm entryconfig [msgcat::mc {Physical}] -state disabled + $mm entryconfig [msgcat::mc {Amplifier}] -state disabled + $mm entryconfig [msgcat::mc {Detector}] -state disabled + } + + saoimage { + set ed(system) image + + $mm entryconfig [msgcat::mc {WCS}] -state disabled + $mm entryconfig [msgcat::mc {Multiple WCS}] -state disabled + $mm entryconfig [msgcat::mc {Physical}] -state disabled + $mm entryconfig [msgcat::mc {Amplifier}] -state disabled + $mm entryconfig [msgcat::mc {Detector}] -state disabled + + $mm entryconfig [msgcat::mc {FK4}] -state disabled + $mm entryconfig [msgcat::mc {FK5}] -state disabled + $mm entryconfig [msgcat::mc {ICRS}] -state disabled + $mm entryconfig [msgcat::mc {Galactic}] -state disabled + $mm entryconfig [msgcat::mc {Ecliptic}] -state disabled + + $mm entryconfig [msgcat::mc {Degrees}] -state disabled + $mm entryconfig {Sexagesimal} -state disabled + } + + pros { + switch -- $ed(system) { + detector - + physical - + amplifier {set ed(system) physical} + image {} + wcs - + default {set ed(system) wcs} + } + if {$ed(sky) == {icrs}} { + set ed(sky) fk5 + } + + $mm entryconfig [msgcat::mc {Multiple WCS}] -state disabled + $mm entryconfig [msgcat::mc {Amplifier}] -state disabled + $mm entryconfig [msgcat::mc {Detector}] -state disabled + + $mm entryconfig [msgcat::mc {ICRS}] -state disabled + } + } + + AdjustCoordSystem ed system + CoordMenuButtonCmd ed system sky {} +} + + |