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"
39 struct qt_touch_extension;
70 struct qt_surface_extension;
71 struct qt_extended_surface;
73 extern const struct wl_interface qt_surface_extension_interface;
74 extern const struct wl_interface qt_extended_surface_interface;
76 #define QT_SURFACE_EXTENSION_GET_EXTENDED_SURFACE 0
79 qt_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);
85 qt_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);
91 qt_surface_extension_destroy(
struct qt_surface_extension *qt_surface_extension)
93 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_surface_extension);
96 static inline struct qt_extended_surface *
97 qt_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
114 enum 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
125 enum qt_extended_surface_windowflag {
126 QT_EXTENDED_SURFACE_WINDOWFLAG_OVERRIDESSYSTEMGESTURES = 1,
127 QT_EXTENDED_SURFACE_WINDOWFLAG_STAYSONTOP = 2,
131 struct 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);
156 qt_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
168 qt_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);
174 qt_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);
180 qt_extended_surface_destroy(
struct qt_extended_surface *qt_extended_surface)
182 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_extended_surface);
186 qt_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);
193 qt_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);
200 qt_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);
208 extern const struct wl_interface qt_touch_extension_interface;
210 #ifndef QT_TOUCH_EXTENSION_FLAGS_ENUM
211 #define QT_TOUCH_EXTENSION_FLAGS_ENUM
212 enum qt_touch_extension_flags {
213 QT_TOUCH_EXTENSION_FLAGS_MOUSE_FROM_TOUCH = 0x1,
217 struct 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,
261 qt_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
271 qt_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);
277 qt_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);
283 qt_touch_extension_destroy(
struct qt_touch_extension *qt_touch_extension)
285 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_touch_extension);
289 qt_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);
298 extern const struct wl_interface qt_windowmanager_interface;
300 struct qt_windowmanager_listener {
306 struct qt_windowmanager *qt_windowmanager,
312 struct qt_windowmanager *qt_windowmanager);
316 qt_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
326 qt_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);
332 qt_windowmanager_get_user_data(
struct qt_windowmanager *qt_windowmanager)
334 return WAYLAND_wl_proxy_get_user_data((
struct wl_proxy *) qt_windowmanager);
338 qt_windowmanager_destroy(
struct qt_windowmanager *qt_windowmanager)
340 WAYLAND_wl_proxy_destroy((
struct wl_proxy *) qt_windowmanager);
344 qt_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);