diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2016-07-04 10:26:03 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2016-07-04 10:26:03 +1000 |
commit | 35a6ebc5369ec907a3745f61ef8a8e5b2ba6e065 (patch) | |
tree | b0739817621199dc4b89f78a5746bb8de9e150a3 /doc | |
parent | 0526044f6d4ebb614699d87f23de3d3256a568ff (diff) | |
parent | 30bc86f47e17a78bcb83410cf6a4da77d7a7af32 (diff) |
Merge branch 'wip/tablet-pad-modes-v3'
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile.am | 2 | ||||
-rw-r--r-- | doc/svg/tablet-cintiq24hd-modes.svg | 460 | ||||
-rw-r--r-- | doc/svg/tablet-intuos-modes.svg | 321 | ||||
-rw-r--r-- | doc/tablet-support.dox | 59 |
4 files changed, 840 insertions, 2 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am index eb5d3c0..9341489 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -49,7 +49,9 @@ diagram_files = \ $(srcdir)/svg/software-buttons.svg \ $(srcdir)/svg/swipe-gestures.svg \ $(srcdir)/svg/tablet-axes.svg \ + $(srcdir)/svg/tablet-cintiq24hd-modes.svg \ $(srcdir)/svg/tablet-interfaces.svg \ + $(srcdir)/svg/tablet-intuos-modes.svg \ $(srcdir)/svg/tablet-left-handed.svg \ $(srcdir)/svg/tablet-out-of-bounds.svg \ $(srcdir)/svg/tablet.svg \ diff --git a/doc/svg/tablet-cintiq24hd-modes.svg b/doc/svg/tablet-cintiq24hd-modes.svg new file mode 100644 index 0000000..f1be53e --- /dev/null +++ b/doc/svg/tablet-cintiq24hd-modes.svg @@ -0,0 +1,460 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="134.12471mm" + height="73.121918mm" + viewBox="0 0 475.24503 259.09341" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="tablet-cintiq24hd-modes.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2.8" + inkscape:cx="235.34348" + inkscape:cy="122.76858" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + inkscape:window-width="1920" + inkscape:window-height="1136" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <sodipodi:guide + position="63.613208,240.91603" + orientation="0,1" + id="guide4164" /> + <sodipodi:guide + position="61.087828,13.126636" + orientation="0,1" + id="guide4166" /> + <sodipodi:guide + position="455.7142,176.16061" + orientation="0,1" + id="guide5966" /> + <sodipodi:guide + position="457.99098,166.42846" + orientation="0,1" + id="guide5968" /> + <sodipodi:guide + position="457.05348,156.47311" + orientation="-0.00010854417,-0.99999999" + id="guide5970" /> + <sodipodi:guide + position="454.4642,169.19632" + orientation="1,0" + id="guide5972" /> + <sodipodi:guide + position="22.365981,176.16061" + orientation="1,0" + id="guide5974" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="tablet" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(-139.42745,-156.36228)"> + <rect + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.92000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4136" + width="474.32504" + height="258.1734" + x="139.88745" + y="156.82228" + rx="5" /> + <rect + y="175.42407" + x="199.33878" + height="226.52563" + width="357.34042" + id="rect4140" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74800003;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + id="g5913"> + <g + style="stroke-width:1.87739301;stroke-miterlimit:4;stroke-dasharray:none" + transform="matrix(0.53265351,0,0,0.53265351,104.30809,96.440418)" + id="g7023"> + <circle + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:1.87739301;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4158" + cx="135.61298" + cy="287.06125" + r="22.98097" /> + <ellipse + cy="287.06125" + cx="135.61298" + id="circle4160" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:1.87739301;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + rx="11.5985" + ry="12.608653" /> + </g> + <rect + rx="0.5" + y="268.93671" + x="175.8243" + height="8.9902887" + width="13.786156" + id="rect4162" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.29022256;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + rx="0.5" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.29022256;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7027" + width="13.786156" + height="8.9902887" + x="175.8243" + y="280.97675" /> + <rect + rx="0.5" + y="293.01678" + x="175.8243" + height="8.9902887" + width="13.786156" + id="rect7029" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.29022256;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + rx="0.5" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.44849709;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7031" + width="9.1119308" + height="32.483532" + x="161.90343" + y="269.44443" /> + <rect + rx="0.5" + y="269.44443" + x="149.90343" + height="32.483532" + width="9.1119308" + id="rect7033" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.44849709;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + rx="0.5" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.19463234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7035" + width="9.3657951" + height="5.9516821" + x="149.77649" + y="256.10321" /> + <rect + rx="0.5" + y="246.10321" + x="149.77649" + height="5.9516821" + width="9.3657951" + id="rect7037" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.19463234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + rx="0.5" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.19463234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7039" + width="9.3657951" + height="5.9516821" + x="149.77649" + y="236.10321" /> + </g> + <g + id="g5889"> + <g + id="g7056" + transform="matrix(-0.53265351,0,0,0.53265351,651.12665,96.440418)" + style="fill:#4e4e4e;fill-opacity:0.99215686;stroke-width:1.87739301;stroke-miterlimit:4;stroke-dasharray:none"> + <circle + r="22.98097" + cy="287.06125" + cx="135.61298" + id="circle7058" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:1.87739301;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="12.608653" + rx="11.5985" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:1.87739301;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="ellipse7060" + cx="135.61298" + cy="287.06125" /> + </g> + <rect + transform="scale(-1,1)" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.29022256;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7062" + width="13.786156" + height="8.9902887" + x="-579.61047" + y="268.93671" + rx="0.5" /> + <rect + transform="scale(-1,1)" + y="280.97675" + x="-579.61047" + height="8.9902887" + width="13.786156" + id="rect7064" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.29022256;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + rx="0.5" /> + <rect + transform="scale(-1,1)" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.29022256;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7066" + width="13.786156" + height="8.9902887" + x="-579.61047" + y="293.01678" + rx="0.5" /> + <rect + transform="scale(-1,1)" + y="269.44443" + x="-593.53131" + height="32.483532" + width="9.1119308" + id="rect7068" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.44849709;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + rx="0.5" /> + <rect + transform="scale(-1,1)" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.44849709;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7070" + width="9.1119308" + height="32.483532" + x="-605.53131" + y="269.44443" + rx="0.5" /> + <rect + transform="scale(-1,1)" + y="256.10321" + x="-605.65826" + height="5.9516821" + width="9.3657951" + id="rect7072" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.19463234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + rx="0.5" /> + <rect + transform="scale(-1,1)" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.19463234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect7074" + width="9.3657951" + height="5.9516821" + x="-605.65826" + y="246.10321" + rx="0.5" /> + <rect + transform="scale(-1,1)" + y="236.10321" + x="-605.65826" + height="5.9516821" + width="9.3657951" + id="rect7076" + style="opacity:0.92000002;fill:#4e4e4e;fill-opacity:0.99215686;stroke:#4d4d4d;stroke-width:0.19463234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + rx="0.5" /> + </g> + <circle + r="1.0714241" + cy="239.25041" + cx="593.89166" + id="circle5003" + style="opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle5941" + cx="593.89166" + cy="249.01828" + r="1.0714241" /> + <circle + r="1.0714241" + cy="258.98257" + cx="593.89166" + id="circle5943" + style="opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + r="1.0714241" + cy="239.27275" + cx="161.79344" + id="circle5003-7" + style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + style="display:inline;opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle5941-3" + cx="161.79344" + cy="249.04956" + r="1.0714241" /> + <circle + r="1.0714241" + cy="259.00488" + cx="161.79344" + id="circle5943-4" + style="display:inline;opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'sans serif';-inkscape-font-specification:'sans serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="231.68831" + y="209.7363" + id="text5031" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5033" + x="231.68831" + y="209.7363" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1">mode indicators</tspan></text> + <text + sodipodi:linespacing="125%" + id="text6033" + y="209.7363" + x="421.35587" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'sans serif';-inkscape-font-specification:'sans serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1" + y="209.7363" + x="421.35587" + id="tspan6035" + sodipodi:role="line">mode indicators</tspan></text> + <text + sodipodi:linespacing="125%" + id="text6037" + y="291.72427" + x="204.56126" + style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1" + y="291.72427" + x="204.56126" + id="tspan6039" + sodipodi:role="line">mode toggle buttons</tspan></text> + <g + id="g6047"> + <path + inkscape:connector-curvature="0" + id="path6041" + d="m 163.79343,258.98257 27.45536,0 38.75,-44.41964 40.98214,0.26786" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path6043" + d="m 163.79343,249.02722 35.9375,0" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path6045" + d="m 163.79343,239.29507 44.41964,0" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g6052" + transform="matrix(-1,0,0,1,755.65383,-0.02232143)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 163.79343,258.98257 27.45536,0 38.75,-44.41964 40.98214,0.26786" + id="path6054" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 163.79343,249.02722 35.9375,0" + id="path6056" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 163.79343,239.29507 44.41964,0" + id="path6058" + inkscape:connector-curvature="0" /> + </g> + <g + id="g6096"> + <path + inkscape:connector-curvature="0" + id="path6088" + d="m 145.10947,239.29507 0,55.95257 78.53936,0" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path6090" + d="m 145.23574,239.29507 4.98762,0" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 145.23574,259.29507 4.98762,0" + id="path6092" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path6094" + d="m 145.23574,249.01096 4.98762,0" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g6102" + transform="matrix(-1,0,0,1,754.76113,0)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 145.10947,239.29507 0,55.95257 78.53936,0" + id="path6104" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 145.23574,239.29507 4.98762,0" + id="path6106" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path6108" + d="m 145.23574,259.29507 4.98762,0" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 145.23574,249.01096 4.98762,0" + id="path6110" + inkscape:connector-curvature="0" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="420.56128" + y="291.72427" + id="text6112" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan6114" + x="420.56128" + y="291.72427" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1">mode toggle buttons</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="stylus" + style="display:inline" + transform="translate(-139.42745,-156.36228)" /> +</svg> diff --git a/doc/svg/tablet-intuos-modes.svg b/doc/svg/tablet-intuos-modes.svg new file mode 100644 index 0000000..74ef836 --- /dev/null +++ b/doc/svg/tablet-intuos-modes.svg @@ -0,0 +1,321 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="111.70494mm" + height="65.496956mm" + viewBox="0 0 395.80491 232.07583" + id="svg4249" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="tablet-intuos-modes.svg"> + <defs + id="defs4251"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5774" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + id="path5776" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4294" + id="linearGradient4300" + x1="465.81339" + y1="666.13727" + x2="454.82117" + y2="658.65521" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4294"> + <stop + style="stop-color:#1a1a1a;stop-opacity:1;" + offset="0" + id="stop4296" /> + <stop + style="stop-color:#808080;stop-opacity:1" + offset="1" + id="stop4298" /> + </linearGradient> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="16" + inkscape:cx="77.55251" + inkscape:cy="104.65462" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + showguides="true" + inkscape:window-width="1920" + inkscape:window-height="1136" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:guide-bbox="true" + fit-margin-left="0.1" + fit-margin-top="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <inkscape:grid + type="xygrid" + id="grid4897" + originx="-56.206096" + originy="-132.53353" /> + <sodipodi:guide + position="71.578207,133.89422" + orientation="0,1" + id="guide4991" /> + <sodipodi:guide + position="28.258193,123.80577" + orientation="1,0" + id="guide4993" /> + <sodipodi:guide + position="63.704627,120.85934" + orientation="1,0" + id="guide4995" /> + <sodipodi:guide + position="48.704626,98.44863" + orientation="0,1" + id="guide4997" /> + <sodipodi:guide + position="54.937501,116.125" + orientation="0,1" + id="guide5057" /> + <sodipodi:guide + position="46.000001,127.5625" + orientation="1,0" + id="guide5059" /> + </sodipodi:namedview> + <metadata + id="metadata4254"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-56.206094,-687.75286)"> + <g + id="g5039"> + <rect + y="688.15009" + x="56.95763" + height="231.28139" + width="394.65616" + id="rect4136" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.79444152;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.56541353;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4140" + width="270.06381" + height="171.19916" + x="150.33304" + y="719.33636" /> + <rect + y="719.56689" + x="77.601257" + height="16.734699" + width="49.124439" + id="rect4142" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4148" + width="49.124439" + height="16.734699" + x="77.601257" + y="740.72821" /> + <rect + y="761.88947" + x="77.601257" + height="16.734699" + width="49.124439" + id="rect4150" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + y="831.41949" + x="77.601257" + height="16.734699" + width="49.124439" + id="rect4154" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4156" + width="49.124439" + height="16.734699" + x="77.601257" + y="852.58075" /> + <circle + r="17.368113" + cy="803.70734" + cx="102.17159" + id="path4158" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="9.5291233" + rx="8.7656898" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.39332128;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle4160" + cx="102.17159" + cy="803.70734" /> + <rect + y="873.74207" + x="77.601257" + height="16.734699" + width="49.124439" + id="rect4162" + style="opacity:0.92000002;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.74744725;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + id="g4304" + transform="matrix(0.2806137,0.07519021,-0.0726958,0.27130439,247.48122,626.86299)"> + <path + sodipodi:nodetypes="czcc" + inkscape:connector-curvature="0" + id="path4286" + d="m 387.83544,799.76093 c -1.1128,3.61694 -3.2211,13.05163 -1.08543,14.07769 2.13567,1.02606 7.81039,-3.72162 10.99756,-6.69095 z" + style="display:inline;fill:#cccccc;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ssssccssscsssssssssssssssssss" + inkscape:connector-curvature="0" + id="path4283" + d="m 392.64431,804.79039 c -8.52094,-5.90399 -8.49394,-11.01546 0.22879,-43.30647 1.03999,-3.85 2.46829,-9.67602 3.17399,-12.9467 0.99731,-4.62219 2.39455,-7.29497 6.27321,-12 2.74456,-3.32932 5.25157,-6.2783 5.57113,-6.5533 40.78433,-60.97488 80.48307,-125.1652 118.27253,-184 9.86283,-15.675 26.59424,-42.225 37.18089,-59 10.58666,-16.775 34.01422,-53.9 52.06125,-82.5 18.04703,-28.6 35.04505,-55.31677 37.77338,-59.37059 l 4.9606,-7.3706 4.1828,0.57332 c 4.16371,0.5707 4.19706,0.54958 7.30887,-4.62941 3.75631,-6.2516 8.82067,-11.57582 12.2516,-12.88026 5.99391,-2.27888 14.03303,2.9506 14.03303,9.12854 0,3.90203 -2.51704,10.62127 -6.02878,16.09385 -1.63417,2.54664 -2.97122,4.85949 -2.97122,5.13969 0,0.28019 0.9,1.54715 2,2.81546 2.28453,2.63408 2.47267,4.21918 0.86833,7.31574 -1.28218,2.47476 -26.61383,45.18798 -55.85724,94.18426 -10.83283,18.15 -25.72943,43.1137 -33.10357,55.47489 -7.37413,12.3612 -13.69273,23.17153 -14.04131,24.02297 -0.34859,0.85144 -7.50972,12.78774 -15.91363,26.52511 -15.54138,25.40455 -32.24417,52.9052 -70.74345,116.47703 -40.26028,66.47968 -43.66308,72.46026 -49.21634,86.5 -1.74036,4.4 -3.92035,8.675 -4.8444,9.5 -0.92405,0.825 -4.36246,3.75 -7.6409,6.5 -3.27845,2.75 -9.57132,8.3067 -13.98415,12.34823 -10.62726,9.73304 -16.99729,13.87361 -22.52334,14.64034 -3.99187,0.55386 -5.03885,0.251 -9.27207,-2.6821 z" + style="display:inline;fill:#000000" /> + <path + sodipodi:nodetypes="scccs" + inkscape:connector-curvature="0" + id="path4292" + d="m 450.89044,688.88586 c 8.71518,5.62513 45.74035,-59.18436 43.57923,-75.43494 l -7.07107,-6.56599 c -29.93081,25.86352 -47.78438,74.72281 -47.78438,74.72281 0,0 0,0 11.27622,7.27812 z" + style="fill:url(#linearGradient4300);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <circle + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path5001" + cx="119.91072" + cy="785.93445" + r="1.0714241" /> + <circle + r="1.0714241" + cy="785.93445" + cx="84.458878" + id="circle5003" + style="opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + r="1.0714241" + cy="821.38873" + cx="119.91072" + id="circle5005" + style="opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + style="opacity:1;fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.56541353;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle5007" + cx="84.458878" + cy="821.38873" + r="1.0714241" /> + <g + id="g5021"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0999999;stroke-dasharray:none;stroke-opacity:1" + d="M 121.60675,784.75904 144.71431,766.2249" + id="path5015" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + d="m 109.26292,766.15758 101.60169,0.0205 m -124.715997,18.514 23.107557,-18.53414" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5017" /> + </g> + <g + id="g5025" + transform="matrix(1,0,0,-1,0,1607.4699)"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path5027" + d="M 121.60675,784.75904 144.71431,766.2249" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0999999;stroke-dasharray:none;stroke-opacity:1" /> + <path + id="path5029" + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 109.26292,766.15758 101.60169,0.0205 m -124.715997,18.514 23.107557,-18.53414" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'sans serif';-inkscape-font-specification:'sans serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="134.17352" + y="761.21094" + id="text5031" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5033" + x="134.17352" + y="761.21094" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1">mode indicators</tspan></text> + <text + sodipodi:linespacing="125%" + id="text5035" + y="857.37744" + x="134.17352" + style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1" + y="857.37744" + x="134.17352" + id="tspan5037" + sodipodi:role="line">mode indicators</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 102.39358,803.70368 61,0" + id="path5051" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="167.36102" + y="806.87744" + id="text5053" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5055" + x="167.36102" + y="806.87744" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'sans serif';-inkscape-font-specification:'sans serif';fill:#ff0000;fill-opacity:1">mode toggle button</tspan></text> + </g> +</svg> diff --git a/doc/tablet-support.dox b/doc/tablet-support.dox index c555cea..cda0d70 100644 --- a/doc/tablet-support.dox +++ b/doc/tablet-support.dox @@ -240,8 +240,7 @@ tablet. Some buttons may have expected default behaviors. For example, on Wacom Intuos Pro series tablets, the button inside the touch ring is expected to -switch between a mode switch. Mode switching is a feature implemented in the -caller and libinput does not provide specific handling. Callers should use +switch between modes, see @ref tablet-pad-modes. Callers should use external sources like libwacom to identify which buttons have semantic behaviors. @@ -276,4 +275,60 @@ symmetric and thus do not support left-handed mode. libinput requires libwacom to determine if a tablet is capable of being switched to left-handed mode. +@section tablet-pad-modes Tablet pad modes + +Tablet pad modes are virtual groupings of button, ring and strip +functionality. A caller may assign different functionalities depending on +the mode the tablet is in. For example, in mode 0 the touch ring may emulate +scrolling, in mode 1 the touch ring may emulate zooming, etc. libinput +handles the modes and mode switching but does not assign specific +functionality to buttons, rings or strips based on the mode. It is up to the +caller to decide whether the mode only applies to buttons, rings and strips +or only to rings and strips (this is the case with the Wacom OS X and +Windows driver). + +The availability of modes on a touchpad usually depends on visual feedback +such as LEDs around the touch ring. If no visual feedback is available, only +one mode may be available. + +Mode switching is controlled by libinput and usually toggled by one or +more buttons on the device. For example, on the Wacom Intuos 4, 5, and +Pro series tablets the mode button is the button centered in the touch +ring and toggles the modes sequentially. On the Wacom Cintiq 24HD the +three buttons next to each touch ring allow for directly changing the +mode to the desired setting. + +Multiple modes may exist on the tablet, libinput uses the term "mode group" +for such groupings of buttons that share a mode and mode toggle. For +example, the Wacom Cintiq 24HD has two separate mode groups, one for the +left set of buttons, strips, and touch rings and one for the right set. +libinput handles the mode groups independently and returns the mode for each +button as appropriate. The mode group is static for the lifetime of the +device. + +@image html tablet-intuos-modes.svg "Modes on an Intuos Pro-like tablet" + +In the image above, the Intuos Pro-like tablet provides 4 LEDs to indicate +the currently active modes. The button inside the touch ring cycles through +the modes in a clockwise fashion. The upper-right LED indicates that the +currently active mode is 1, based on 0-indexed mode numbering. +libinput_event_tablet_pad_get_mode() would thus return 1 for all button and +ring events on this tablet. When the center button is pressed, the mode +switches to mode 2, the LED changes to the bottom-right and +libinput_event_tablet_pad_get_mode() returns 2 for the center button event +and all subsequent events. + +@image html tablet-cintiq24hd-modes.svg "Modes on an Cintiq 24HD-like tablet" + +In the image above, the Cintiq 24HD-like tablet provides 3 LEDs on each side +of the tablet to indicate the currently active mode for that group of +buttons and the respective ring. The buttons next to the touch ring select +the mode directly. The two LEDs indicate that the mode for the left set of +buttons is currently 0, the mode for the right set of buttons is currently +1, based on 0-indexed mode numbering. libinput_event_tablet_pad_get_mode() +would thus return 0 for all button and ring events on the left and 1 for all +button and ring events on the right. When one of the three mode toggle +buttons on the right is pressed, the right mode switches to that button's +mode but the left mode remains unchanged. + */ |