chiark / gitweb /
gui: support manual adjustment of movpos button locations
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sun, 2 Jan 2011 13:47:58 +0000 (13:47 +0000)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sun, 2 Jan 2011 13:47:58 +0000 (13:47 +0000)
hostside/gui

index 2c4c7c2ab17487f3319785bb74061a3755bcf562..790d168a4a90578bd4bd947e6d1e550c88d49c15 100755 (executable)
@@ -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"