+#---------- main user interface ----------
+
+proc widgets-setup {} {
+ global canvas debug pirate ocean
+
+ 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
+
+ parser-control-create .ctrl.acquire \
+ acquire Acquire \
+ "Clipboard parsing error" \
+
+ pack .ctrl.acquire -side top -pady 2
+
+ parser-control-create .ctrl.notes \
+ notes "Reload notes" \
+ "Vessel notes loading report" \
+
+ pack .ctrl.notes -side top -pady 2
+
+ wm geometry . 1024x480
+ wm title . "where-vessels - $pirate on the $ocean ocean"
+}
+
+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
+}
+