summaryrefslogtreecommitdiffstats
path: root/ds9/library/text.tcl
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-10-27 19:01:15 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-10-27 19:01:15 (GMT)
commit12166aa342f7c8d905097e43a1f50e0775503069 (patch)
tree73a6e7296fbf9898633a02c2503a3e959789d8c3 /ds9/library/text.tcl
parentd4d595fa7fb12903db9227d33d48b2b00120dbd1 (diff)
downloadblt-12166aa342f7c8d905097e43a1f50e0775503069.zip
blt-12166aa342f7c8d905097e43a1f50e0775503069.tar.gz
blt-12166aa342f7c8d905097e43a1f50e0775503069.tar.bz2
Initial commit
Diffstat (limited to 'ds9/library/text.tcl')
-rw-r--r--ds9/library/text.tcl93
1 files changed, 93 insertions, 0 deletions
diff --git a/ds9/library/text.tcl b/ds9/library/text.tcl
new file mode 100644
index 0000000..0ada0a6
--- /dev/null
+++ b/ds9/library/text.tcl
@@ -0,0 +1,93 @@
+# 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 TextDialog {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(canrotate) [$var(frame) get marker $var(id) text rotate]
+
+ # procs
+ set var(which) text
+ set var(proc,apply) TextApply
+ set var(proc,close) TextClose
+ set var(proc,coordCB) TextCoordCB
+
+ # base
+ MarkerBaseCenterDialog $varname
+
+ # init
+ MarkerBaseCenterRotateCB $varname
+
+ # callbacks
+ $var(frame) marker $var(id) callback rotate MarkerBaseCenterRotateCB \
+ $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}]
+
+ # Rotate
+ ttk::label $f.trotate -text [msgcat::mc {Rotate}]
+ ttk::checkbutton $f.rotate -variable ${varname}(canrotate) \
+ -command "TextRotate $varname"
+
+ grid $f.tangle $f.angle $f.uangle -padx 2 -pady 2 -sticky w
+ grid $f.trotate $f.rotate -padx 2 -pady 2 -sticky w
+}
+
+# actions
+
+proc TextClose {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) delete callback rotate MarkerBaseCenterRotateCB
+
+ MarkerBaseCenterClose $varname
+}
+
+proc TextApply {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ MarkerBaseCenterRotate $varname
+ MarkerBaseCenterApply $varname
+}
+
+proc TextRotate {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) text rotate $var(canrotate)
+}
+
+# callbacks
+
+proc TextCoordCB {varname {dummy {}}} {
+ upvar #0 $varname var
+ global $varname
+
+ global debug
+ if {$debug(tcl,marker)} {
+ puts stderr "TextCoordCB"
+ }
+
+ MarkerBaseCoordCB $varname
+ MarkerBaseCenterMoveCB $varname
+ MarkerBaseCenterRotateCB $varname
+}
+