}
+#---------- info toplevel ----------
+
+proc info-toplevel-create {info title} {
+ toplevel $info
+ wm withdraw $info
+ wm title $info "where-vessels - $title"
+ wm protocol $info WM_DELETE_WINDOW [list wm withdraw $info]
+
+ button $info.close -text Close -command [list wm withdraw $info]
+ pack $info.close -side bottom
+}
+
#---------- parser error reporting ----------
proc parser-control-create {w base invokebuttontext etl_title} {
pack $w.resframe -side top -expand y -fill both
set eb .err_$base
- toplevel $eb
- wm withdraw $eb
- wm title $eb "where-vessels - $etl_title"
- wm protocol $eb WM_DELETE_WINDOW [list wm withdraw $eb]
+ info-toplevel-create $eb $etl_title
label $eb.title -text $etl_title
pack $eb.title -side top
- button $eb.close -text Close -command [list wm withdraw $eb]
- pack $eb.close -side bottom
-
frame $eb.emsg -bd 2 -relief groove
label $eb.emsg.lab -anchor nw -text "Error:"
text $eb.emsg.text -height 1
$offset [expr {$offset+$maxchars-1}]]
}
+#---------- print to postscript ----------
+
+proc print-to-postscript {} {
+ global canvas ocean
+ set postscript_fontmap(fixed) {Courier 12}
+ manyset [$canvas bbox all] xmin ymin xmax ymax
+ set file where-vessels.$ocean.ps
+ $canvas postscript -file $file -rotate 1 \
+ -width [expr {$xmax-$xmin}] \
+ -height [expr {$ymax-$ymin}] \
+ -fontmap postscript_fontmap
+ .printed.info configure -text "Printed to $file
+
+Usually, the next thing would be something like"
+ set text "epsffit 0 0 595.276 841.89 <$file >t.ps"
+ .printed.rune configure -state normal
+ .printed.rune delete 1.0 end
+ .printed.rune insert end $text
+ .printed.rune configure -width [string length $text] -state disabled
+ update idletasks
+ wm deiconify .printed
+}
+
#---------- main user interface ----------
proc widgets-setup {} {
if {![have-notes]} {
.cp.ctrl.notes.do configure -state disabled
- }
+ }
+
+ button .cp.ctrl.print -text {Print to file} -command print-to-postscript
+ pack .cp.ctrl.print -side top
+ #----- message saying we've printed -----
+
+ info-toplevel-create .printed "printed"
+
+ label .printed.info
+ text .printed.rune -state disabled -height 1 -borderwidth 0
+ pack .printed.info -side top
+ pack .printed.rune -side top
+
#----- island name count and copy -----
label .islands.count