22#ifndef SDL_waylandtouch_h_
23#define SDL_waylandtouch_h_
25#include "../../SDL_internal.h"
27#ifdef SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH
32#include "wayland-util.h"
39struct qt_touch_extension;
70struct qt_surface_extension;
71struct qt_extended_surface;
73extern const struct wl_interface qt_surface_extension_interface;
74extern const struct wl_interface qt_extended_surface_interface;
76#define QT_SURFACE_EXTENSION_GET_EXTENDED_SURFACE 0
79qt_surface_extension_set_user_data(
struct qt_surface_extension *qt_surface_extension,
void *user_data)
81 wl_proxy_set_user_data((
struct wl_proxy *) qt_surface_extension, user_data);
85qt_surface_extension_get_user_data(
struct qt_surface_extension *qt_surface_extension)
87 return wl_proxy_get_user_data((
struct wl_proxy *) qt_surface_extension);
91qt_surface_extension_destroy(
struct qt_surface_extension *qt_surface_extension)
93 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_surface_extension);
96static inline struct qt_extended_surface *
97qt_surface_extension_get_extended_surface(
struct qt_surface_extension *qt_surface_extension,
struct wl_surface *
surface)
101 id = wl_proxy_create((
struct wl_proxy *) qt_surface_extension,
102 &qt_extended_surface_interface);
106 WAYLAND_wl_proxy_marshal((
struct wl_proxy *) qt_surface_extension,
107 QT_SURFACE_EXTENSION_GET_EXTENDED_SURFACE,
id,
surface);
109 return (
struct qt_extended_surface *)
id;
112#ifndef QT_EXTENDED_SURFACE_ORIENTATION_ENUM
113#define QT_EXTENDED_SURFACE_ORIENTATION_ENUM
114enum qt_extended_surface_orientation {
115 QT_EXTENDED_SURFACE_ORIENTATION_PRIMARYORIENTATION = 0,
116 QT_EXTENDED_SURFACE_ORIENTATION_PORTRAITORIENTATION = 1,
117 QT_EXTENDED_SURFACE_ORIENTATION_LANDSCAPEORIENTATION = 2,
118 QT_EXTENDED_SURFACE_ORIENTATION_INVERTEDPORTRAITORIENTATION = 4,
119 QT_EXTENDED_SURFACE_ORIENTATION_INVERTEDLANDSCAPEORIENTATION = 8,
123#ifndef QT_EXTENDED_SURFACE_WINDOWFLAG_ENUM
124#define QT_EXTENDED_SURFACE_WINDOWFLAG_ENUM
125enum qt_extended_surface_windowflag {
126 QT_EXTENDED_SURFACE_WINDOWFLAG_OVERRIDESSYSTEMGESTURES = 1,
127 QT_EXTENDED_SURFACE_WINDOWFLAG_STAYSONTOP = 2,
131struct qt_extended_surface_listener {
136 void (*onscreen_visibility)(
void *
data,
137 struct qt_extended_surface *qt_extended_surface,
144 void (*set_generic_property)(
void *
data,
145 struct qt_extended_surface *qt_extended_surface,
147 struct wl_array *
value);
152 struct qt_extended_surface *qt_extended_surface);
156qt_extended_surface_add_listener(
struct qt_extended_surface *qt_extended_surface,
157 const struct qt_extended_surface_listener *listener,
void *
data)
159 return wl_proxy_add_listener((
struct wl_proxy *) qt_extended_surface,
160 (
void (**)(
void)) listener,
data);
163#define QT_EXTENDED_SURFACE_UPDATE_GENERIC_PROPERTY 0
164#define QT_EXTENDED_SURFACE_SET_CONTENT_ORIENTATION 1
165#define QT_EXTENDED_SURFACE_SET_WINDOW_FLAGS 2
168qt_extended_surface_set_user_data(
struct qt_extended_surface *qt_extended_surface,
void *user_data)
170 WAYLAND_wl_proxy_set_user_data((
struct wl_proxy *) qt_extended_surface, user_data);
174qt_extended_surface_get_user_data(
struct qt_extended_surface *qt_extended_surface)
176 return WAYLAND_wl_proxy_get_user_data((
struct wl_proxy *) qt_extended_surface);
180qt_extended_surface_destroy(
struct qt_extended_surface *qt_extended_surface)
182 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_extended_surface);
186qt_extended_surface_update_generic_property(
struct qt_extended_surface *qt_extended_surface,
const char *
name,
struct wl_array *
value)
188 WAYLAND_wl_proxy_marshal((
struct wl_proxy *) qt_extended_surface,
189 QT_EXTENDED_SURFACE_UPDATE_GENERIC_PROPERTY,
name,
value);
193qt_extended_surface_set_content_orientation(
struct qt_extended_surface *qt_extended_surface,
int32_t orientation)
195 WAYLAND_wl_proxy_marshal((
struct wl_proxy *) qt_extended_surface,
196 QT_EXTENDED_SURFACE_SET_CONTENT_ORIENTATION, orientation);
200qt_extended_surface_set_window_flags(
struct qt_extended_surface *qt_extended_surface,
int32_t flags)
202 WAYLAND_wl_proxy_marshal((
struct wl_proxy *) qt_extended_surface,
203 QT_EXTENDED_SURFACE_SET_WINDOW_FLAGS,
flags);
208extern const struct wl_interface qt_touch_extension_interface;
210#ifndef QT_TOUCH_EXTENSION_FLAGS_ENUM
211#define QT_TOUCH_EXTENSION_FLAGS_ENUM
212enum qt_touch_extension_flags {
213 QT_TOUCH_EXTENSION_FLAGS_MOUSE_FROM_TOUCH = 0x1,
217struct qt_touch_extension_listener {
236 struct qt_touch_extension *qt_touch_extension,
250 struct wl_array *rawdata);
256 struct qt_touch_extension *qt_touch_extension,
261qt_touch_extension_add_listener(
struct qt_touch_extension *qt_touch_extension,
262 const struct qt_touch_extension_listener *listener,
void *
data)
264 return wl_proxy_add_listener((
struct wl_proxy *) qt_touch_extension,
265 (
void (**)(
void)) listener,
data);
268#define QT_TOUCH_EXTENSION_DUMMY 0
271qt_touch_extension_set_user_data(
struct qt_touch_extension *qt_touch_extension,
void *user_data)
273 WAYLAND_wl_proxy_set_user_data((
struct wl_proxy *) qt_touch_extension, user_data);
277qt_touch_extension_get_user_data(
struct qt_touch_extension *qt_touch_extension)
279 return WAYLAND_wl_proxy_get_user_data((
struct wl_proxy *) qt_touch_extension);
283qt_touch_extension_destroy(
struct qt_touch_extension *qt_touch_extension)
285 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_touch_extension);
289qt_touch_extension_dummy(
struct qt_touch_extension *qt_touch_extension)
291 WAYLAND_wl_proxy_marshal((
struct wl_proxy *) qt_touch_extension,
292 QT_TOUCH_EXTENSION_DUMMY);
298extern const struct wl_interface qt_windowmanager_interface;
300struct qt_windowmanager_listener {
306 struct qt_windowmanager *qt_windowmanager,
312 struct qt_windowmanager *qt_windowmanager);
316qt_windowmanager_add_listener(
struct qt_windowmanager *qt_windowmanager,
317 const struct qt_windowmanager_listener *listener,
void *
data)
319 return wl_proxy_add_listener((
struct wl_proxy *) qt_windowmanager,
320 (
void (**)(
void)) listener,
data);
323#define QT_WINDOWMANAGER_OPEN_URL 0
326qt_windowmanager_set_user_data(
struct qt_windowmanager *qt_windowmanager,
void *user_data)
328 WAYLAND_wl_proxy_set_user_data((
struct wl_proxy *) qt_windowmanager, user_data);
332qt_windowmanager_get_user_data(
struct qt_windowmanager *qt_windowmanager)
334 return WAYLAND_wl_proxy_get_user_data((
struct wl_proxy *) qt_windowmanager);
338qt_windowmanager_destroy(
struct qt_windowmanager *qt_windowmanager)
340 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_windowmanager);
344qt_windowmanager_open_url(
struct qt_windowmanager *qt_windowmanager,
uint32_t remaining,
const char *url)
346 WAYLAND_wl_proxy_marshal((
struct wl_proxy *) qt_windowmanager,
347 QT_WINDOWMANAGER_OPEN_URL, remaining, url);
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei height
GLuint const GLchar * name
GLsizei const GLfloat * value
EGLSurface EGLnsecsANDROID time