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
|
# Copyright (C) 1999-2018
# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
# For conditions of distribution and use, see copyright notice in "copyright"
package provide DS9 1.0
proc ProjectionDialog {varname} {
upvar #0 $varname var
global $varname
# see if we already have a header window visible
if {[winfo exists $var(top)]} {
raise $var(top)
return
}
# variables
set rr [$var(frame) get wcs]
set var(tcoord) [lindex $rr 0]
set var(tformat) degrees
AdjustCoordSystem $varname tcoord
# procs
set var(which) projection
set var(proc,apply) ProjectionApply
set var(proc,coordCB) ProjectionCoordCB
set var(proc,editCB) ProjectionEditCB
set var(proc,distCB) ProjectionDistCB
# base
MarkerBaseLineDialog $varname 500 200
# analysis
$var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
menu $var(mb).analysis
# plot2d
MarkerAnalysisPlot2dDialog $varname
# init
ProjectionThickCB $varname
set f $var(top).param
# Thick
ttk::label $f.tthick -text [msgcat::mc {Thickness}]
ttk::entry $f.thick -textvariable ${varname}(thick) -width 13
DistMenuButton $f.uthick $varname tcoord 1 tformat \
[list ProjectionThickCB $varname]
DistMenuEnable $f.uthick.menu $varname tcoord 1 tformat
grid $f.tthick $f.thick $f.uthick -padx 2 -pady 2 -sticky w
}
# actions
proc ProjectionApply {varname} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "ProjectionApply"
}
$var(frame) marker $var(id) projection $var(system) $var(sky) \
$var(x) $var(y) $var(x2) $var(y2) \
$var(thick) $var(tcoord) $var(tformat)
MarkerBaseLineApply $varname
}
# callbacks
proc ProjectionCoordCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "ProjectionCoordCB"
}
MarkerAnalysisPlot2dSystem $varname
MarkerBaseCoordCB $varname
ProjectionEditCB $varname
}
proc ProjectionEditCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "ProjectionEditCB"
}
MarkerBaseLineEditCB $varname
set var(dist) [$var(frame) get marker $var(id) projection length \
$var(dcoord) $var(dformat)]
set var(thick) [$var(frame) get marker $var(id) projection thick \
$var(tcoord) $var(tformat)]
set var(angle) [$var(frame) get marker $var(id) angle \
$var(system) $var(sky)]
}
proc ProjectionDistCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "ProjectionDistCB"
}
set var(dist) [$var(frame) get marker $var(id) projection length \
$var(dcoord) $var(dformat)]
}
proc ProjectionThickCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "ProjectionThickCB"
}
set var(thick) [$var(frame) get marker $var(id) projection thick \
$var(tcoord) $var(tformat)]
}
|