aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/rootston/seat.h23
-rw-r--r--include/wlr/types/wlr_tablet_pad.h2
-rw-r--r--include/wlr/types/wlr_tablet_v2.h42
3 files changed, 67 insertions, 0 deletions
diff --git a/include/rootston/seat.h b/include/rootston/seat.h
index 0e3043dd..31ddd6fa 100644
--- a/include/rootston/seat.h
+++ b/include/rootston/seat.h
@@ -31,6 +31,7 @@ struct roots_seat {
struct wl_list pointers;
struct wl_list touch;
struct wl_list tablet_tools;
+ struct wl_list tablet_pads;
struct wl_listener new_drag_icon;
struct wl_listener destroy;
@@ -80,12 +81,34 @@ struct roots_touch {
struct roots_tablet_tool {
struct roots_seat *seat;
struct wlr_input_device *device;
+ struct wlr_tablet_v2_tablet *tablet_v2;
+
struct wl_listener device_destroy;
struct wl_listener axis;
struct wl_listener proximity;
struct wl_listener tip;
struct wl_listener button;
struct wl_list link;
+
+ struct wl_list pads; // struct roots_tablet_pad::tablet_link
+};
+
+struct roots_tablet_pad {
+ struct wl_list link;
+ struct wl_list tablet_link;
+ struct wlr_tablet_v2_tablet_pad *tablet_v2_pad;
+
+ struct roots_seat *seat;
+ struct wlr_input_device *device;
+
+ struct wl_listener device_destroy;
+ struct wl_listener attach;
+ struct wl_listener button;
+ struct wl_listener ring;
+ struct wl_listener strip;
+
+ struct roots_tablet_tool *tablet;
+ struct wl_listener tablet_destroy;
};
struct roots_seat *roots_seat_create(struct roots_input *input, char *name);
diff --git a/include/wlr/types/wlr_tablet_pad.h b/include/wlr/types/wlr_tablet_pad.h
index b71f5b9a..ec291c75 100644
--- a/include/wlr/types/wlr_tablet_pad.h
+++ b/include/wlr/types/wlr_tablet_pad.h
@@ -20,6 +20,7 @@ struct wlr_tablet_pad {
struct wl_signal button;
struct wl_signal ring;
struct wl_signal strip;
+ struct wl_signal attach_tablet; //struct wlr_tablet_tool
} events;
size_t button_count;
@@ -52,6 +53,7 @@ struct wlr_event_tablet_pad_button {
uint32_t button;
enum wlr_button_state state;
unsigned int mode;
+ unsigned int group;
};
enum wlr_tablet_pad_ring_source {
diff --git a/include/wlr/types/wlr_tablet_v2.h b/include/wlr/types/wlr_tablet_v2.h
index 358f0719..4b2fffe4 100644
--- a/include/wlr/types/wlr_tablet_v2.h
+++ b/include/wlr/types/wlr_tablet_v2.h
@@ -5,6 +5,11 @@
#include <wlr/types/wlr_seat.h>
#include <wlr/types/wlr_input_device.h>
+#include "tablet-unstable-v2-protocol.h"
+
+struct wlr_tablet_tool_client_v2;
+struct wlr_tablet_pad_client_v2;
+
struct wlr_tablet_manager_v2 {
struct wl_global *wl_global;
struct wl_list clients; // wlr_tablet_manager_client_v2::link
@@ -30,6 +35,8 @@ struct wlr_tablet_v2_tablet_tool {
struct wl_list clients; // wlr_tablet_tool_client_v2::tablet_link
struct wl_listener tool_destroy;
+
+ struct wlr_tablet_tool_client_v2 *current_client;
};
struct wlr_tablet_v2_tablet_pad {
@@ -38,7 +45,12 @@ struct wlr_tablet_v2_tablet_pad {
struct wlr_input_device *wlr_device;
struct wl_list clients; // wlr_tablet_pad_client_v2::tablet_link
+ size_t group_count;
+ uint32_t *groups;
+
struct wl_listener pad_destroy;
+
+ struct wlr_tablet_pad_client_v2 *current_client;
};
struct wlr_tablet_v2_tablet *wlr_make_tablet(
@@ -59,4 +71,34 @@ struct wlr_tablet_v2_tablet_tool *wlr_make_tablet_tool(
struct wlr_tablet_manager_v2 *wlr_tablet_v2_create(struct wl_display *display);
void wlr_tablet_v2_destroy(struct wlr_tablet_manager_v2 *manager);
+uint32_t wlr_send_tablet_v2_tablet_tool_proximity_in(
+ struct wlr_tablet_v2_tablet_tool *tool,
+ struct wlr_tablet_v2_tablet *tablet,
+ struct wlr_surface *surface);
+
+void wlr_send_tablet_v2_tablet_tool_motion(
+ struct wlr_tablet_v2_tablet_tool *tool, double x, double y);
+
+void wlr_send_tablet_v2_tablet_tool_proximity_out(
+ struct wlr_tablet_v2_tablet_tool *tool);
+
+uint32_t wlr_send_tablet_v2_tablet_pad_enter(
+ struct wlr_tablet_v2_tablet_pad *pad,
+ struct wlr_tablet_v2_tablet *tablet,
+ struct wlr_surface *surface);
+
+void wlr_send_tablet_v2_tablet_pad_button(
+ struct wlr_tablet_v2_tablet_pad *pad, size_t button,
+ uint32_t time, enum zwp_tablet_pad_v2_button_state state);
+
+void wlr_send_tablet_v2_tablet_pad_strip( struct wlr_tablet_v2_tablet_pad *pad,
+ uint32_t strip, double position, bool finger, uint32_t time);
+void wlr_send_tablet_v2_tablet_pad_ring(struct wlr_tablet_v2_tablet_pad *pad,
+ uint32_t ring, double position, bool finger, uint32_t time);
+
+uint32_t wlr_send_tablet_v2_tablet_pad_leave(struct wlr_tablet_v2_tablet_pad *pad,
+ struct wlr_surface *surface);
+
+uint32_t wlr_send_tablet_v2_tablet_pad_mode(struct wlr_tablet_v2_tablet_pad *pad,
+ size_t group, uint32_t mode, uint32_t time);
#endif /* WLR_TYPES_WLR_TABLET_V2_H */