return $id
}
+proc code2canvas1 {code canvas} {
+ set y 2
+ code2canvas $code $canvas 5 y {} 0 {}
+ manyset [$canvas bbox all] minx dummy maxx dummy
+ $canvas configure -width [expr {$maxx-$minx+4}]
+}
+
proc code2canvas {code canvas x yvar qty qtylen bind} {
global vc_code2abbrev
upvar 1 $yvar y
set smcode [smash-code $code]
debug "smashed $code => $smcode"
set smkey "$islandname $smcode"
- foreach vessel $found($key) { lappend smfound($smkey) $vessel }
+ foreach vessel $found($key) {
+ lappend smfound($smkey) [list $vessel $code]
+ }
}
set islandnames {}
listbox .cp.report.list -height 5
+ canvas .cp.report.abbrev1 -width 1 -height 15
+
pack .cp.report.island .cp.report.abbrev .cp.report.details \
- .cp.report.list -side top
+ .cp.report.list .cp.report.abbrev1 -side top
+ bind .cp.report.list <<ListboxSelect>> show-report-abbrev1
+
#pack .cp.report.code -side top
pack configure .cp.report.details -fill x
.cp.report.island configure -text $islandname
.cp.report.abbrev delete all
- set y 2
- code2canvas $code .cp.report.abbrev 5 y {} 0 {}
- manyset [.cp.report.abbrev bbox all] minx dummy maxx dummy
- .cp.report.abbrev configure -width [expr {$maxx-$minx+4}]
+ code2canvas1 $code .cp.report.abbrev
glset report_code $code
show-report-decode $code
set kk "$islandname $code"
- upvar #0 smfound($kk) k
+ upvar #0 smfound($kk) vessels
+ global report_list_codes
+ set report_list_codes {}
.cp.report.list delete 0 end
- foreach elem $k {
+ foreach foundelem $vessels {
+ manyset $foundelem elem code
manyset $elem vid name owner
- lappend owned($owner) $name
+ lappend owned($owner) [list $name $code]
}
foreach owner [lsort [array names owned]] {
}
if {[have-notes]} {
.cp.report.list insert end "$owndesc:"
+ lappend report_list_codes {}
}
- foreach name $owned($owner) {
+ foreach ownelem $owned($owner) {
+ manyset $ownelem name code
.cp.report.list insert end " $name"
+ lappend report_list_codes $code
}
}
+ show-report-abbrev1
+}
+
+proc show-report-abbrev1 {} {
+ global report_list_codes
+ .cp.report.abbrev1 delete all
+ set ix [.cp.report.list curselection]
+ debug "SHOW-REPORT-ABBREV1 $ix $report_list_codes"
+ if {[llength $ix] != 1} return
+ set code [lindex $report_list_codes $ix]
+ if {![string length $code]} return
+ if {![have-notes]} {
+ manyset [split $code _] inport size subclass lockown xabbrev
+ regsub {.$} $lockown 3 lockown
+ set code [join [list $inport $size $subclass $lockown $xabbrev] _]
+ }
+ code2canvas1 $code .cp.report.abbrev1
}
proc zoom {amt} {