From: Ian Jackson Date: Sun, 2 Jan 2011 13:47:58 +0000 (+0000) Subject: gui: support manual adjustment of movpos button locations X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=6cfec22578d39e2d0a6373afcfb9cdfc57e1e14b;p=trains.git gui: support manual adjustment of movpos button locations --- diff --git a/hostside/gui b/hostside/gui index 2c4c7c2..790d168 100755 --- a/hostside/gui +++ b/hostside/gui @@ -225,10 +225,12 @@ register-event ?movpos_*_feat {seg feat posn_new} \ movpos-button-setdisplay $mid } -proc movpos-bindkey-1 {cpage key seg feat} { +proc movpos-bindkey-1 {cpage key adjx adjy seg feat} { global posdeviation picturepadx picturepady manyset [subseg-end-get-centroid $cpage $seg $feat {}] mx my set mid $seg/$feat + addexpr mx $adjx + addexpr my $adjy foreach posn {0 1} { manyset [subseg-end-get-centroid $cpage $seg $feat $posn] x y set dx [expr {$x-$mx}]; set dy [expr {$y-$my}] @@ -296,8 +298,9 @@ proc layout-data {} { return } foreach binding $bindings { - if {[regexp {^([A-Z])\=(\w+)/([A-Z]+)$} $binding dummy key seg feat]} { - movpos-bindkey-1 $cpage $key $seg $feat + if {[regexp {^([A-Z])([-+]\d*)?([-+]\d+)?\=(\w+)/([A-Z]+)$} \ + $binding dummy key adjx adjy seg feat]} { + movpos-bindkey-1 $cpage $key $adjx.0 $adjy.0 $seg $feat } elseif {[regexp {^[A-Z]$} $binding] || [regexp {~} $binding]} { } else { error "incomprehensible binding $binding on page $cpage"