From: Ian Jackson Date: Sun, 8 Aug 2010 16:44:50 +0000 (+0100) Subject: where-vessels: smash sizes X-Git-Tag: 6.6.2~19 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=commitdiff_plain;h=cbf2f65bbd48ebcd9410e3cb09358e79b2b3e0f2;hp=97393f2419dfc6ccad6f0300fd2c0e01eb552674 where-vessels: smash sizes --- diff --git a/yarrg/where-vessels b/yarrg/where-vessels index 3c85552..40a50e4 100755 --- a/yarrg/where-vessels +++ b/yarrg/where-vessels @@ -505,7 +505,7 @@ proc control-tickbox-flip {varsvn values} { redraw-needed c.-tickbox-flip $varsvn $values } -proc populate-control-grid-tickboxes {cw rows inrow varsvn values +proc populate-control-grid-tickboxes {cw rows inrow varsvn values flipvalues label_kind valvn default_get label_get} { debug "POPULATE-CONTROL-GRID-TICKBOXES $cw $rows $inrow $varsvn\ [list $values] $label_kind $valvn" @@ -530,7 +530,7 @@ proc populate-control-grid-tickboxes {cw rows inrow varsvn values } [make-control-grid-entry $cw final invert button] \ configure \ - -text flip -command [list control-tickbox-flip $varsvn $values] \ + -text flip -command [list control-tickbox-flip $varsvn $flipvalues] \ -padx 0 -pady 0 } @@ -542,6 +542,8 @@ set smash_owner 0 proc smash-code {code} { manyset [split $code _] inport class subclass lockown xabbrev + upvar #0 smash_sizemap($class) smclass + global smash_subclass if {$smash_subclass > 1} { set subclass {} @@ -569,7 +571,16 @@ proc smash-code {code} { 4 { set lockown 33 } } - return [join [list $inport $class $subclass $lockown $xabbrev] _] + return [join [list $inport $smclass $subclass $lockown $xabbrev] _] +} + +proc smash-prepare {} { + global vc_codes smash_sizemap smash_size + set mapto {} + foreach size $vc_codes { + if {!$smash_size($size)} { set mapto $size } + set smash_sizemap($size) $mapto + } } proc make-smasher {sma label ekind} { @@ -588,17 +599,18 @@ proc make-radio-smasher {sma label variable descs rows inrow} { } proc make-smashers {} { + global vc_codes vc_code2abbrev + set cw [make-smasher size "Size\n round\n down" frame] + populate-control-grid-tickboxes $cw 2 0 smash_size \ + $vc_codes [lrange $vc_codes 1 end] \ + image val { expr 0 } { expr {"icon/$vc_code2abbrev($val)"} } + $cw.0 configure -state disabled + make-radio-smasher subclass Subclass smash_subclass \ {Show Normal/LE Hide} 1 0 make-radio-smasher owner Owner smash_owner \ {Show Yours? {For you} Lock Hide} 2 3 - - global vc_codes vc_code2abbrev - - set cw [make-smasher size "Size\nround down" frame] - populate-control-grid-tickboxes $cw 2 0 smash_size $vc_codes \ - image val { expr 0 } { expr {"icon/$vc_code2abbrev($val)"} } } #---------- filtering ---------- @@ -665,8 +677,9 @@ proc make-tickbox-filter {fil label rows inrow} { set fw [make-filter $fil $label frame] - populate-control-grid-tickboxes $fw $rows $inrow filter_$fil $values \ - $label_kind val { filter-default/$fil $val } $label_get + populate-control-grid-tickboxes $fw $rows $inrow filter_$fil \ + $values $values \ + $label_kind val { filter-default/$fil $val } $label_get } proc entry-filter-changed {fw fil n1 n2 op} { @@ -967,6 +980,8 @@ proc draw {} { eval chart-got/$proc [lrange $l 1 end] } + smash-prepare + catch { unset smfound } foreach key [lsort [array names found]] { regexp {^(.*) (\S+)$} $key dummy islandname code