chiark / gitweb /
where-vessels: use icon jk-fan-2.xbm
[ypp-sc-tools.db-test.git] / yarrg / where-vessels
index 9005a7f9032c9dadd15e5d1da71d39e6ad140634..da6480174192bf8786cabe054c30dd94aa837f2c 100755 (executable)
@@ -124,7 +124,7 @@ proc parseargs {} {
            --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]
@@ -135,6 +135,10 @@ proc have-notes {} {
     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
@@ -150,7 +154,6 @@ proc argdefaults {} {
     }
     if {![info exists pirate]} {
        set pirate {}
-       glset filter_lockown_separate 1
     }
     if {![have-notes]} {
        glset filter_lockown_separate 1
@@ -654,6 +657,7 @@ proc make-radio-smasher {sma label variable descs rows inrow} {
            -command [list redraw-needed radio-smasher $sma] \
            -text [lindex $descs $i]
     }
+    return $w
 }
 
 proc make-smashers {} {
@@ -669,9 +673,13 @@ 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} {
@@ -1334,23 +1342,26 @@ proc widgets-setup {} {
     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
 
@@ -1401,7 +1412,7 @@ proc widgets-setup {} {
     #----- 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 { }
 
@@ -1423,8 +1434,8 @@ proc widgets-setup {} {
        .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 { }