--vessel-info-source { glset info_source [nextarg] }
--filter-separate-lock-owner { glset filter_lockown_separate 1 }
--debug { incr debug }
- default { badusage "unknown option $arg" }
+ default { badusage "bad option $arg; see README.where-vessels" }
}
}
set argv [lrange $argv $ai end]
global notes_loc
return [string length $notes_loc]
}
+proc have-ownership {} {
+ global pirate
+ return [expr {[have-notes] && [string length $pirate]}]
+}
proc argdefaults {} {
global ocean notes_loc pirate scraper
set cmd {./yarrg --find-window-only --quiet}
if {[info exists ocean]} { lappend cmd --ocean $ocean }
if {[info exists pirate]} { lappend cmd --pirate $pirate }
- manyset [split [eval exec $cmd] " "] ocean pirate
+ if {[catch {
+ manyset [split [eval exec $cmd] " "] ocean pirate
+ } emsg]} {
+ puts stderr "yarrg: [string trim $emsg]"
+ puts stderr "Alternatively pass, --ocean and perhaps --pirate options to where-vessels"
+ exit 1
+ }
if {![llength $ocean] || ![llength $pirate]} {
error "$ocean $pirate ?"
}
}
if {![info exists pirate]} {
set pirate {}
- glset filter_lockown_separate 1
}
if {![have-notes]} {
glset filter_lockown_separate 1
1 { report-set own "Other pirate's" }
2 { report-set own "Owner unknown" }
3 { report-set own "(All ownerships)" }
- 4 - 5 { report-set own "(Yours/unknown)" }
+ 4 - 5 { report-set own "(Not yours / unknown)" }
default { report-set own "?? $notown" }
}
}
proc smash-prepare {} {
global vc_codes smash_sizemap smash_size smash_sizeinexact
set mapto {}
- catch { unset smash_sizeplus }
+ catch { unset smash_sizeinexact }
foreach size $vc_codes {
if {!$smash_size($size)} {
set mapto $size
-command [list redraw-needed radio-smasher $sma] \
-text [lindex $descs $i]
}
+ return $w
}
proc make-smashers {} {
make-radio-smasher subclass Class smash_subclass \
{Show Normal/LE Hide} 1 0
- glset smash_owner [expr {[have-notes] ? 0 : 3}]
- make-radio-smasher owner "Lock/\nowner" smash_owner \
- {Show Yours? {For you} Lock Hide} 2 3
+ glset smash_owner [expr {[have-ownership] ? 0 : 3}]
+ set cw [make-radio-smasher owner "Lock/\nowner" smash_owner \
+ {Show Yours? {For you} Lock Hide} 2 3]
+ if {![have-notes]} { $cw.0 configure -state disabled }
+ if {![have-ownership]} {
+ foreach ix {1 2} { $cw.$ix configure -state disabled }
+ }
set cw [make-smasher xabbrev "Flags" frame]
foreach ix {1 3} ab {a b} width {14 12} {
frame .smash -relief groove -bd 2 -padx 1
frame .filter -relief groove -bd 2 -padx 1
frame .islands -pady 2
- pack .cp .filter .islands .smash -side top
+ pack .cp .filter .islands .smash -side top -fill x
label .smash.title -text {Display/combine details}
grid .smash.title -row 0 -column 0 -columnspan 2
- set filterstyle 1
+ set filterstyle [expr {[have-ownership] ? 1 : 3}]
trace add variable filterstyle write filterstyle-changed
frame .filter.title
label .filter.title.title -text Show
pack .filter.title.title -side left
- for {set fing 0} {$fing < 4} {incr fing} {
+ foreach fing {0 1 2 3} {
radiobutton .filter.title.f$fing \
-variable filterstyle -value $fing \
-text [lindex {All Useable Mine These:} $fing]
pack .filter.title.f$fing -side left
}
+ if {![have-ownership]} {
+ foreach fing {1 2} { .filter.title.f$fing configure -state disabled }
+ }
grid configure .filter.title -row 0 -column 0 -columnspan 2
#----- decoding etc. report -----
frame .cp.report
- pack .cp.report -side left -anchor n
+ pack .cp.report -side left -anchor n -fill both -expand y
label .cp.report.island -text { }
.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
+ pack configure .cp.report.list -fill x
foreach sw {inport size subclass lock own xabbrev} {
label .cp.report.details.$sw -text { }