aboutsummaryrefslogtreecommitdiff
path: root/vendor/x11iraf/ximtool/gui/save.tcl
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /vendor/x11iraf/ximtool/gui/save.tcl
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'vendor/x11iraf/ximtool/gui/save.tcl')
-rw-r--r--vendor/x11iraf/ximtool/gui/save.tcl156
1 files changed, 156 insertions, 0 deletions
diff --git a/vendor/x11iraf/ximtool/gui/save.tcl b/vendor/x11iraf/ximtool/gui/save.tcl
new file mode 100644
index 00000000..36706d31
--- /dev/null
+++ b/vendor/x11iraf/ximtool/gui/save.tcl
@@ -0,0 +1,156 @@
+
+################################################################################
+# Save panel functions.
+################################################################################
+
+# Global variables needed for the save setup panel
+
+set format rasButton
+set saveColor svPseudoButton
+
+set fileFmtButtons {
+ rasButton gifButton jpegButton tiffButton
+ fitsButton x11Button epsButton rawButton
+}
+
+
+# Format group procedures.
+#---------------------------------
+
+# Select a format.
+
+proc set_format { widget func state args } \
+{
+ global format saveColor
+
+ send $format set on false
+ if {$widget == $format} {
+ send $widget set on true
+ } else {
+ switch $widget {
+ rasButton { send client setSaveOption format ras }
+ gifButton { send client setSaveOption format gif }
+ jpegButton { send client setSaveOption format jpeg }
+ tiffButton { send client setSaveOption format tiff }
+ fitsButton { send client setSaveOption format fits }
+ x11Button { send client setSaveOption format x11 }
+ epsButton { send client setSaveOption format eps }
+ rawButton { send client setSaveOption format raw }
+ }
+ }
+} ; foreach fmt $fileFmtButtons { send $fmt addCallback set_format }
+
+proc setSaveFile { widget cbtype args } \
+{
+ send client setSaveOption fname $args
+ send saveStatus set label [format "output file set to %s" $args]
+}; send saveFile addCallback setSaveFile
+
+
+proc doSaveOptions { param old new } \
+{
+ global format saveColor
+ global warnings
+
+ send saveStatus set label {}
+ set val [join [lrange $new 1 end] " "]
+
+ #print [format "doSaveOptions %s = %s" [lindex $new 0] $val]
+ switch [lindex $new 0] {
+ format {
+ # Now (de)sensitize the color options depending on the format,
+ # force the color choice when needed.
+ send $format set on false
+ switch [lindex $val 0] {
+ ras { #send svRGBButton setSensitive false
+ send svPseudoButton setSensitive true
+ set format rasButton
+ }
+ gif { send svRGBButton setSensitive false
+ send svPseudoButton setSensitive true
+ if {$saveColor == "svRGBButton"} {
+ send $saveColor set on false
+ send svPseudoButton set on true
+ set saveColor svPseudoButton
+ }
+ set format gifButton
+ }
+ jpeg { send svRGBButton setSensitive true
+ send svPseudoButton setSensitive true
+ set format jpegButton
+ }
+ tiff { send svRGBButton setSensitive false
+ send svPseudoButton setSensitive true
+ set format tiffButton
+ }
+ fits { send svRGBButton setSensitive false
+ send svPseudoButton setSensitive false
+ send $saveColor set on false
+ send svGrayButton set on true
+ set saveColor svGrayButton
+ set format fitsButton
+ }
+ x11 { send svRGBButton setSensitive true
+ send svPseudoButton setSensitive true
+ set format x11Button
+ }
+ eps { send svRGBButton setSensitive true
+ send svPseudoButton setSensitive true
+ set format epsButton
+ }
+ raw { send svRGBButton setSensitive true
+ send svPseudoButton setSensitive true
+ set format rawButton
+ }
+ }
+ send $format set on true
+ }
+ color { send $saveColor set on false
+ switch [lindex $val 0] {
+ grayscale { send svGrayButton set on true
+ set saveColor svGrayButton
+ }
+ pseudocolor { send svPseudoButton set on true
+ set saveColor svPseudoButton
+ }
+ rgb { send svRGBButton set on true
+ set saveColor svRGBButton
+ }
+ }
+ }
+ fname { send saveFile set string $val
+ }
+ status { send saveStatus set label $val
+ send server synchronize
+ }
+ text { send saveData set label $val
+ }
+ warning { if {$warnings} { Wexec server $val }
+ }
+ }
+} ; send saveOptions addCallback doSaveOptions
+
+
+# Color group procedures.
+#---------------------------------
+send svGrayButton addCallback "send client setSaveOption color grayscale"
+send svPseudoButton addCallback "send client setSaveOption color pseudocolor"
+send svRGBButton addCallback "send client setSaveOption color rgb"
+
+
+proc Save args \
+{
+ global panel_up
+
+ send imagewin setCursorType busy
+
+ # Get the print command or file template if not previous reset.
+ set val [ send saveFile get string ]
+ send client setSaveOption fname $val
+ send saveStatus set label [format "output file set to %s" $args]
+
+ send client save
+ send imagewin setCursorType idle
+} ; send okaySave addCallback Save
+
+