1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#ifndef YASL_WAYLAND_API_H
#define YASL_WAYLAND_API_H
#include "common/backend.h"
struct wayland_display;
struct wayland_surface;
struct wayland_display *wayland_display_open(struct yasl_loop *loop, const struct yasl_display_spec *spec);
void wayland_display_close(struct wayland_display *d);
uint32_t wayland_display_caps(const struct wayland_display *d);
void wayland_display_dispatch(struct wayland_display *d);
int wayland_display_dispatch_timeout(struct wayland_display *d, int timeout_ms);
void wayland_display_flush(struct wayland_display *d);
int wayland_display_modifiers(const struct wayland_display *d);
void wayland_display_copy(struct wayland_display *d, enum yasl_selection sel, const char *text);
void wayland_display_paste(struct wayland_display *d, enum yasl_selection sel, struct wayland_surface *target);
bool wayland_display_drag_start(struct wayland_display *d, struct wayland_surface *origin, const struct yasl_drag_image *image, const struct yasl_drag_listener *l, void *ud);
void wayland_display_drag_cancel(struct wayland_display *d);
struct wayland_surface *wayland_surface_create_toplevel(struct wayland_display *d, const struct yasl_surface_spec *spec);
struct wayland_surface *wayland_surface_create_popup(struct wayland_surface *parent, const struct yasl_popup_spec *spec);
bool wayland_surface_popup_reposition(struct wayland_surface *popup, const struct yasl_popup_spec *spec);
void wayland_surface_destroy(struct wayland_surface *s);
struct wayland_display *wayland_surface_display(const struct wayland_surface *s);
void wayland_surface_set_callbacks(struct wayland_surface *s, const struct yasl_surface_cbs *cbs, void *ud);
void wayland_surface_set_title(struct wayland_surface *s, const char *title);
void wayland_surface_schedule_redraw(struct wayland_surface *s);
bool wayland_surface_present(struct wayland_surface *s, const struct yasl_framebuffer *fb, const struct yasl_damage_list *damage);
bool wayland_surface_input_poll(struct wayland_surface *s, struct yasl_input_event *ev);
struct yasl_vector2i wayland_surface_size(const struct wayland_surface *s);
uint32_t wayland_surface_scale_120(const struct wayland_surface *s);
uint32_t wayland_surface_state(const struct wayland_surface *s);
struct yasl_timing wayland_surface_timing(const struct wayland_surface *s);
uint64_t wayland_surface_frame_time_ns(struct wayland_surface *s, uint64_t now);
void wayland_surface_set_cursor(struct wayland_surface *s, enum yasl_cursor cursor);
void wayland_surface_set_background_color(struct wayland_surface *s, uint32_t bg);
const char *wayland_surface_ime_preedit(const struct wayland_surface *s);
bool wayland_surface_ime_preedit_cursor(const struct wayland_surface *s, int *begin, int *end);
void wayland_surface_set_ime_caret(struct wayland_surface *s, struct yasl_rect2i caret);
bool wayland_surface_start_interactive_move(struct wayland_surface *s);
bool wayland_surface_start_interactive_resize(struct wayland_surface *s, enum yasl_resize_edge edge);
bool wayland_surface_show_window_menu(struct wayland_surface *s, struct yasl_vector2i pos);
bool wayland_surface_drag_carry(struct wayland_surface *s, struct yasl_vector2i offset);
bool wayland_surface_place_under_pointer(struct wayland_surface *s, struct yasl_vector2i at);
void *wayland_display_get_native_handle(struct wayland_display *d);
void *wayland_surface_get_native_handle(struct wayland_surface *s);
#endif
|