blob: 4908e752787a3c775b6b6660ef41f3e19d5ab6e2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
##############################################################################
# Utility Procedures.
##############################################################################
# Utility procedure to test True/False strings in resources.
proc true {v} {expr {$v == "true" || $v == "True" || $v == "TRUE"}}
# Utility functions.
proc min {a b} { expr {($a < $b) ? $a : $b} }
proc max {a b} { expr {($a > $b) ? $a : $b} }
# Global variables.
set version "NOAO/IRAF XImtool Version 1.3EXPORT"
set winWidth [send imagewin get width ] ;# display window width
set winHeight [send imagewin get height] ;# display window height
set appWidth [send display get width ] ;# application window width
set appHeight [send display get height] ;# application window height
set marker none ;# selected marker
set markno 0 ;# used to name new markers
set ruler none ;# selected ruler
set ruleno 0 ;# used to name new rulers
set blinkFrames "1 2" ;# list of blink frames
set auto_reg 0
set panel_up 0 ;# control panel mapped
set help_up 0 ;# help panel mapped
set ism_enable 0 ;# ISM is running
set ism_capable 1 ;# Client is ISM capable
set frameCache(0) "" ;# ISM frame cache
set ctype "equatorial" ;# default coord type
set eqtype "fk5" ;# default equatorial type
# Global constants.
set MAX_FRAMES 16 ;# max frame buffers
# TCL constants
set tcl_precision 8
# Window resize callbacks.
proc winResize {w width height} {
global winWidth winHeight
if {$width <= 1 || $height <= 1} \
return
set winWidth $width
set winHeight $height
} ; send imagewin addCallback winResize resize
proc appResize {w width height} \
{
global doHcut doVcut cutXPos cutYPos
global appWidth appHeight
set appWidth $width
set appHeight $height
catch {
if {$doHcut} {
send hcutPlot clearScreen
hcutInit
send hcutAxes1 redraw ; send hcutAxes2 redraw
cutPlots $cutXPos $cutYPos
}
if {$doVcut} {
send vcutPlot clearScreen
vcutInit
send vcutAxes1 redraw ; send vcutAxes2 redraw
cutPlots $cutXPos $cutYPos
}
}
} ; #send imagewin addCallback appResize resize
# Additional global variables, taking default values from resources.
getResources {
{ zoomfactors }
{ displayCoords }
{ displayPanner }
{ displayMagnifier }
{ blinkRate }
{ pannerArea }
{ pannerGeom }
{ magnifierArea }
{ magnifierGeom }
{ wcsboxGeom }
{ maxContrast }
{ showToolBar }
{ showPanelBar }
{ warnings }
{ centerBoxSize }
{ peakCentroid }
{ highlight }
}
set warnings [true $warnings]
set defaultBlinkRate $blinkRate
# Client state variables (UI parameter objects). Certain of these parameters
# we mirror in Tcl variables here, updating the values with a callback when
# the parameter value changes. Others require special callbacks.
set frame 1 ;# current display frame
set nframes 0 ;# number of frame buffers
set frames {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16} ;# list of image frames
set frameWidth 0 ;# frame buffer width, pixels
set frameHeight 0 ;# frame buffer height, pixels
set frameDepth 8 ;# frame buffer pixel size, bits
set cursorMode 0 ;# true when cursor read pending
foreach i $frames {
set frameZoomX($i) 0 ;# X zoom factor
set frameZoomY($i) 0 ;# Y zoom factor
set frameCenterX($i) 0 ;# X center of field
set frameCenterY($i) 0 ;# Y center of field
set frameScaleX($i) 0 ;# X scale factor
set frameScaleY($i) 0 ;# Y scale factor
set frameOffsetX($i) 0 ;# X register offset
set frameOffsetY($i) 0 ;# Y register offset
set enhancement($i) none ;# colortable enhancement
}
#trace variable frameOffsetX w debug_pvar ;# Debug stuff
#trace variable frameOffsetY w debug_pvar
#trace variable frameZoomX w debug_pvar
#trace variable frameZoomY w debug_pvar
#trace variable frameScaleX w debug_pvar
#trace variable frameScaleY w debug_pvar
proc debug_pvar { name element op } \
{
if {$element != ""} {
set name ${name}($element)
}
upvar $name x
puts "Variable $name set to $x"
}
|