aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types.h80
1 files changed, 77 insertions, 3 deletions
diff --git a/include/wlr/types.h b/include/wlr/types.h
index 4763013a..aae76f06 100644
--- a/include/wlr/types.h
+++ b/include/wlr/types.h
@@ -177,15 +177,88 @@ struct wlr_touch_cancel {
int32_t slot;
};
-// TODO: tablet & tablet tool
-// TODO: gestures
+struct wlr_tablet_tool_impl;
+struct wlr_tablet_tool_state;
+
+struct wlr_tablet_tool {
+ struct wlr_tablet_tool_impl *impl;
+ struct wlr_tablet_tool_state *state;
+
+ struct {
+ struct wl_signal axis;
+ struct wl_signal proximity;
+ struct wl_signal tip;
+ struct wl_signal button;
+ } events;
+};
+
+enum wlr_tablet_tool_axes {
+ WLR_TABLET_TOOL_AXIS_X = 1,
+ WLR_TABLET_TOOL_AXIS_Y = 2,
+ WLR_TABLET_TOOL_AXIS_DISTANCE = 4,
+ WLR_TABLET_TOOL_AXIS_PRESSURE = 8,
+ WLR_TABLET_TOOL_AXIS_TILT_X = 16,
+ WLR_TABLET_TOOL_AXIS_TILT_Y = 32,
+ WLR_TABLET_TOOL_AXIS_ROTATION = 64,
+ WLR_TABLET_TOOL_AXIS_SLIDER = 128,
+ WLR_TABLET_TOOL_AXIS_WHEEL = 256,
+};
+
+struct wlr_tablet_tool_axis {
+ uint32_t time_sec;
+ uint64_t time_usec;
+ uint32_t updated_axes;
+ double x_mm, y_mm;
+ double width_mm, height_mm;
+ double pressure;
+ double distance;
+ double tilt_x, tilt_y;
+ double rotation;
+ double slider;
+ double wheel_delta;
+};
+
+enum wlr_tablet_tool_proximity_state {
+ WLR_TABLET_TOOL_PROXIMITY_OUT,
+ WLR_TABLET_TOOL_PROXIMITY_IN,
+};
+
+struct wlr_tablet_tool_proximity {
+ uint32_t time_sec;
+ uint64_t time_usec;
+ double x, y;
+ double width_mm, height_mm;
+ enum wlr_tablet_tool_proximity_state state;
+};
+
+enum wlr_tablet_tool_tip_state {
+ WLR_TABLET_TOOL_TIP_UP,
+ WLR_TABLET_TOOL_TIP_DOWN,
+};
+
+struct wlr_tablet_tool_tip {
+ uint32_t time_sec;
+ uint64_t time_usec;
+ double x, y;
+ double width_mm, height_mm;
+ enum wlr_tablet_tool_tip_state state;
+};
+
+struct wlr_tablet_tool_button {
+ uint32_t time_sec;
+ uint64_t time_usec;
+ uint32_t button;
+ enum wlr_button_state state;
+};
+
+// TODO: tablet pad
// TODO: switch
enum wlr_input_device_type {
WLR_INPUT_DEVICE_KEYBOARD,
WLR_INPUT_DEVICE_POINTER,
WLR_INPUT_DEVICE_TOUCH,
- WLR_INPUT_DEVICE_TABLET_PEN,
+ WLR_INPUT_DEVICE_TABLET_TOOL,
WLR_INPUT_DEVICE_TABLET_PAD,
WLR_INPUT_DEVICE_GESTURE,
WLR_INPUT_DEVICE_SWITCH,
@@ -207,6 +280,7 @@ struct wlr_input_device {
struct wlr_keyboard *keyboard;
struct wlr_pointer *pointer;
struct wlr_touch *touch;
+ struct wlr_tablet_tool *tablet_tool;
};
};