>From cc6712c8941f039d3456742e536d3c75ad21fd19 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofour...@redhat.com>
Date: Fri, 30 Nov 2012 09:16:44 +0100
Subject: [PATCH 1/3] data: add leaders to layouts

To match the buttons with their corresponding labels, the
layout SVG must also provide a leader line for each label
in the form of a line that links each button and its
label.

Improves the layout SVG for the Cintiq 12WX and Intuos 5 M
by adding details and rounded buttons to match the look of
the real device.

Buttons, labels and indicators are now grouped in the SVG
layout for better clarity of the SVG.

Replace use of ambiguous "Up" and "Down" in ring
controls with "CW" (Clockwise) and "CCW" (Counter
Clockwise) which are more appropriate for circular
motion (note that "CCW" is used in place of "Up"
and "CW" in place of "Down").

Add possible use of "fake" buttons to materialize
the type of motion expected in touch strips/rings
(optional, not mandatory as not present on the
real device).

Signed-off-by: Olivier Fourdan <ofour...@redhat.com>
---
 data/layouts/README          |  123 ++++++++++++++++++++++++++++++++++++++---
 data/layouts/cintiq-12wx.svg |  116 ++++++++++++++++++++++++++++++----------
 data/layouts/intuos5-m.svg   |   85 +++++++++++++++++++++--------
 3 files changed, 264 insertions(+), 60 deletions(-)

diff --git a/data/layouts/README b/data/layouts/README
index 37b644d..9da2321 100644
--- a/data/layouts/README
+++ b/data/layouts/README
@@ -56,6 +56,56 @@ Touch rings use the following convention:
     id="Strip2"
     class="Strip2 TouchStrip"
 
+Note: Additional "fake" buttons (ie actual controls not found on the real
+device) can be added to touch controls to help showing the type of action
+expected on the control, like for example circular motion on a touch ring
+or vertical motion on a touch strip.
+
+These controls can be named:
+
+ - First touch ring, rotating clockwise:
+
+    id="RingCW"
+    class="RingCW Button"
+
+ - First touch ring, rotating counter clockwise:
+
+    id="RingCCW"
+    class="RingCCW Button"
+
+ - Second touch ring, rotating clockwise:
+
+    id="Ring2CW"
+    class="Ring2CW Button"
+
+ - Second touch ring, rotating counter clockwise:
+
+    id="Ring2CCW"
+    class="Ring2CCW Button"
+
+ - First touch strip, moving up:
+
+    id="StripUp"
+    class="StripUp Button"
+
+ - First touch strip, moving down:
+
+    id="StripDown"
+    class="StripDown Button"
+
+ - Second touch strip, moving up:
+
+    id="Strip2Up"
+    class="Strip2Up Button"
+
+ - Second touch strip, moving down:
+
+    id="Strip2Down"
+    class="Strip2Down Button"
+
+The use of those "fake" buttons is left at the discretion of the designer
+and is not mandatory nor enforced.
+
 * Labels
 
 The role of the labels in the SVG is to give applications an indication on
@@ -71,6 +121,7 @@ Each button's label ID in the SVG is made of the string "Label" with ID of the
 button to which it applies, between 'A' and 'Z'.
 
 Class includes both the button ID and the string "Label".
+
     id="LabelA"
     class="A Label"
 
@@ -84,23 +135,23 @@ For the special case of mode-switch buttons, the class also list "ModeSwitch":
 Touch-rings and touch-strips generate Up and Down events, therefore 2 different
 labels are needed for each touch-ring/touch-strip control.
 
-    id="LabelRingUp"
-    class="RingUp Ring Label"
+    id="LabelRingCCW"
+    class="RingCCW Ring Label"
 
   and
 
-    id="LabelRingDown"
-    class="RingDown Ring Label"
+    id="LabelRingCW"
+    class="RingCW Ring Label"
 
 The second touch-ring button is identified by "Ring2" in place of "Ring":
 
-    id="LabelRing2Up"
-    class="Ring2Up Ring2 Label"
+    id="LabelRing2CCW"
+    class="Ring2CCW Ring2 Label"
 
   and
 
-    id="LabelRingDown"
-    class="Ring2Down Ring2 Label"
+    id="LabelRingCW"
+    class="Ring2CW Ring2 Label"
 
 Touchstrips button follow the same naming scheme, using "Strip" and "Strip2"
 to name the first and second touch-strip.
@@ -120,5 +171,59 @@ Second touch-strip:
 
   and
 
-    id="LabelRingDown"
+    id="LabelRingCW"
     class="Strip2Down Strip2 Label"
+
+ - Caption leader lines
+
+To match the buttons with their corresponding labels, the SVG must also
+provide a leader line for each label in the form of a line that links
+each button and its label.
+
+Each leader line follows the same naming convention as the labels, using
+the special name "Leader" in place of "Label", ie:
+
+    id="LeaderA"
+    class="A Leader"
+
+Touch-rings and touch-strips have 2 different labels and therefore 2 leader
+lines.
+
+    id="LeaderRingCCW"
+    class="RingCCW Ring Leader"
+
+  and
+
+    id="LeaderRingCW"
+    class="RingCW Ring Leader"
+
+The second touch-ring button is identified by "Ring2" in place of "Ring":
+
+    id="LeaderRing2CCW"
+    class="Ring2CCW Ring2 Leader"
+
+  and
+
+    id="LeaderRingCW"
+    class="Ring2CW Ring2 Leader"
+
+Touchstrips button follow the same naming scheme, using "Strip" and "Strip2"
+to name the first and second touch-strip.
+
+    id="LeaderStripUp"
+    class="StripUp Strip Leader"
+
+  and
+
+    id="LeaderStripDown"
+    class="StripDown Strip Leader"
+
+Second touch-strip:
+
+    id="LeaderStrip2Up"
+    class="Strip2Up Strip2 Leader"
+
+  and
+
+    id="LeaderStrip2Down"
+    class="Strip2Down Strip2 Leader"
diff --git a/data/layouts/cintiq-12wx.svg b/data/layouts/cintiq-12wx.svg
index 370283d..3d1de09 100644
--- a/data/layouts/cintiq-12wx.svg
+++ b/data/layouts/cintiq-12wx.svg
@@ -3,32 +3,92 @@
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
 <svg xmlns="http://www.w3.org/2000/svg"; version="1.1"
      style="color:#000000;stroke:#bebebe;fill:#000000;stroke-linejoin:round;stroke-width:1;font-size:8"
-         id="cintiq-12wx"                                                     width="405" height="270" >
-  <title id="title"                                                                                    >Wacom Cintiq 12WX</title>
-  <rect  id="ButtonA"         class="A Button"                x="40"  y="54"  width="11"  height="17" />
-  <text  id="LabelA"          class="A Label"                 x="60"  y="63"                           >A</text>
-  <rect  id="ButtonB"         class="B Button"                x="40"  y="72"  width="11"  height="17" />
-  <text  id="LabelB"          class="B Label"                 x="60"  y="81"                           >B</text>
-  <rect  id="ButtonC"         class="C Button"                x="28"  y="54"  width="11"  height="35" />
-  <text  id="LabelC"          class="C Label"                 x="60"  y="72"                           >C</text>
-  <rect  id="ButtonD"         class="D Button"                x="28"  y="90"  width="23"  height="11" />
-  <text  id="LabelD"          class="D Label"                 x="60"  y="96"                           >D</text>
-  <rect  id="ButtonE"         class="E Button"                x="352" y="54"  width="11"  height="17" />
-  <text  id="LabelE"          class="E Label"                 x="342" y="63"                           >E</text>
-  <rect  id="ButtonF"         class="F Button"                x="352" y="72"  width="11"  height="17" />
-  <text  id="LabelF"          class="F Label"                 x="342" y="81"                           >F</text>
-  <rect  id="ButtonG"         class="G Button"                x="364" y="54"  width="11"  height="35" />
-  <text  id="LabelG"          class="G Label"                 x="342" y="72"                           >G</text>
-  <rect  id="ButtonH"         class="H Button"                x="352" y="90"  width="23"  height="11" />
-  <text  id="LabelH"          class="H Label"                 x="342" y="96"                           >H</text>
-  <rect  id="ButtonI"         class="I Button"                x="28"  y="42"  width="23"  height="11" />
-  <text  id="LabelI"          class="I Label"                 x="60"  y="51"                           >I</text>
-  <rect  id="ButtonJ"         class="J Button"                x="352" y="42"  width="23"  height="11" />
-  <text  id="LabelJ"          class="J Label"                 x="342" y="51"                           >J</text>
-  <rect  id="Strip"           class="Strip TouchStrip"        x="10"  y="41"  width="12"  height="60" />
-  <text  id="LabelStripUp"    class="StripUp Strip Label"     x="16"  y="30"                           >Up</text>
-  <text  id="LabelStripDown"  class="StripDown Strip Label"   x="16"  y="110"                          >Down</text>
-  <rect  id="Strip2"          class="Strip2 TouchStrip"       x="382" y="41"  width="12"  height="60" />
-  <text  id="LabelStrip2Up"   class="Strip2Up Strip2 Label"   x="388" y="30"                           >Up</text>
-  <text  id="LabelStrip2Down" class="Strip2Down Strip2 Label" x="388" y="110"                          >Down</text>
+            id="cintiq-12wx"                                                                width="405" height="270"        >
+  <title    id="title"                                                                                                      >Wacom Cintiq 12WX</title>
+  <g>
+    <rect   id="ButtonA"          class="A Button" rx=".5" ry=".5" x="40"     y="54"  width="11"  height="17"               />
+    <path   id="LeaderA"          class="A Leader"                 d="M 53 63 L 65 63 L 65 72 L 78 72"                      />
+    <text   id="LabelA"           class="A Label"                  x="80"     y="72"   style="text-anchor:start;"           >A</text>
+  </g>
+  <g>
+    <rect   id="ButtonB"          class="B Button" rx=".5" ry=".5" x="40"     y="72"   width="11"  height="17"              />
+    <circle id="DotB1"                                            cx="45.5"  cy="77.5" r=".5"                               />
+    <circle id="DotB2"                                            cx="45.5"  cy="80.5" r=".5"                               />
+    <circle id="DotB3"                                            cx="45.5"  cy="83.5" r=".5"                               />
+    <path   id="LeaderB"          class="B Leader"                 d="M 53 81 L 65 81 L 65 87 L 78 87"                      />
+    <text   id="LabelB"           class="B Label"                  x="80"     y="87"   style="text-anchor:start;"            >B</text>
+  </g>
+  <g>
+    <rect   id="ButtonC"          class="C Button"                 x="28"     y="54"
+                                                                  rx=".5"    ry=".5"   width="11"  height="35"              />
+    <path   id="LeaderC"          class="C Leader"                 d="M 26 72 L 25 72 L 25 35 L 65 35 L 65 42 L 78 42"      />
+    <text   id="LabelC"           class="C Label"                  x="80"     y="42"   style="text-anchor:start;"            >C</text>
+  </g>
+  <g>
+    <rect   id="ButtonD"          class="D Button"                 x="28"     y="90"
+                                                                  rx=".5"    ry=".5"   width="23"  height="11"               />
+    <path   id="LeaderD"          class="D Leader"                 d="M 53 96 L 65 96 L 65 102 L 78 102"                     />
+    <text   id="LabelD"           class="D Label"                  x="80"     y="102"   style="text-anchor:start;"            >D</text>
+  </g>
+  <g>
+    <rect   id="ButtonE"          class="E Button"                 x="352"    y="54"
+                                                                  rx=".5"    ry=".5"   width="11"  height="17"               />
+    <path   id="LeaderE"          class="E Leader"                 d="M 350 63 L 338 63 L 338 72 L 324 72"                   />
+    <text   id="LabelE"           class="E Label"                  x="322"    y="72"   style="text-anchor:end;"               >E</text>
+  </g>
+  <g>
+    <rect   id="ButtonF"          class="F Button"                 x="352"    y="72"
+                                                                  rx=".5"    ry=".5"   width="11"  height="17"               />
+    <circle id="DotF1"                                            cx="357.5" cy="77.5" r=".5"                                />
+    <circle id="DotF2"                                            cx="357.5" cy="80.5" r=".5"                                />
+    <circle id="DotF3"                                            cx="357.5" cy="83.5" r=".5"                                />
+    <path   id="LeaderF"          class="F Leader"                 d="M 350 81 L 338 81 L 338 87 L 324 87"                   />
+    <text   id="LabelF"           class="F Label"                  x="322"    y="87"   style="text-anchor:end;"               >F</text>
+  </g>
+  <g>
+    <rect   id="ButtonG"          class="G Button"                 x="364"    y="54"
+                                                                  rx=".5"    ry=".5"   width="11"  height="35"               />
+    <path   id="LeaderG"          class="G Leader"                 d="M 377 72 L 378 72 L 378 35 L 338 35 L 338 42 L 324 42" />
+    <text   id="LabelG"           class="G Label"                  x="322"    y="42"   style="text-anchor:end;"               >G</text>
+  </g>
+  <g>
+    <rect   id="ButtonH"          class="H Button"                 x="352"    y="90"
+                                                                  rx=".5"    ry=".5"   width="23"  height="11"               />
+    <path   id="LeaderH"          class="H Leader"                 d="M 350 96 L 338 96 L 338 102 L 324 102"                 />
+    <text   id="LabelH"           class="H Label"                  x="322"    y="102"   style="text-anchor:end;"              >H</text>
+  </g>
+  <g>
+    <rect   id="ButtonI"          class="I Button"                 x="28"     y="42"
+                                                                  rx=".5"    ry=".5"   width="23"  height="11"               />
+    <circle id="DotI1"                                            cx="36.5"  cy="47.5" r=".5"                                />
+    <circle id="DotI2"                                            cx="39.5"  cy="47.5" r=".5"                                />
+    <circle id="DotI3"                                            cx="42.5"  cy="47.5" r=".5"                                />
+    <path   id="LeaderI"          class="I Leader"                 d="M 53 48 L 65 48 L 65 57 L 78 57"                       />
+    <text   id="LabelI"           class="I Label"                  x="80"     y="57"   style="text-anchor:start;"             >I</text>
+  </g>
+  <g>
+    <rect   id="ButtonJ"          class="J Button"                 x="352"    y="42"
+                                                                  rx=".5"    ry=".5"   width="23"  height="11"               />
+    <circle id="DotJ1"                                            cx="360.5" cy="47.5" r=".5"                                />
+    <circle id="DotJ2"                                            cx="363.5" cy="47.5" r=".5"                                />
+    <circle id="DotJ3"                                            cx="366.5" cy="47.5" r=".5"                                />
+    <path   id="LeaderJ"          class="J Leader"                d="M 350 48 L 338 48 L 338 57 L 324 57"                    />
+    <text   id="LabelJ"           class="J Label"                 x="322"    y="57"    style="text-anchor:end;"               >J</text>
+  </g>
+  <g>
+    <rect   id="Strip"            class="Strip TouchStrip"         x="10"     y="41"
+                                                                  rx="1"     ry="1"    width="12"  height="60"               />
+    <path   id="LeaderStripUp"    class="StripUp Strip Leader"     d="M 16 39 L 16 27 L 78 27"                               />
+    <text   id="LabelStripUp"     class="StripUp Strip Label"      x="80"     y="27"   style="text-anchor:start;"             >Up</text>
+    <path   id="LeaderStripDown"  class="StripDown Strip Leader"   d="M 16 103 L 16 117 L 78 117"                            />
+    <text   id="LabelStripDown"   class="StripDown Strip Label"    x="80"     y="117"  style="text-anchor:start;"             >Down</text>
+  </g>
+  <g>
+    <rect   id="Strip2"           class="Strip2 TouchStrip"        x="382"    y="41"
+                                                                  rx="1"     ry="1"    width="12"  height="60"               />
+    <path   id="LeaderStrip2Up"   class="Strip2Up Strip2 Leader"   d="M 388 39 L 388 27 L 325 27"                            />
+    <text   id="LabelStrip2Up"    class="Strip2Up Strip2 Label"    x="322"    y="27"   style="text-anchor:end;"               >Up</text>
+    <path   id="LeaderStrip2Down" class="Strip2Down Strip2 Leader" d="M 388 103 L 388 117 L 325 117"                         />
+    <text   id="LabelStrip2Down"  class="Strip2Down Strip2 Label"  x="322"    y="117"  style="text-anchor:end;"               >Down</text>
+  </g>
 </svg>
diff --git a/data/layouts/intuos5-m.svg b/data/layouts/intuos5-m.svg
index 748959f..f6748ae 100644
--- a/data/layouts/intuos5-m.svg
+++ b/data/layouts/intuos5-m.svg
@@ -3,27 +3,66 @@
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
 <svg xmlns="http://www.w3.org/2000/svg"; version="1.1"
      style="color:#000000;stroke:#bebebe;fill:#f0f0f0;stroke-linejoin:round;stroke-width:1;font-size:8"
-          id="intuos5-m"                                                  width="380" height="250">
-  <title  id="title"                                                                              >Wacom Intuos5 M Touch</title>
-  <rect   id="ButtonB"       class="B Button"             x="24"  y="40"  width="20" height="12" />
-  <text   id="LabelB"        class="B Label"              x="50"  y="46"                          >A</text>
-  <rect   id="ButtonC"       class="C Button"             x="24"  y="54"  width="20" height="12" />
-  <text   id="LabelC"        class="C Label"              x="50"  y="60"                          >B</text>
-  <rect   id="ButtonD"       class="D Button"             x="24"  y="68"  width="20" height="12" />
-  <text   id="LabelD"        class="D Label"              x="50"  y="74"                          >C</text>
-  <rect   id="ButtonE"       class="E Button"             x="24"  y="82"  width="20" height="12" />
-  <text   id="LabelE"        class="E Label"              x="50"  y="88"                          >D</text>
-  <rect   id="ButtonF"       class="F Button"             x="24"  y="156" width="20" height="12" />
-  <text   id="LabelF"        class="F Label"              x="50"  y="162"                         >E</text>
-  <rect   id="ButtonG"       class="G Button"             x="24"  y="170" width="20" height="12" />
-  <text   id="LabelG"        class="G Label"              x="50"  y="176"                         >F</text>
-  <rect   id="ButtonH"       class="H Button"             x="24"  y="184" width="20" height="12" />
-  <text   id="LabelH"        class="H Label"              x="50"  y="190"                         >G</text>
-  <rect   id="ButtonI"       class="I Button"             x="24"  y="198" width="20" height="12" />
-  <text   id="LabelI"        class="I Label"              x="50"  y="206"                         >H</text>
-  <circle id="Ring"          class="Ring TouchRing"      cx="34" cy="125" r="19.5"               />
-  <text   id="LabelRingUp"   class="RingUp Ring Label"    x="60"  y="105"                         >Up</text>
-  <text   id="LabelRingDown" class="RingDown Ring Label"  x="60"  y="145"                         >Down</text>
-  <circle id="ButtonA"       class="A ModeSwitch Button" cx="34" cy="125" r="9.5"                />
-  <text   id="LabelA"        class="A ModeSwitch Label"   x="60"  y="125"                         >I</text>
+          id="intuos5-m"                                                          width="380" height="250" >
+  <title  id="title"                                                                                       >Wacom Intuos5 M Touch</title>
+  <g>
+    <rect   id="ButtonB"       class="B Button" rx="2" ry="2"   x="24"  y="40"    width="20"  height="12" />
+    <path   id="LeaderB"       class="B Leader"                 d="M 46 46 L 50 46"                       />
+    <text   id="LabelB"        class="B Label"                  x="52"  y="46" style="text-anchor:start;"  >B</text>
+  </g>
+  <g>
+    <rect   id="ButtonC"       class="C Button" rx="2"  ry="2"  x="24"  y="54"    width="20"  height="12" />
+    <rect   id="DotC1"                          rx="1"  ry="1"  x="30"  y="59.5"  width="8"   height="1"  />
+    <path   id="LeaderC"       class="C Leader"                 d="M 46 60 L 50 60"                       />
+    <text   id="LabelC"        class="C Label"                  x="52"  y="60" style="text-anchor:start;"  >C</text>
+  </g>
+  <g>
+    <rect   id="ButtonD"       class="D Button" rx="2"  ry="2"  x="24"  y="68"    width="20"  height="12" />
+    <circle id="DotD1"                                         cx="34" cy="74"    r=".75"                 />
+    <path   id="LeaderD"       class="D Leader"                 d="M 46 74 L 50 74"                       />
+    <text   id="LabelD"        class="D Label"                  x="52"  y="74" style="text-anchor:start;"  >D</text>
+  </g>
+  <g>
+    <rect   id="ButtonE"       class="E Button" rx="2"  ry="2"  x="24"  y="82"    width="20"  height="12" />
+    <path   id="LeaderE"       class="E Leader"                 d="M 46 88 L 50 88"                       />
+    <text   id="LabelE"        class="E Label"                  x="52"  y="88" style="text-anchor:start;"  >E</text>
+  </g>
+  <g>
+    <rect   id="ButtonF"       class="F Button" rx="2"  ry="2"  x="24"  y="156"   width="20"  height="12" />
+    <path   id="LeaderF"       class="F Leader"                 d="M 46 162 L 50 162"                     />
+    <text   id="LabelF"        class="F Label"                  x="52"  y="162" style="text-anchor:start;" >F</text>
+  </g>
+  <g>
+    <rect   id="ButtonG"       class="G Button" rx="2"  ry="2"  x="24"  y="170"   width="20"  height="12" />
+    <circle id="DotG1"                                         cx="34" cy="176"   r=".75"                 />
+    <path   id="LeaderG"       class="G Leader"                 d="M 46 176 L 50 176"                     />
+    <text   id="LabelG"        class="G Label"                  x="52"  y="176" style="text-anchor:start;" >G</text>
+  </g>
+  <g>
+    <rect   id="ButtonH"       class="H Button" rx="2"  ry="2"  x="24"  y="184"   width="20"  height="12" />
+    <rect   id="DotH1"                          rx="1"  ry="1"  x="30"  y="189.5" width="8"   height="1"  />
+    <path   id="LeaderH"       class="H Leader"                 d="M 46 190 L 50 190"                     />
+    <text   id="LabelH"        class="H Label"                  x="52"  y="190" style="text-anchor:start;" >H</text>
+  </g>
+  <g>
+    <rect   id="ButtonI"       class="I Button" rx="2"  ry="2"  x="24"  y="198"   width="20"  height="12" />
+    <path   id="LeaderI"       class="I Leader"                 d="M 46 206 L 50 206"                     />
+    <text   id="LabelI"        class="I Label"                  x="52"  y="206" style="text-anchor:start;" >I</text>
+  </g>
+  <g>
+    <circle id="Ring"          class="Ring TouchRing"          cx="34" cy="125"   r="19.5"                />
+    <path   id="LeaderRingCCW" class="RingCCW Ring Leader"      d="M 34 105 L 34 103 L 60 103"            />
+    <text   id="LabelRingCCW"  class="RingCCW Ring Label"       x="62"  y="103" style="text-anchor:start;" >CCW</text>
+    <path   id="RingCCW"       class="RingCCW Button"
+                        d="M 31 111 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 1 5 1.5 a 6.5 6.5 0 0 0 -5 -0.5 l 0 1 z" />
+    <path   id="LeaderRingCW"  class="RingCW Ring Leader"       d="M 34 145 L 34 147 L 60 147"            />
+    <text   id="LabelRingCW"   class="RingCW Ring Label"        x="62"  y="147" style="text-anchor:start;" >CW</text>
+    <path   id="RingCW"        class="RingCW Button"
+                            d="M 31 139 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 0 5 -1 a 6.5 6.5 0 0 1 -5 2 l 0 1 z" />
+  </g>
+  <g>
+    <circle id="ButtonA"       class="A ModeSwitch Button"     cx="34" cy="125" r="9.5"                   />
+    <path   id="LeaderA"       class="A ModeSwitch Leader"      d="M 56 125 L 60 125"                     />
+    <text   id="LabelA"        class="A ModeSwitch Label"       x="62"  y="125" style="text-anchor:start;" >A</text>
+  </g>
 </svg>
-- 
1.7.1

------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
TUNE You got it built. Now make it sing. Tune shows you how.
http://goparallel.sourceforge.net
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to