mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-26 06:59:52 -05:00
Introduce wlr_xcursor_manager
This commit is contained in:
parent
2dccb11741
commit
8605243459
13 changed files with 180 additions and 167 deletions
|
|
@ -6,7 +6,6 @@
|
|||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/types/wlr_input_device.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/xcursor.h>
|
||||
|
||||
struct wlr_cursor_state;
|
||||
|
||||
|
|
|
|||
53
include/wlr/types/wlr_xcursor_manager.h
Normal file
53
include/wlr/types/wlr_xcursor_manager.h
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#ifndef WLR_TYPES_WLR_XCURSOR_MANAGER_H
|
||||
#define WLR_TYPES_WLR_XCURSOR_MANAGER_H
|
||||
|
||||
#include <wayland-server.h>
|
||||
#include <wlr/types/wlr_cursor.h>
|
||||
#include <wlr/xcursor.h>
|
||||
|
||||
/**
|
||||
* A scaled XCursor theme.
|
||||
*/
|
||||
struct wlr_xcursor_manager_theme {
|
||||
uint32_t scale;
|
||||
struct wlr_xcursor_theme *theme;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
/**
|
||||
* Manage multiple XCursor themes with different scales and set `wlr_cursor`
|
||||
* images.
|
||||
*
|
||||
* This manager can be used to display cursor images on multiple outputs having
|
||||
* different scale factors.
|
||||
*/
|
||||
struct wlr_xcursor_manager {
|
||||
char *name;
|
||||
uint32_t size;
|
||||
struct wl_list scaled_themes; // wlr_xcursor_manager_theme::link
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a new XCursor manager. After initialization, scaled themes need to be
|
||||
* loaded with `wlr_xcursor_manager_load`. `size` is the unscaled cursor theme
|
||||
* size.
|
||||
*/
|
||||
struct wlr_xcursor_manager *wlr_xcursor_manager_create(const char *name,
|
||||
uint32_t size);
|
||||
|
||||
void wlr_xcursor_manager_destroy(struct wlr_xcursor_manager *manager);
|
||||
|
||||
int wlr_xcursor_manager_load(struct wlr_xcursor_manager *manager,
|
||||
uint32_t scale);
|
||||
|
||||
struct wlr_xcursor *wlr_xcursor_manager_get_xcursor(
|
||||
struct wlr_xcursor_manager *manager, const char *name, uint32_t scale);
|
||||
|
||||
/**
|
||||
* Set a `wlr_cursor` image. The manager uses all currently loaded scaled
|
||||
* themes.
|
||||
*/
|
||||
void wlr_xcursor_manager_set_cursor_image(struct wlr_xcursor_manager *manager,
|
||||
const char *name, struct wlr_cursor *cursor);
|
||||
|
||||
#endif
|
||||
|
|
@ -61,7 +61,7 @@ struct wlr_xcursor_theme *wlr_xcursor_theme_load(const char *name, int size);
|
|||
void wlr_xcursor_theme_destroy(struct wlr_xcursor_theme *theme);
|
||||
|
||||
struct wlr_xcursor *wlr_xcursor_theme_get_cursor(
|
||||
struct wlr_xcursor_theme *theme, const char *name);
|
||||
struct wlr_xcursor_theme *theme, const char *name);
|
||||
|
||||
int wlr_xcursor_frame(struct wlr_xcursor *cursor, uint32_t time);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue