chiark / gitweb /
hostside/gui: allow positioning of 0 and 1 posns of point button separately, and...
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Tue, 4 Jan 2011 01:31:31 +0000 (01:31 +0000)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Tue, 4 Jan 2011 01:31:31 +0000 (01:31 +0000)
hostside/gui
hostside/gui-layout.config

index 790d168a4a90578bd4bd947e6d1e550c88d49c15..6c4365c4d5e2a0dccc6e36a342c9b95814cd7f9f 100755 (executable)
@@ -225,23 +225,21 @@ register-event ?movpos_*_feat {seg feat posn_new} \
     movpos-button-setdisplay $mid
 }
 
-proc movpos-bindkey-1 {cpage key adjx adjy seg feat} {
+proc movpos-bindkey-1 {cpage key seg feat adj0x adj0y adj1x adj1y} {
     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}]
        set d [expr {sqrt($dx*$dx + $dy*$dy)}]
        set mul [expr {$posdeviation / ($d + 1e-6)}]
-       set x [expr {$mx + $mul*$dx + $picturepadx}]
-       set y [expr {$my + $mul*$dy + $picturepady}]
+       set x [expr {$mx + $mul*$dx + $picturepadx + [set adj${posn}x]}]
+       set y [expr {$my + $mul*$dy + $picturepady + [set adj${posn}y]}]
        lappend poslocs [list $x $y]
     }
-    lappend poslocs [list [expr {$mx + $picturepadx}] \
-                         [expr {$my + $picturepady}]]
+    lappend poslocs [list [expr {$mx + $picturepadx + ($adj0x+$adj1x)*0.5}] \
+                         [expr {$my + $picturepady + ($adj0y+$adj1y)*0.5}]]
     upvar #0 mp_details($mid) details
     set details [list $cpage $key $seg $feat $poslocs]
 
@@ -298,9 +296,12 @@ proc layout-data {} {
        return
     }
     foreach binding $bindings {
-       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
+       if {[regexp \
+   {^([A-Z])([-+]\d*)?([-+]\d*)?([-+]\d*)?([-+]\d*)?\=(\w+)/([A-Z]+)$} \
+                $binding dummy key adj0x adj0y adj1x adj1y seg feat]} {
+           if {![string length $adj1x]} { set adj1x $adj0x; set adj1y $adj0y }
+           movpos-bindkey-1 $cpage $key $seg $feat \
+               $adj0x.0 $adj0y.0 $adj1x.0 $adj1y.0
        } elseif {[regexp {^[A-Z]$} $binding] || [regexp {~} $binding]} {
        } else {
            error "incomprehensible binding $binding on page $cpage"
index 921ab6a36534777636b6be6f9a06d65ad7621625..54f9a7e46909729a2868c4206776a5fbf75210a5 100644 (file)
@@ -1,11 +1,11 @@
 # -*- fundamental -*-
 set pages {bot}
 set movpos_bindings(bot) {
-       Z=C9/P                  A                       Q=C5/P
-       X++16=B9/P              S                       W=B7/P
-       C=B9/J                  D                       E=B7/J          
-       V+-20=A5/J              F                       R++20=A6/J      
-       B=A5/P                  ~G=A2/P                 T=A6/P          
+       Z=C9/P                  A                       Q-2+20-3-0=C5/P
+       X++16=B9/P              S                       W-5++7+=B7/P
+       C=B9/J                  D                       E+3+-5=B7/J             
+       V+-20=A5/J              F                       R++5+5+5=A6/J   
+       B=A5/P                  ~G=A2/P                 T+6+++=A6/P             
        N=X7/P                  ~H=X2/R                 Y=X8/P          
        M=C0/P                  J=B0/P                  U               
                                K                       I