blob: 7b3153f5d0b8fe13202b5769d24bc96272591ec0 (
plain)
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
|
# 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 CompositeDialog {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 var(global) [$var(frame) get marker $var(id) composite global]
# procs
set var(proc,apply) CompositeApply
set var(proc,close) CompositeClose
set var(proc,coordCB) CompositeCoordCB
# base
MarkerBaseCenterDialog $varname
# init
MarkerBaseCenterRotateCB $varname
# callbacks
$var(frame) marker $var(id) callback rotate CompositeRotateCB $varname
set f $var(top).param
# Angle
ttk::label $f.tangle -text [msgcat::mc {Angle}]
ttk::entry $f.angle -textvariable ${varname}(angle) -width 13
ttk::label $f.uangle -text [msgcat::mc {Degrees}]
ttk::label $f.tcomp -text [msgcat::mc {Angle Complement}]
ttk::label $f.comp -textvariable ${varname}(comp) -width 13 -anchor w
ttk::label $f.ucomp -text [msgcat::mc {Degrees}]
# Global
ttk::label $f.tglobal -text [msgcat::mc {Global Properties}]
ttk::checkbutton $f.global -variable ${varname}(global) \
-command "CompositeGlobal $varname"
grid $f.tangle $f.angle x $f.uangle -padx 2 -pady 2 -sticky w
grid $f.tcomp $f.comp x $f.ucomp -padx 2 -pady 2 -sticky w
grid $f.tglobal $f.global -padx 2 -pady 2 -sticky w
CompositeCompAngle $varname
}
# actions
proc CompositeClose {varname} {
upvar #0 $varname var
global $varname
$var(frame) marker $var(id) delete callback rotate CompositeRotateCB
MarkerBaseCenterClose $varname
}
proc CompositeApply {varname} {
upvar #0 $varname var
global $varname
CompositeRotate $varname
MarkerBaseCenterApply $varname
}
proc CompositeRotate {varname} {
upvar #0 $varname var
global $varname
$var(frame) marker $var(id) angle $var(angle) $var(system) $var(sky)
CompositeCompAngle $varname
}
proc CompositeCompAngle {varname} {
upvar #0 $varname var
global $varname
set comp [expr 360-$var(angle)]
if {[::math::fuzzy::tge $comp 360]} {
set comp [expr $comp - 360]
}
if {[::math::fuzzy::tlt $comp 0]} {
set comp [expr $comp + 360]
}
set var(comp) $comp
}
proc CompositeGlobal {varname} {
upvar #0 $varname var
global $varname
$var(frame) marker $var(id) composite global $var(global)
}
# callbacks
proc CompositeCoordCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "CompositeCoordCB"
}
MarkerBaseCoordCB $varname
MarkerBaseCenterMoveCB $varname
MarkerBaseCenterRotateCB $varname
}
proc CompositeRotateCB {varname {dummy {}}} {
upvar #0 $varname var
global $varname
global debug
if {$debug(tcl,marker)} {
puts stderr "CompositeRotateCB"
}
set var(angle) [$var(frame) get marker $var(id) angle \
$var(system) $var(sky)]
CompositeCompAngle $varname
}
|