aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2017-11-11 18:42:14 +0100
committeremersion <contact@emersion.fr>2017-11-11 18:42:14 +0100
commitaaf069188319f42bc214f4317c37d533aea64518 (patch)
tree2cf0d7756fbba213389fbb1222ee9e183f3d093e /include
parentac1573b0e7b0b08413e115bb88682ebedbfbf39a (diff)
rootston: add roots_xcursor_theme
roots_xcursor_theme loads multiple wlr_xcursor_theme at different scales.
Diffstat (limited to 'include')
-rw-r--r--include/rootston/cursor.h1
-rw-r--r--include/rootston/desktop.h2
-rw-r--r--include/rootston/xcursor.h39
3 files changed, 36 insertions, 6 deletions
diff --git a/include/rootston/cursor.h b/include/rootston/cursor.h
index c0dbc010..fc71e31d 100644
--- a/include/rootston/cursor.h
+++ b/include/rootston/cursor.h
@@ -30,7 +30,6 @@ struct roots_cursor {
enum roots_cursor_mode mode;
// state from input (review if this is necessary)
- struct wlr_xcursor_theme *xcursor_theme;
struct wlr_seat *wl_seat;
struct wl_client *cursor_client;
int offs_x, offs_y;
diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h
index 376412fb..b12fff70 100644
--- a/include/rootston/desktop.h
+++ b/include/rootston/desktop.h
@@ -12,6 +12,7 @@
#include <wlr/types/wlr_list.h>
#include "rootston/view.h"
#include "rootston/config.h"
+#include "rootston/xcursor.h"
struct roots_output {
struct roots_desktop *desktop;
@@ -29,6 +30,7 @@ struct roots_desktop {
struct roots_server *server;
struct roots_config *config;
+ struct roots_xcursor_theme *xcursor_theme;
struct wlr_output_layout *layout;
diff --git a/include/rootston/xcursor.h b/include/rootston/xcursor.h
index c96e50ef..45fac481 100644
--- a/include/rootston/xcursor.h
+++ b/include/rootston/xcursor.h
@@ -1,15 +1,44 @@
#ifndef _ROOTSTON_XCURSOR_H
#define _ROOTSTON_XCURSOR_H
+#include <wayland-server.h>
#include <wlr/xcursor.h>
+#include <wlr/xwayland.h>
+#include <wlr/types/wlr_cursor.h>
-struct wlr_xcursor *get_default_xcursor(struct wlr_xcursor_theme *theme);
+#define ROOTS_XCURSOR_SIZE 16
-struct wlr_xcursor *get_move_xcursor(struct wlr_xcursor_theme *theme);
+struct roots_xcursor_scaled_theme {
+ uint32_t scale;
+ struct wlr_xcursor_theme *theme;
+ struct wl_list link;
+};
-struct wlr_xcursor *get_resize_xcursor(struct wlr_xcursor_theme *theme,
- uint32_t edges);
+struct roots_xcursor_theme {
+ char *name;
+ struct wl_list scaled_themes; // roots_xcursor_scaled_theme::link
+};
-struct wlr_xcursor *get_rotate_xcursor(struct wlr_xcursor_theme *theme);
+struct roots_xcursor_theme *roots_xcursor_theme_create(const char *name);
+
+void roots_xcursor_theme_destroy(struct roots_xcursor_theme *theme);
+
+int roots_xcursor_theme_load(struct roots_xcursor_theme *theme,
+ uint32_t scale);
+
+void roots_xcursor_theme_set_default(struct roots_xcursor_theme *theme,
+ struct wlr_cursor *cursor);
+
+void roots_xcursor_theme_set_move(struct roots_xcursor_theme *theme,
+ struct wlr_cursor *cursor);
+
+void roots_xcursor_theme_set_resize(struct roots_xcursor_theme *theme,
+ struct wlr_cursor *cursor, uint32_t edges);
+
+void roots_xcursor_theme_set_rotate(struct roots_xcursor_theme *theme,
+ struct wlr_cursor *cursor);
+
+void roots_xcursor_theme_xwayland_set_default(struct roots_xcursor_theme *theme,
+ struct wlr_xwayland *xwayland);
#endif