+
+#---------- user interface ----------
+
+proc widgets-setup {} {
+ global canvas debug acqdeffont
+
+ frame .f -border 1 -relief groove
+ set canvas .f.c
+ canvas $canvas
+ pack $canvas -expand 1 -fill both
+ pack .f -expand 1 -fill both -side left
+
+ frame .ctrl
+ pack .ctrl -side right
+
+ debug "BBOX [$canvas bbox all]"
+
+ panner::canvas-scroll-bbox .f.c
+ panner::create .ctrl.pan .f.c 120 120 $debug
+
+ pack .ctrl.pan -side top -pady 10 -padx 5
+ frame .ctrl.zoom
+ pack .ctrl.zoom -side top
+
+ button .ctrl.zoom.out -text - -font {Courier 16} -command {zoom /2}
+ button .ctrl.zoom.in -text + -font {Courier 16} -command {zoom *2}
+ pack .ctrl.zoom.out .ctrl.zoom.in -side left
+
+ frame .ctrl.acquire
+ button .ctrl.acquire.do -text Acquire -command acquire
+
+ frame .ctrl.acquire.resframe -width 120 -height 32
+ button .ctrl.acquire.resframe.res -text {} -anchor nw \
+ -padx 1 -pady 1 -borderwidth 0 -justify left
+ glset acqdeffont [.ctrl.acquire.resframe.res cget -font]
+ place .ctrl.acquire.resframe.res -relx 0.5 -y 0 -anchor n
+ # -relheight 1.0 -relwidth 1.0
+
+ pack .ctrl.acquire.do -side top
+ pack .ctrl.acquire.resframe -side top -expand y -fill both
+ pack .ctrl.acquire -side top
+
+ wm geometry . 1024x480
+}
+
+proc zoom {extail} {
+ global scale canvas
+ set nscale [expr "\$scale $extail"]
+ debug "ZOOM $scale $nscale"
+ if {$nscale < 1 || $nscale > 200} return
+ set scale $nscale
+ draw