33#include <wayland-cursor.h>
34#include <wayland-client-protocol.hpp>
35#include <wayland-util.hpp>
39 class cursor_image_t :
public detail::basic_wrapper<wl_cursor_image>
42 cursor_image_t(wl_cursor_image *image, std::shared_ptr<wl_cursor_theme> t);
43 friend class cursor_t;
45 std::shared_ptr<wl_cursor_theme> cursor_theme;
48 cursor_image_t() =
default;
49 uint32_t width()
const;
50 uint32_t height()
const;
51 uint32_t hotspot_x()
const;
52 uint32_t hotspot_y()
const;
53 uint32_t delay()
const;
55 buffer_t get_buffer()
const;
58 class cursor_t :
public detail::basic_wrapper<wl_cursor>
61 cursor_t(wl_cursor *c, std::shared_ptr<wl_cursor_theme> t);
62 friend class cursor_theme_t;
64 std::shared_ptr<wl_cursor_theme> cursor_theme;
68 unsigned int image_count()
const;
69 std::string name()
const;
70 cursor_image_t image(
unsigned int n)
const;
71 int frame(uint32_t time)
const;
74 class cursor_theme_t :
public detail::refcounted_wrapper<wl_cursor_theme>
77 cursor_theme_t() =
default;
78 cursor_theme_t(
const std::string& name,
int size,
const shm_t& shm);
79 cursor_t get_cursor(
const std::string& name)
const;