diff options
Diffstat (limited to 'src/modules/wl_desktop_shell/draw-mode.h')
-rw-r--r-- | src/modules/wl_desktop_shell/draw-mode.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/modules/wl_desktop_shell/draw-mode.h b/src/modules/wl_desktop_shell/draw-mode.h new file mode 100644 index 0000000000..6028c5e952 --- /dev/null +++ b/src/modules/wl_desktop_shell/draw-mode.h @@ -0,0 +1,60 @@ +#ifndef ZWP_DRAW_MODES_SERVER_PROTOCOL_H +#define ZWP_DRAW_MODES_SERVER_PROTOCOL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> +#include <stddef.h> +#include "wayland-server.h" + +struct wl_client; +struct wl_resource; + +struct draw_modes; + +extern const struct wl_interface draw_modes_interface; + +#ifndef DRAW_MODES_STATE_ENUM +#define DRAW_MODES_STATE_ENUM +/** + * draw_modes_state - the surface has CSD without dropshadow + * @DRAW_MODES_STATE_DRAW_NOSHADOW: CSD with no dropshadow + * + * The surface contains a CSD region which does not include a dropshadow. + */ +enum draw_modes_state { + DRAW_MODES_STATE_DRAW_NOSHADOW = 0x2000, +}; +#endif /* DRAW_MODES_STATE_ENUM */ + +struct draw_modes_interface { + /** + * set_available_draw_modes - advertise optional draw modes for + * the window + * @surface: (none) + * @states: (none) + * + * Inform the compositor of optional draw modes which are + * available for the window. + * + * Calling this after an xdg_surface's first commit is a client + * error. + * + * Required modes are implemented by all clients and are not + * present in this array. If set_available_draw_modes is not + * called, only required modes are available. + */ + void (*set_available_draw_modes)(struct wl_client *client, + struct wl_resource *resource, + struct wl_resource *surface, + struct wl_array *states); +}; + + +#ifdef __cplusplus +} +#endif + +#endif |