summaryrefslogtreecommitdiffstats
path: root/ds9/library/debug.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'ds9/library/debug.tcl')
-rw-r--r--ds9/library/debug.tcl285
1 files changed, 285 insertions, 0 deletions
diff --git a/ds9/library/debug.tcl b/ds9/library/debug.tcl
new file mode 100644
index 0000000..32188dc
--- /dev/null
+++ b/ds9/library/debug.tcl
@@ -0,0 +1,285 @@
+# 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 DebugDef {} {
+ global debug
+
+ set debug(tcl,events) 0
+ set debug(tcl,update) 0
+ set debug(tcl,idletasks) 0
+ set debug(tcl,layout) 0
+ set debug(tcl,info) 0
+ set debug(tcl,marker) 0
+ set debug(tcl,hv) 0
+ set debug(tcl,cat) 0
+ set debug(tcl,sia) 0
+ set debug(tcl,ime) 0
+ set debug(tcl,samp) 0
+ set debug(tcl,grid) 0
+ set debug(tcl,restore) 0
+ set debug(tcl,http) 0
+ set debug(tcl,ftp) 0
+ set debug(tcl,xpa) 0
+ set debug(tcl,image) 0
+
+ set debug(tksao,ast) 0
+ set debug(tksao,mosaic) 0
+ set debug(tksao,parser) 0
+ set debug(tksao,perf) 0
+ set debug(tksao,wcs) 0
+ set debug(tksao,bin) 0
+ set debug(tksao,block) 0
+ set debug(tksao,compress) 0
+ set debug(tksao,gz) 0
+ set debug(tksao,rgb) 0
+ set debug(tksao,crop) 0
+
+ set debug(iis) 0
+}
+
+proc Debug {which varname} {
+ upvar $varname var
+ global current
+
+ if {$current(frame) != {}} {
+ $current(frame) debug $which $var
+ }
+}
+
+proc DebugMenu {} {
+ global ds9
+ global debug
+
+ if {[winfo exists $ds9(mb).debug]} {
+ return
+ }
+
+ $ds9(mb) add cascade -label {Debug} -menu $ds9(mb).debug
+
+ menu $ds9(mb).debug
+ $ds9(mb).debug add cascade -label {Tcl} -menu $ds9(mb).debug.tcl
+ $ds9(mb).debug add cascade -label {TKSAO} -menu $ds9(mb).debug.tksao
+ $ds9(mb).debug add cascade -label {IIS} -menu $ds9(mb).debug.iis
+
+ menu $ds9(mb).debug.tcl
+ $ds9(mb).debug.tcl add checkbutton -label {Events} \
+ -variable debug(tcl,events)
+ $ds9(mb).debug.tcl add checkbutton -label {Update} \
+ -variable debug(tcl,update)
+ $ds9(mb).debug.tcl add checkbutton -label {Idletasks} \
+ -variable debug(tcl,idletasks)
+ $ds9(mb).debug.tcl add checkbutton -label {Layout} \
+ -variable debug(tcl,layout)
+ $ds9(mb).debug.tcl add checkbutton -label {Info} \
+ -variable debug(tcl,info)
+ $ds9(mb).debug.tcl add checkbutton -label {Marker} \
+ -variable debug(tcl,marker)
+ $ds9(mb).debug.tcl add checkbutton -label {HV} \
+ -variable debug(tcl,hv)
+ $ds9(mb).debug.tcl add checkbutton -label {Catalog} \
+ -variable debug(tcl,cat)
+ $ds9(mb).debug.tcl add checkbutton -label {SIA} \
+ -variable debug(tcl,sia)
+ $ds9(mb).debug.tcl add checkbutton -label {IME} \
+ -variable debug(tcl,ime)
+ $ds9(mb).debug.tcl add checkbutton -label {SAMP} \
+ -variable debug(tcl,samp)
+ $ds9(mb).debug.tcl add checkbutton -label {Grid} \
+ -variable debug(tcl,grid)
+ $ds9(mb).debug.tcl add checkbutton -label {Restore} \
+ -variable debug(tcl,restore)
+ $ds9(mb).debug.tcl add checkbutton -label {HTTP} \
+ -variable debug(tcl,http)
+ $ds9(mb).debug.tcl add checkbutton -label {FTP} \
+ -variable debug(tcl,ftp)
+ $ds9(mb).debug.tcl add checkbutton -label {XPA} \
+ -variable debug(tcl,xpa)
+ $ds9(mb).debug.tcl add checkbutton -label {IMAGE} \
+ -variable debug(tcl,image)
+
+ menu $ds9(mb).debug.tksao
+ $ds9(mb).debug.tksao add checkbutton -label {AST} \
+ -variable debug(tksao,ast) \
+ -command "Debug ast debug(tksao,ast)"
+ $ds9(mb).debug.tksao add checkbutton -label {Mosaic} \
+ -variable debug(tksao,mosaic) \
+ -command "Debug mosaic debug(tksao,mosaic)"
+ $ds9(mb).debug.tksao add checkbutton -label {Parser} \
+ -variable debug(tksao,parser) \
+ -command "Debug parser debug(tksao,parser)"
+ $ds9(mb).debug.tksao add checkbutton -label {Perf} \
+ -variable debug(tksao,perf) \
+ -command "Debug perf debug(tksao,perf)"
+ $ds9(mb).debug.tksao add checkbutton -label {WCS} \
+ -variable debug(tksao,wcs) \
+ -command "Debug wcs debug(tksao,wcs)"
+ $ds9(mb).debug.tksao add checkbutton -label {Bin} \
+ -variable debug(tksao,bin) \
+ -command "Debug bin debug(tksao,bin)"
+ $ds9(mb).debug.tksao add checkbutton -label {Block} \
+ -variable debug(tksao,block) \
+ -command "Debug block debug(tksao,block)"
+ $ds9(mb).debug.tksao add checkbutton -label {Compress} \
+ -variable debug(tksao,compress) \
+ -command "Debug compress debug(tksao,compress)"
+ $ds9(mb).debug.tksao add checkbutton -label {GZ} \
+ -variable debug(tksao,gz) \
+ -command "Debug gz debug(tksao,gz)"
+ $ds9(mb).debug.tksao add checkbutton -label {RGB} \
+ -variable debug(tksao,rgb) \
+ -command "Debug rgb debug(tksao,rgb)"
+ $ds9(mb).debug.tksao add checkbutton -label {Crop} \
+ -variable debug(tksao,crop) \
+ -command "Debug crop debug(tksao,crop)"
+
+ menu $ds9(mb).debug.iis
+ $ds9(mb).debug.iis add checkbutton -label {IIS} \
+ -variable debug(iis) -command IISDebug
+}
+
+proc DumpURL {varname} {
+ upvar $varname r
+
+ puts stderr "r(scheme)=$r(scheme)"
+ puts stderr "r(authority)=$r(authority)"
+ puts stderr "r(path)=$r(path)"
+ puts stderr "r(query)=$r(query)"
+ puts stderr "r(fragment)=$r(fragment)"
+}
+
+proc DumpCallStack {} {
+ for {set x [expr [info level]-1]} {$x>0} {incr x -1} {
+ puts stderr "$x: [info level $x]"
+ }
+}
+
+proc DumpArray {varname} {
+ upvar $varname var
+ global $varname
+ foreach f [array names $varname] {
+ puts stderr "${varname}($f) = $var($f)"
+ }
+}
+
+# Process Cmds
+
+proc ProcessDebugTclCmd {varname iname} {
+ upvar $varname var
+ upvar $iname i
+
+ # default debug dialog
+ if {[info proc bgerror] != {}} {
+ rename bgerror {}
+ }
+
+ global debug
+ switch -- [string tolower [lindex $var $i]] {
+ events {set debug(tcl,events) 1}
+ update {set debug(tcl,update) 1}
+ idletasks {set debug(tcl,idletasks) 1}
+ layout {set debug(tcl,layout) 1}
+ info {set debug(tcl,info) 1}
+ marker {set debug(tcl,marker) 1}
+ hv {set debug(tcl,hv) 1}
+ cat {set debug(tcl,cat) 1}
+ sia {set debug(tcl,sia) 1}
+ ime {set debug(tcl,ime) 1}
+ samp {set debug(tcl,samp) 1}
+ grid {set debug(tcl,grid) 1}
+ restore {set debug(tcl,restore) 1}
+ http {set debug(tcl,http) 1}
+ ftp {set debug(tcl,ftp) 1}
+ xpa {set debug(tcl,xpa) 1}
+ image {
+ set debug(tcl,hv) 1
+ set debug(tcl,http) 1
+ set debug(tcl,image) 1
+ }
+ }
+}
+
+proc ProcessDebugCmd {varname iname} {
+ upvar $varname var
+ upvar $iname i
+
+ DebugMenu
+
+ global debug
+ switch -- [string tolower [lindex $var $i]] {
+ ast {
+ set debug(tksao,ast) 1
+ Debug ast debug(tksao,ast)
+ }
+ mosaic {
+ set debug(tksao,mosaic) 1
+ Debug mosaic debug(tksao,mosaic)
+ }
+ parser {
+ set debug(tksao,parser) 1
+ Debug parser debug(tksao,parser)
+ }
+ perf {
+ set debug(tksao,perf) 1
+ Debug perf debug(tksao,perf)
+ }
+ wcs {
+ set debug(tksao,wcs) 1
+ Debug wcs debug(tksao,wcs)
+ }
+ bin {
+ set debug(tksao,bin) 1
+ Debug bin debug(tksao,bin)
+ }
+ block {
+ set debug(tksao,block) 1
+ Debug block debug(tksao,block)
+ }
+ compress {
+ set debug(tksao,compress) 1
+ Debug compress debug(tksao,compress)
+ }
+ gz {
+ set debug(tksao,gz) 1
+ Debug gz debug(tksao,gz)
+ }
+ iis {
+ set debug(iis) 1
+ IISDebug
+ }
+ rgb {
+ set debug(tksao,rgb) 1
+ Debug rgb debug(tksao,rgb)
+ }
+ crop {
+ set debug(tksao,crop) 1
+ Debug crop debug(tksao,crop)
+ }
+
+ events -
+ update -
+ idletasks -
+ layout -
+ info -
+ marker -
+ watch -
+ hv -
+ cat -
+ sia -
+ ime -
+ samp -
+ grid -
+ restore -
+ http -
+ ftp -
+ xpa -
+ image {}
+
+ default {
+ incr ${iname} -1
+ }
+ }
+}
+