[PATCH] include: add a range of button labels.

Peter Hutterer peter.hutterer at who-t.net
Wed Feb 25 19:06:50 PST 2009


Mostly the same buttons as defined by linux/input.h, with five exceptions:
"Button Unknown" for a button that cannot be labelled.
"Button Wheel Up", "Button Wheel Down" for buttons 4/5, traditionally the
wheel buttons.
"Button Horiz Wheel Up", "Button Horiz Wheel Down" for buttons 6/7,
traditionally the horiz. wheel buttons.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Axis labels are quite useful, so why not do the same thing for buttons as
well?

 Xi/xiproperty.c              |   75 +++++++++++++++++++++++++++++++++++++++-
 include/xserver-properties.h |   79 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 153 insertions(+), 1 deletions(-)

diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index f42adb8..c961ea5 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -91,7 +91,80 @@ static struct dev_properties
     {0, AXIS_LABEL_PROP_ABS_TILT_Y},
     {0, AXIS_LABEL_PROP_ABS_TOOL_WIDTH},
     {0, AXIS_LABEL_PROP_ABS_VOLUME},
-    {0, AXIS_LABEL_PROP_ABS_MISC}
+    {0, AXIS_LABEL_PROP_ABS_MISC},
+
+    {0, BTN_LABEL_PROP},
+    {0, BTN_LABEL_PROP_BTN_UNKNOWN},
+    {0, BTN_LABEL_PROP_BTN_WHEEL_UP},
+    {0, BTN_LABEL_PROP_BTN_WHEEL_DOWN},
+    {0, BTN_LABEL_PROP_BTN_HWHEEL_LEFT},
+    {0, BTN_LABEL_PROP_BTN_HWHEEL_RIGHT},
+    {0, BTN_LABEL_PROP_BTN_0},
+    {0, BTN_LABEL_PROP_BTN_1},
+    {0, BTN_LABEL_PROP_BTN_2},
+    {0, BTN_LABEL_PROP_BTN_3},
+    {0, BTN_LABEL_PROP_BTN_4},
+    {0, BTN_LABEL_PROP_BTN_5},
+    {0, BTN_LABEL_PROP_BTN_6},
+    {0, BTN_LABEL_PROP_BTN_7},
+    {0, BTN_LABEL_PROP_BTN_8},
+    {0, BTN_LABEL_PROP_BTN_9},
+
+    {0, BTN_LABEL_PROP_BTN_LEFT},
+    {0, BTN_LABEL_PROP_BTN_RIGHT},
+    {0, BTN_LABEL_PROP_BTN_MIDDLE},
+    {0, BTN_LABEL_PROP_BTN_SIDE},
+    {0, BTN_LABEL_PROP_BTN_EXTRA},
+    {0, BTN_LABEL_PROP_BTN_FORWARD},
+    {0, BTN_LABEL_PROP_BTN_BACK},
+    {0, BTN_LABEL_PROP_BTN_TASK},
+
+    {0, BTN_LABEL_PROP_BTN_TRIGGER},
+    {0, BTN_LABEL_PROP_BTN_THUMB},
+    {0, BTN_LABEL_PROP_BTN_THUMB2},
+    {0, BTN_LABEL_PROP_BTN_TOP},
+    {0, BTN_LABEL_PROP_BTN_TOP2},
+    {0, BTN_LABEL_PROP_BTN_PINKIE},
+    {0, BTN_LABEL_PROP_BTN_BASE},
+    {0, BTN_LABEL_PROP_BTN_BASE2},
+    {0, BTN_LABEL_PROP_BTN_BASE3},
+    {0, BTN_LABEL_PROP_BTN_BASE4},
+    {0, BTN_LABEL_PROP_BTN_BASE5},
+    {0, BTN_LABEL_PROP_BTN_BASE6},
+    {0, BTN_LABEL_PROP_BTN_DEAD},
+
+    {0, BTN_LABEL_PROP_BTN_A},
+    {0, BTN_LABEL_PROP_BTN_B},
+    {0, BTN_LABEL_PROP_BTN_C},
+    {0, BTN_LABEL_PROP_BTN_X},
+    {0, BTN_LABEL_PROP_BTN_Y},
+    {0, BTN_LABEL_PROP_BTN_Z},
+    {0, BTN_LABEL_PROP_BTN_TL},
+    {0, BTN_LABEL_PROP_BTN_TR},
+    {0, BTN_LABEL_PROP_BTN_TL2},
+    {0, BTN_LABEL_PROP_BTN_TR2},
+    {0, BTN_LABEL_PROP_BTN_SELECT},
+    {0, BTN_LABEL_PROP_BTN_START},
+    {0, BTN_LABEL_PROP_BTN_MODE},
+    {0, BTN_LABEL_PROP_BTN_THUMBL},
+    {0, BTN_LABEL_PROP_BTN_THUMBR},
+
+    {0, BTN_LABEL_PROP_BTN_TOOL_PEN},
+    {0, BTN_LABEL_PROP_BTN_TOOL_RUBBER},
+    {0, BTN_LABEL_PROP_BTN_TOOL_BRUSH},
+    {0, BTN_LABEL_PROP_BTN_TOOL_PENCIL},
+    {0, BTN_LABEL_PROP_BTN_TOOL_AIRBRUSH},
+    {0, BTN_LABEL_PROP_BTN_TOOL_FINGER},
+    {0, BTN_LABEL_PROP_BTN_TOOL_MOUSE},
+    {0, BTN_LABEL_PROP_BTN_TOOL_LENS},
+    {0, BTN_LABEL_PROP_BTN_TOUCH},
+    {0, BTN_LABEL_PROP_BTN_STYLUS},
+    {0, BTN_LABEL_PROP_BTN_STYLUS2},
+    {0, BTN_LABEL_PROP_BTN_TOOL_DOUBLETAP},
+    {0, BTN_LABEL_PROP_BTN_TOOL_TRIPLETAP},
+
+    {0, BTN_LABEL_PROP_BTN_GEAR_DOWN},
+    {0, BTN_LABEL_PROP_BTN_GEAR_UP}
 };
 
 static long XIPropHandlerID = 1;
diff --git a/include/xserver-properties.h b/include/xserver-properties.h
index d7b1514..9b3b7bf 100644
--- a/include/xserver-properties.h
+++ b/include/xserver-properties.h
@@ -89,4 +89,83 @@
 #define AXIS_LABEL_PROP_ABS_VOLUME      "Abs Volume"
 #define AXIS_LABEL_PROP_ABS_MISC        "Abs Misc"
 
+/* Button names */
+#define BTN_LABEL_PROP "Button Labels"
+
+/* Default label */
+#define BTN_LABEL_PROP_BTN_UNKNOWN      "Button Unknown"
+/* Wheel buttons */
+#define BTN_LABEL_PROP_BTN_WHEEL_UP     "Button Wheel Up"
+#define BTN_LABEL_PROP_BTN_WHEEL_DOWN   "Button Wheel Down"
+#define BTN_LABEL_PROP_BTN_HWHEEL_LEFT  "Button Horiz Wheel Left"
+#define BTN_LABEL_PROP_BTN_HWHEEL_RIGHT "Button Horiz Wheel Right"
+
+/* The following are from linux/input.h */
+#define BTN_LABEL_PROP_BTN_0            "Button 0"
+#define BTN_LABEL_PROP_BTN_1            "Button 1"
+#define BTN_LABEL_PROP_BTN_2            "Button 2"
+#define BTN_LABEL_PROP_BTN_3            "Button 3"
+#define BTN_LABEL_PROP_BTN_4            "Button 4"
+#define BTN_LABEL_PROP_BTN_5            "Button 5"
+#define BTN_LABEL_PROP_BTN_6            "Button 6"
+#define BTN_LABEL_PROP_BTN_7            "Button 7"
+#define BTN_LABEL_PROP_BTN_8            "Button 8"
+#define BTN_LABEL_PROP_BTN_9            "Button 9"
+
+#define BTN_LABEL_PROP_BTN_LEFT         "Button Left"
+#define BTN_LABEL_PROP_BTN_RIGHT        "Button Right"
+#define BTN_LABEL_PROP_BTN_MIDDLE       "Button Middle"
+#define BTN_LABEL_PROP_BTN_SIDE         "Button Side"
+#define BTN_LABEL_PROP_BTN_EXTRA        "Button Extra"
+#define BTN_LABEL_PROP_BTN_FORWARD      "Button Forward"
+#define BTN_LABEL_PROP_BTN_BACK         "Button Back"
+#define BTN_LABEL_PROP_BTN_TASK         "Button Task"
+
+#define BTN_LABEL_PROP_BTN_TRIGGER      "Button Trigger"
+#define BTN_LABEL_PROP_BTN_THUMB        "Button Thumb"
+#define BTN_LABEL_PROP_BTN_THUMB2       "Button Thumb2"
+#define BTN_LABEL_PROP_BTN_TOP          "Button Top"
+#define BTN_LABEL_PROP_BTN_TOP2         "Button Top2"
+#define BTN_LABEL_PROP_BTN_PINKIE       "Button Pinkie"
+#define BTN_LABEL_PROP_BTN_BASE         "Button Base"
+#define BTN_LABEL_PROP_BTN_BASE2        "Button Base2"
+#define BTN_LABEL_PROP_BTN_BASE3        "Button Base3"
+#define BTN_LABEL_PROP_BTN_BASE4        "Button Base4"
+#define BTN_LABEL_PROP_BTN_BASE5        "Button Base5"
+#define BTN_LABEL_PROP_BTN_BASE6        "Button Base6"
+#define BTN_LABEL_PROP_BTN_DEAD         "Button Dead"
+
+#define BTN_LABEL_PROP_BTN_A            "Button A"
+#define BTN_LABEL_PROP_BTN_B            "Button B"
+#define BTN_LABEL_PROP_BTN_C            "Button C"
+#define BTN_LABEL_PROP_BTN_X            "Button X"
+#define BTN_LABEL_PROP_BTN_Y            "Button Y"
+#define BTN_LABEL_PROP_BTN_Z            "Button Z"
+#define BTN_LABEL_PROP_BTN_TL           "Button T Left"
+#define BTN_LABEL_PROP_BTN_TR           "Button T Right"
+#define BTN_LABEL_PROP_BTN_TL2          "Button T Left2"
+#define BTN_LABEL_PROP_BTN_TR2          "Button T Right2"
+#define BTN_LABEL_PROP_BTN_SELECT       "Button Select"
+#define BTN_LABEL_PROP_BTN_START        "Button Start"
+#define BTN_LABEL_PROP_BTN_MODE         "Button Mode"
+#define BTN_LABEL_PROP_BTN_THUMBL       "Button Thumb Left"
+#define BTN_LABEL_PROP_BTN_THUMBR       "Button Thumb Right"
+
+#define BTN_LABEL_PROP_BTN_TOOL_PEN             "Button Tool Pen"
+#define BTN_LABEL_PROP_BTN_TOOL_RUBBER          "Button Tool Rubber"
+#define BTN_LABEL_PROP_BTN_TOOL_BRUSH           "Button Tool Brush"
+#define BTN_LABEL_PROP_BTN_TOOL_PENCIL          "Button Tool Pencil"
+#define BTN_LABEL_PROP_BTN_TOOL_AIRBRUSH        "Button Tool Airbrush"
+#define BTN_LABEL_PROP_BTN_TOOL_FINGER          "Button Tool Finger"
+#define BTN_LABEL_PROP_BTN_TOOL_MOUSE           "Button Tool Mouse"
+#define BTN_LABEL_PROP_BTN_TOOL_LENS            "Button Tool Lens"
+#define BTN_LABEL_PROP_BTN_TOUCH                "Button Touch"
+#define BTN_LABEL_PROP_BTN_STYLUS               "Button Stylus"
+#define BTN_LABEL_PROP_BTN_STYLUS2              "Button Stylus2"
+#define BTN_LABEL_PROP_BTN_TOOL_DOUBLETAP       "Button Tool Doubletap"
+#define BTN_LABEL_PROP_BTN_TOOL_TRIPLETAP       "Button Tool Tripletap"
+
+#define BTN_LABEL_PROP_BTN_GEAR_DOWN            "Button Gear down"
+#define BTN_LABEL_PROP_BTN_GEAR_UP              "Button Gear up"
+
 #endif
-- 
1.6.0.6


More information about the xorg-devel mailing list