aboutsummaryrefslogtreecommitdiff
path: root/include/swaybar/input.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/swaybar/input.h')
-rw-r--r--include/swaybar/input.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/swaybar/input.h b/include/swaybar/input.h
new file mode 100644
index 00000000..a552e7ac
--- /dev/null
+++ b/include/swaybar/input.h
@@ -0,0 +1,49 @@
+#ifndef _SWAYBAR_INPUT_H
+#define _SWAYBAR_INPUT_H
+
+#include <wayland-client.h>
+#include "list.h"
+
+struct swaybar_output;
+
+struct swaybar_pointer {
+ struct wl_pointer *pointer;
+ struct wl_cursor_theme *cursor_theme;
+ struct wl_cursor_image *cursor_image;
+ struct wl_surface *cursor_surface;
+ struct swaybar_output *current;
+ int x, y;
+};
+
+enum x11_button {
+ NONE,
+ LEFT,
+ MIDDLE,
+ RIGHT,
+ SCROLL_UP,
+ SCROLL_DOWN,
+ SCROLL_LEFT,
+ SCROLL_RIGHT,
+ BACK,
+ FORWARD,
+};
+
+enum hotspot_event_handling {
+ HOTSPOT_IGNORE,
+ HOTSPOT_PROCESS,
+};
+
+struct swaybar_hotspot {
+ struct wl_list link; // swaybar_output::hotspots
+ int x, y, width, height;
+ enum hotspot_event_handling (*callback)(struct swaybar_output *output,
+ int x, int y, enum x11_button button, void *data);
+ void (*destroy)(void *data);
+ void *data;
+};
+
+extern const struct wl_seat_listener seat_listener;
+
+void free_hotspots(struct wl_list *list);
+
+#endif