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
|
# Copyright (C) 1999-2017
# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
# For conditions of distribution and use, see copyright notice in "copyright"
package provide DS9 1.0
proc PandaDialog {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
}
# procs
set var(which) panda
set var(proc,apply) PandaApply
set var(proc,close) PandaClose
set var(proc,generate) PandaGenerate
set var(proc,coordCB) PandaCoordCB
set var(proc,editCB) PandaEditCB
set var(proc,distCB) PandaDistCB
# base panda dialog
MarkerBasePandaDialog $varname
set f $var(top).param
# Radius
ttk::label $f.tinner -text [msgcat::mc {Inner}]
ttk::label $f.touter -text [msgcat::mc {Outer}]
ttk::label $f.tradius -text [msgcat::mc {Radius}]
ttk::entry $f.inner -textvariable ${varname}(inner) -width 13
ttk::entry $f.outer -textvariable ${varname}(outer) -width 13
DistMenuButton $f.uradius $varname dcoord 1 dformat \
[list $var(proc,distCB) $varname]
DistMenuEnable $f.uradius.menu $varname dcoord 1 dformat
# Annuli
ttk::label $f.tannuli -text [msgcat::mc {Annuli}]
ttk::entry $f.annuli -textvariable ${varname}(annuli) -width 13
grid x $f.tinner $f.touter -padx 2 -pady 2 -sticky w
grid $f.tradius $f.inner $f.outer $f.uradius -padx 2 -pady 2 -sticky w
grid $f.tannuli $f.annuli -padx 2 -pady 2 -sticky w
# init - do this last
PandaDistCB $varname
}
# actions
proc PandaClose {varname} {
upvar #0 $varname var
global $varname
MarkerBasePandaClose $varname
}
proc PandaApply {varname} {
upvar #0 $varname var
global $varname
MarkerBasePandaApply $varname
}
proc PandaGenerate {varname} {
upvar #0 $varname var
global $varname
MarkerBaseAnnulusGenerateCircle $varname
MarkerBasePandaGenerateAngles $varname
}
# callbacks
proc PandaCoordCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "PandaCoordCB"
}
MarkerBasePandaCoordCB $varname
}
proc PandaEditCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "PandaEditCB"
}
set t [$var(frame) get marker $var(id) panda radius \
$var(dcoord) $var(dformat)]
set last [expr [llength $t]-1]
set var(inner) [lindex $t 0]
set var(outer) [lindex $t $last]
set var(annuli) $last
$var(annulitxt) delete 1.0 end
$var(annulitxt) insert end "$t"
set a [$var(frame) get marker $var(id) panda angle $var(system) $var(sky)]
set last [expr [llength $a]-1]
set var(ang1) [lindex $a 0]
set var(ang2) [lindex $a $last]
set var(angnum) $last
$var(angtxt) delete 1.0 end
$var(angtxt) insert end "$a"
}
proc PandaDistCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "PandaDistCB"
}
MarkerBasePandaDistCB $varname
}
|