[3.0] Add key grab/ungrab interfaces for Tizen (X11/Wayland)
[platform/core/uifw/dali-adaptor.git] / adaptors / ecore / wayland / tizen-policy-client-protocol.h
1 #ifndef TIZEN_POLICY_CLIENT_PROTOCOL_H
2 #define TIZEN_POLICY_CLIENT_PROTOCOL_H
3
4 #ifdef  __cplusplus
5 extern "C" {
6 #endif
7
8 #include <stdint.h>
9 #include <stddef.h>
10 #include "wayland-client.h"
11
12 struct wl_client;
13 struct wl_resource;
14
15 struct tizen_policy;
16 struct tizen_visibility;
17 struct wl_surface;
18
19 extern const struct wl_interface tizen_policy_interface;
20 extern const struct wl_interface tizen_visibility_interface;
21 extern const struct wl_interface wl_surface_interface;
22
23 #define TIZEN_POLICY_GET_VISIBILITY     0
24 #define TIZEN_POLICY_ACTIVATE   1
25 #define TIZEN_POLICY_POSITION_SET       2
26 #define TIZEN_POLICY_FOCUS_SKIP_SET     3
27 #define TIZEN_POLICY_FOCUS_SKIP_UNSET   4
28
29 static inline void
30 tizen_policy_set_user_data(struct tizen_policy *tizen_policy, void *user_data)
31 {
32         wl_proxy_set_user_data((struct wl_proxy *) tizen_policy, user_data);
33 }
34
35 static inline void *
36 tizen_policy_get_user_data(struct tizen_policy *tizen_policy)
37 {
38         return wl_proxy_get_user_data((struct wl_proxy *) tizen_policy);
39 }
40
41 static inline void
42 tizen_policy_destroy(struct tizen_policy *tizen_policy)
43 {
44         wl_proxy_destroy((struct wl_proxy *) tizen_policy);
45 }
46
47 static inline struct tizen_visibility *
48 tizen_policy_get_visibility(struct tizen_policy *tizen_policy, struct wl_surface *surface)
49 {
50         struct wl_proxy *id;
51
52         id = wl_proxy_marshal_constructor((struct wl_proxy *) tizen_policy,
53                          TIZEN_POLICY_GET_VISIBILITY, &tizen_visibility_interface, NULL, surface);
54
55         return (struct tizen_visibility *) id;
56 }
57
58 static inline void
59 tizen_policy_activate(struct tizen_policy *tizen_policy, struct wl_surface *surface)
60 {
61         wl_proxy_marshal((struct wl_proxy *) tizen_policy,
62                          TIZEN_POLICY_ACTIVATE, surface);
63 }
64
65 static inline void
66 tizen_policy_position_set(struct tizen_policy *tizen_policy, struct wl_surface *surface, int32_t x, int32_t y)
67 {
68         wl_proxy_marshal((struct wl_proxy *) tizen_policy,
69                          TIZEN_POLICY_POSITION_SET, surface, x, y);
70 }
71
72 static inline void
73 tizen_policy_focus_skip_set(struct tizen_policy *tizen_policy, struct wl_surface *surface)
74 {
75         wl_proxy_marshal((struct wl_proxy *) tizen_policy,
76                          TIZEN_POLICY_FOCUS_SKIP_SET, surface);
77 }
78
79 static inline void
80 tizen_policy_focus_skip_unset(struct tizen_policy *tizen_policy, struct wl_surface *surface)
81 {
82         wl_proxy_marshal((struct wl_proxy *) tizen_policy,
83                          TIZEN_POLICY_FOCUS_SKIP_UNSET, surface);
84 }
85
86 #ifndef TIZEN_VISIBILITY_VISIBILITY_ENUM
87 #define TIZEN_VISIBILITY_VISIBILITY_ENUM
88 enum tizen_visibility_visibility {
89         TIZEN_VISIBILITY_VISIBILITY_UNOBSCURED = 0,
90         TIZEN_VISIBILITY_VISIBILITY_PARTIALLY_OBSCURED = 1,
91         TIZEN_VISIBILITY_VISIBILITY_FULLY_OBSCURED = 2,
92 };
93 #endif /* TIZEN_VISIBILITY_VISIBILITY_ENUM */
94
95 struct tizen_visibility_listener {
96         /**
97          * notify - (none)
98          * @visibility: (none)
99          */
100         void (*notify)(void *data,
101                        struct tizen_visibility *tizen_visibility,
102                        uint32_t visibility);
103 };
104
105 static inline int
106 tizen_visibility_add_listener(struct tizen_visibility *tizen_visibility,
107                               const struct tizen_visibility_listener *listener, void *data)
108 {
109         return wl_proxy_add_listener((struct wl_proxy *) tizen_visibility,
110                                      (void (**)(void)) listener, data);
111 }
112
113 #define TIZEN_VISIBILITY_DESTROY        0
114
115 static inline void
116 tizen_visibility_set_user_data(struct tizen_visibility *tizen_visibility, void *user_data)
117 {
118         wl_proxy_set_user_data((struct wl_proxy *) tizen_visibility, user_data);
119 }
120
121 static inline void *
122 tizen_visibility_get_user_data(struct tizen_visibility *tizen_visibility)
123 {
124         return wl_proxy_get_user_data((struct wl_proxy *) tizen_visibility);
125 }
126
127 static inline void
128 tizen_visibility_destroy(struct tizen_visibility *tizen_visibility)
129 {
130         wl_proxy_marshal((struct wl_proxy *) tizen_visibility,
131                          TIZEN_VISIBILITY_DESTROY);
132
133         wl_proxy_destroy((struct wl_proxy *) tizen_visibility);
134 }
135
136 #ifdef  __cplusplus
137 }
138 #endif
139
140 #endif