summaryrefslogtreecommitdiffstats
path: root/ds9/library/stdfbox.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'ds9/library/stdfbox.tcl')
-rw-r--r--ds9/library/stdfbox.tcl547
1 files changed, 547 insertions, 0 deletions
diff --git a/ds9/library/stdfbox.tcl b/ds9/library/stdfbox.tcl
new file mode 100644
index 0000000..1fc0676
--- /dev/null
+++ b/ds9/library/stdfbox.tcl
@@ -0,0 +1,547 @@
+# 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
+
+# do this after the language has been defined and the prefs sourced
+proc InitDialogBox {} {
+ global ds9
+ global pds9
+ global env
+
+ global fitsurl
+ set fitsurl {}
+
+ global fitsfbox
+ set fitsfbox(file) {ds9.fits}
+ set fitsfbox(dir) {}
+ set fitsfbox(types) [list \
+ [list {FITS} {*.fits}] \
+ [list {FITS} {*.FITS}] \
+ [list {FITS} {*.fit}] \
+ [list {FITS} {*.FIT}] \
+ [list {FITS} {*.fts}] \
+ [list {FITS} {*.FTS}] \
+ [list {FITS} {*.ds}] \
+ [list {FITS} {*.DS}] \
+ [list {FITS} {*.fits.gz}] \
+ [list {FITS} {*.fits.bz2}] \
+ [list {FITS} {*.fits.Z}] \
+ [list {FITS} {*.fits.z}] \
+ [list {FITS} {*.fitz}] \
+ [list {FITS} {*.FITZ}] \
+ [list {FITS} {*.ftz}] \
+ [list {FITS} {*.FTZ}] \
+ [list {FITS} {*.fz}] \
+ [list {FITS} {*.FZ}] \
+ ]
+
+ global savefitsfbox
+ set savefitsfbox(file) {ds9.fits}
+ set savefitsfbox(dir) {}
+ set savefitsfbox(types) [list \
+ [list {FITS} {*.fits}] \
+ [list {FITS} {*.fit}] \
+ [list {FITS} {*.fts}] \
+ [list {FITS} {*.fits.gz}] \
+ [list {FITS} {*.fits.bz2}] \
+ [list {FITS} {*.fits.Z}] \
+ [list {FITS} {*.fits.z}] \
+ ]
+
+ global epsfbox
+ set epsfbox(file) {ds9.eps}
+ set epsfbox(dir) {}
+ set epsfbox(types) [list \
+ [list {EPS} {*.eps}] \
+ ]
+ global arrayfbox
+ set arrayfbox(file) {ds9.arr}
+ set arrayfbox(dir) {}
+ set arrayfbox(types) [list \
+ [list [::msgcat::mc {Array}] {*.arr}] \
+ ]
+ global rgbarrayfbox
+ set rgbarrayfbox(file) {ds9.rgb}
+ set rgbarrayfbox(dir) {}
+ set rgbarrayfbox(types) [list \
+ [list [::msgcat::mc {RGB Array}] {*.rgb}] \
+ ]
+ global nrrdfbox
+ set nrrdfbox(file) {ds9.nrrd}
+ set nrrdfbox(dir) {}
+ set nrrdfbox(types) [list \
+ [list {NRRD} {*.nrrd}] \
+ ]
+ global envifbox
+ set envifbox(file) {ds9.hdr}
+ set envifbox(dir) {}
+ set envifbox(types) [list \
+ [list {ENVI} {*.hdr}] \
+ ]
+ global envi2fbox
+ set envi2fbox(file) {ds9.bsq}
+ set envi2fbox(dir) {}
+ set envi2fbox(types) [list \
+ [list {ENVI2} {*.bil}] \
+ [list {ENVI2} {*.bip}] \
+ [list {ENVI2} {*.bsq}] \
+ [list {ENVI2} {*.cube}] \
+ ]
+ global giffbox
+ set giffbox(file) {ds9.gif}
+ set giffbox(dir) {}
+ set giffbox(types) [list \
+ [list {GIF} {*.gif}] \
+ ]
+ global jpegfbox
+ set jpegfbox(file) {ds9.jpeg}
+ set jpegfbox(dir) {}
+ set jpegfbox(types) [list \
+ [list {JPEG} {*.jpeg}] \
+ [list {JPEG} {*.jpg}] \
+ ]
+ global tifffbox
+ set tifffbox(file) {ds9.tiff}
+ set tifffbox(dir) {}
+ set tifffbox(types) [list \
+ [list {TIFF} {*.tiff}] \
+ [list {TIFF} {*.tif}] \
+ ]
+ global pngfbox
+ set pngfbox(file) {ds9.png}
+ set pngfbox(dir) {}
+ set pngfbox(types) [list \
+ [list {PNG} {*.png}] \
+ ]
+ global mpegfbox
+ set mpegfbox(file) {ds9.mpeg}
+ set mpegfbox(dir) {}
+ set mpegfbox(types) [list \
+ [list {MPEG} {*.mpeg}] \
+ [list {MPEG} {*.mpg}] \
+ ]
+
+ global pixelfbox
+ set pixelfbox(file) {ds9.pix}
+ set pixelfbox(dir) {}
+ set pixelfbox(types) [list \
+ [list {PIX} {*.pix}] \
+ ]
+
+ global markerfbox
+ set markerfbox(file) {ds9.reg}
+ set markerfbox(dir) {}
+ set markerfbox(types) [list \
+ [list {REG} {*.reg}] \
+ [list {FITS} {*.fits}] \
+ [list {XML} {*.xml}] \
+ ]
+
+ global templatefbox
+ set templatefbox(file) {ds9.tpl}
+ set templatefbox(dir) {}
+ set templatefbox(types) \
+ [list [list {TPL} {*.tpl}] [list [::msgcat::mc {All}] {*}] ]
+
+ global colorbarfbox
+ set colorbarfbox(file) {ds9.sao}
+ set colorbarfbox(dir) {}
+ set colorbarfbox(types) [list \
+ [list [::msgcat::mc {Colormap}] {*.sao}] \
+ [list [::msgcat::mc {Colormap}] {*.lut}] \
+ ]
+
+ global contrastbiasfbox
+ set contrastbiasfbox(file) {ds9.cb}
+ set contrastbiasfbox(dir) {}
+ set contrastbiasfbox(types) [list \
+ [list {CB} {*.cb}] \
+ ]
+
+ global colortagfbox
+ set colortagfbox(file) {ds9.tag}
+ set colortagfbox(dir) {}
+ set colortagfbox(types) [list \
+ [list {Colortag} {*.tag}] \
+ ]
+
+ global pssavfbox
+ set pssavfbox(file) {ds9.ps}
+ set pssavfbox(dir) {}
+ set pssavfbox(types) [list \
+ [list {PS} {*.ps}] \
+ ]
+
+ global prsavfbox
+ set prsavfbox(file) {ds9.txt}
+ set prsavfbox(dir) {}
+ set prsavfbox(types) [list \
+ [list {TXT} {*.txt}] \
+ ]
+
+ # contour load
+ global contourlfbox
+ set contourlfbox(file) {ds9.ctr}
+ set contourlfbox(dir) {}
+ set contourlfbox(types) [list \
+ [list {CTR} {*.ctr}] \
+ [list {CON} {*.con}] \
+ ]
+
+ # contour save
+ global contoursfbox
+ set contoursfbox(file) {ds9.ctr}
+ set contoursfbox(dir) {}
+ set contoursfbox(types) [list \
+ [list {CTR} {*.ctr}] \
+ ]
+
+ # contour level load
+ global contourlevlfbox
+ set contourlevlfbox(file) {ds9.ctr}
+ set contourlevlfbox(dir) {}
+ set contourlevlfbox(types) [list \
+ [list {CTR} {*.ctr}] \
+ [list {LEV} {*.lev}] \
+ ]
+
+ # contour level save
+ global contourlevsfbox
+ set contourlevsfbox(file) {ds9.lev}
+ set contourlevsfbox(dir) {}
+ set contourlevsfbox(types) [list \
+ [list {LEV} {*.lev}] \
+ ]
+
+ global gridfbox
+ set gridfbox(file) {ds9.grd}
+ set gridfbox(dir) {}
+ set gridfbox(types) [list \
+ [list {GRD} {*.grd}] \
+ ]
+
+ global catfbox
+ set catfbox(file) {ds9.cat}
+ set catfbox(dir) {}
+ set catfbox(types) [list \
+ [list [::msgcat::mc {Catalog}] {*.cat}] \
+ [list [::msgcat::mc {Catalog}] {*.rdb}] \
+ ]
+
+ global cattsvfbox
+ set cattsvfbox(file) {ds9.tsv}
+ set cattsvfbox(dir) {}
+ set cattsvfbox(types) [list \
+ [list [::msgcat::mc {Catalog}] {*.tsv}] \
+ [list [::msgcat::mc {Catalog}] {*.csv}] \
+ ]
+
+ global catvotfbox
+ set catvotfbox(file) {ds9.xml}
+ set catvotfbox(dir) {}
+ set catvotfbox(types) [list \
+ [list [::msgcat::mc {Catalog}] {*.xml}] \
+ [list [::msgcat::mc {Catalog}] {*.vot}] \
+ [list [::msgcat::mc {Catalog}] {*.votable}] \
+ ]
+
+ global catfltfbox
+ set catfltfbox(file) {ds9.flt}
+ set catfltfbox(dir) {}
+ set catfltfbox(types) [list \
+ [list {FLT} {*.flt}] \
+ ]
+
+ global catsymfbox
+ set catsymfbox(file) {ds9.sym}
+ set catsymfbox(dir) {}
+ set catsymfbox(types) [list \
+ [list {SYM} {*.sym}] \
+ ]
+
+ global catcdssrchfbox
+ set catcdssrchfbox(file) {ds9.cds}
+ set catcdssrchfbox(dir) {}
+ set catcdssrchfbox(types) [list \
+ [list {CDS} {*.cds}] \
+ ]
+
+ global analysisfbox
+ set analysisfbox(file) {ds9.ans}
+ set analysisfbox(dir) {}
+ set analysisfbox(types) [list \
+ [list [::msgcat::mc {Analysis}] {*.ans}] \
+ [list [::msgcat::mc {Analysis}] {*.ds9}] \
+ ]
+
+ global analysisparamfbox
+ set analysisparamfbox(file) {}
+ set analysisparamfbox(dir) {}
+ set analysisparamfbox(types) [list \
+ ]
+
+ global apsavfbox
+ set apsavfbox(file) {ds9.ps}
+ set apsavfbox(dir) {}
+ set apsavfbox(types) [list \
+ [list {PS} {*.ps}] \
+ ]
+
+ global apdatafbox
+ set apdatafbox(file) {ds9.dat}
+ set apdatafbox(dir) {}
+ set apdatafbox(types) [list \
+ [list {DAT} {*.dat}] \
+ ]
+
+ global apconfigfbox
+ set apconfigfbox(file) {ds9.plt}
+ set apconfigfbox(dir) {}
+ set apconfigfbox(types) [list \
+ [list {PLT} {*.plt}] \
+ ]
+
+ global textfbox
+ set textfbox(file) {ds9.txt}
+ set textfbox(dir) {}
+ set textfbox(types) [list \
+ [list {TXT} {*.txt}] \
+ ]
+
+ global tclfbox
+ set tclfbox(file) {ds9.tcl}
+ set tclfbox(dir) {}
+ set tclfbox(types) [list \
+ [list {TCL} {*.tcl}] \
+ ]
+
+ global hvhtmlfbox
+ set hvhtmlfbox(file) {ds9.html}
+ set hvhtmlfbox(dir) {}
+ set hvhtmlfbox(types) [list \
+ [list {HTML} {*.html}] \
+ [list {HTML} {*.htm}] \
+ ]
+
+ global wcsfbox
+ set wcsfbox(file) {ds9.wcs}
+ set wcsfbox(dir) {}
+ set wcsfbox(types) [list \
+ [list {WCS} {*.wcs}] \
+ ]
+
+ global backupfbox
+ set backupfbox(file) {ds9.bck}
+ set backupfbox(dir) {}
+ set backupfbox(types) [list \
+ [list {BCK} {*.bck}] \
+ ]
+
+}
+
+proc SetFileLast {format item} {
+ switch $format {
+ mecube -
+ multiframe -
+ mosaic -
+ mosaicimage -
+ rgbcube -
+ rgbimage -
+ fits {FileLast fitsfbox $item}
+
+ array {FileLast arrayfbox $item}
+ rgbarray {FileLast rgbarrayfbox $item}
+ envi {FileLast envifbox $item}
+ envi2 {FileLast envi2fbox $item}
+ gif {FileLast giffbox $item}
+ jpeg {FileLast jpegfbox $item}
+ nrrd {FileLast nrrdfbox $item}
+ tiff {FileLast tifffbox $item}
+ png {FileLast pngfbox $item}
+
+ sfits -
+ srgbcube -
+ sfits -
+ smosaic -
+ url {}
+ }
+}
+
+proc ExtToFormat {fn} {
+ switch -- [file extension $fn] {
+ .fits -
+ .FITS -
+ .fit -
+ .FIT -
+ .fts -
+ .FTS -
+ .ds -
+ .DS -
+ .fits.gz -
+ .fits.bz2 -
+ .fits.Z -
+ .fits.z -
+ .fitz -
+ .FITZ -
+ .ftz -
+ .FTZ -
+ .fz -
+ .FZ {return fits}
+ .arr -
+ .array {return array}
+ .rgb {return rgbarray}
+ .nrrd {return nrrd}
+ .eps -
+ .epsf {return eps}
+ .gif -
+ .giff {return gif}
+ .jpg -
+ .jpeg {return jpeg}
+ .tif -
+ .tiff {return tiff}
+ .png {return png}
+ .mpg -
+ .mpeg {return mpeg}
+ .hdr -
+ .bil -
+ .bip -
+ .bsq -
+ .cube {return envi}
+ }
+}
+
+# used by backup
+proc OpenFileDialog {varname} {
+ return [FileDialog $varname tk_getOpenFile]
+}
+
+proc SaveFileDialog {varname} {
+ return [FileDialog $varname tk_getSaveFile]
+}
+
+proc FileDialog {varname which} {
+ global pds9
+
+ switch -- $pds9(dialog) {
+ motif {return [FileDialogMotif $varname $which]}
+ windows {return [FileDialogWindows $varname $which]}
+ native {return [FileDialogNative $varname $which]}
+ }
+}
+
+proc FileDialogMotif {varname which} {
+ upvar #0 $varname var
+ global ds9
+ global pds9
+
+ switch -- $which {
+ tk_getOpenFile {set type open}
+ tk_getSaveFile {set type save}
+ }
+
+
+ if {$pds9(dialog,all)} {
+ set types [linsert $var(types) 0 [list [::msgcat::mc {All}] {*}]]
+ } else {
+ set types [linsert $var(types) end [list [::msgcat::mc {All}] {*}]]
+ }
+
+ set result [::tk::MotifFDialog $type \
+ -filetypes $types \
+ -initialdir $var(dir) \
+ -initialfile $var(file) \
+ -parent $ds9(top)]
+
+ if {$result != {}} {
+ set var(file) [file tail $result]
+ set var(dir) [file dirname $result]
+ }
+
+ return $result
+}
+
+proc FileDialogWindows {varname which} {
+ upvar #0 $varname var
+ global ds9
+ global pds9
+
+ switch -- $which {
+ tk_getOpenFile {set type open}
+ tk_getSaveFile {set type save}
+ }
+
+ if {$pds9(dialog,all)} {
+ set types [linsert $var(types) 0 [list [::msgcat::mc {All}] {*}]]
+ } else {
+ set types [linsert $var(types) end [list [::msgcat::mc {All}] {*}]]
+ }
+
+ set result [::tk::dialog::file:: $type \
+ -filetypes $types \
+ -initialdir $var(dir) \
+ -initialfile $var(file) \
+ -parent $ds9(top)]
+
+ if {$result != {}} {
+ set var(file) [file tail $result]
+ set var(dir) [file dirname $result]
+ }
+
+ return $result
+}
+
+proc FileDialogNative {varname which} {
+ upvar #0 $varname var
+ global ds9
+ global pds9
+
+ if {$pds9(dialog,all)} {
+ set types [linsert $var(types) 0 [list [::msgcat::mc {All}] {*}]]
+ } else {
+ set types [linsert $var(types) end [list [::msgcat::mc {All}] {*}]]
+ }
+
+ if {[catch {$which \
+ -filetypes $types \
+ -initialdir $var(dir) \
+ -initialfile $var(file) \
+ -parent $ds9(top)} result]} {
+
+ # must have a bad file name, just clear and try again
+ set var(file) {}
+ set var(dir) {}
+ if {[catch {$which \
+ -filetypes $types \
+ -parent $ds9(top)} result]} {
+
+ #ok, something is really wrong
+ catch {$which -parent $ds9(top)} result
+ }
+ }
+
+ if {$result != {}} {
+ set var(file) [file tail $result]
+ set var(dir) [file dirname $result]
+ }
+
+ return $result
+}
+
+
+proc FileLast {varname fn} {
+ upvar #0 $varname var
+ global ds9
+
+ switch $ds9(wm) {
+ x11 {
+ set var(file) [file tail $fn]
+ set var(dir) [file dirname $fn]
+ }
+ aqua {
+ # don't conflict with native dialog
+ }
+ win32 {}
+ }
+}