tizen_policy: change the get_visibility to new_visibility
[platform/core/uifw/libds-tizen.git] / include / libds-tizen / policy.h
1 #ifndef LIBDS_TIZEN_POLICY_H
2 #define LIBDS_TIZEN_POLICY_H
3
4 #include <stdint.h>
5 #include <wayland-server.h>
6 #include <libds/surface.h>
7 #include <libds/subsurface.h>
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 struct ds_tizen_policy;
14 struct ds_tizen_policy_surface;
15 struct ds_tizen_policy_visibility;
16 struct ds_tizen_policy_position;
17 struct ds_tizen_policy_subsurface_watcher;
18
19 enum ds_tizen_policy_window_type
20 {
21     DS_TIZEN_POLICY_WINDOW_TYPE_NONE,
22     DS_TIZEN_POLICY_WINDOW_TYPE_TOPLEVEL,
23     DS_TIZEN_POLICY_WINDOW_TYPE_FULLLSCREEN,
24     DS_TIZEN_POLICY_WINDOW_TYPE_MAXIMIZED,
25     DS_TIZEN_POLICY_WINDOW_TYPE_TRANSIENT,
26     DS_TIZEN_POLICY_WINDOW_TYPE_MENU,
27     DS_TIZEN_POLICY_WINDOW_TYPE_DND,
28     DS_TIZEN_POLICY_WINDOW_TYPE_CUSTOM,
29     DS_TIZEN_POLICY_WINDOW_TYPE_NOTIFICATION,
30     DS_TIZEN_POLICY_WINDOW_TYPE_UTILITY,
31     DS_TIZEN_POLICY_WINDOW_TYPE_DIALOG,
32     DS_TIZEN_POLICY_WINDOW_TYPE_DOCK,
33     DS_TIZEN_POLICY_WINDOW_TYPE_SPLASH,
34     DS_TIZEN_POLICY_WINDOW_TYPE_DESKTOP,
35 };
36
37 enum ds_tizen_policy_conformant_part
38 {
39     DS_TIZEN_POLICY_CONFORMANT_PART_UNKNOWN,
40     DS_TIZEN_POLICY_CONFORMANT_PART_INDICATOR,
41     DS_TIZEN_POLICY_CONFORMANT_PART_KEYBOARD,
42     DS_TIZEN_POLICY_CONFORMANT_PART_CLIPBOARD,
43 };
44
45 enum ds_tizen_policy_error_state
46 {
47     DS_TIZEN_POLICY_ERROR_STATE_NONE,
48     DS_TIZEN_POLICY_ERROR_STATE_PERMISSION_DENIED,
49 };
50
51 enum ds_tizen_policy_notification_level
52 {
53     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_1,
54     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_2,
55     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_3,
56     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_NONE,
57     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_DEFAULT,
58     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_MEDIUM,
59     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_HIGH,
60     DS_TIZEN_POLICY_NOTIFICATION_LEVEL_TOP,
61 };
62
63 enum ds_tizen_policy_window_screen_mode
64 {
65     DS_TIZEN_POLICY_WINDOW_SCREEN_MODE_DEFAULT,
66     DS_TIZEN_POLICY_WINDOW_SCREEN_MODE_ALWAYS_ON,
67 };
68
69 enum ds_tizen_policy_stack_mode
70 {
71     DS_TIZEN_POLICY_STACK_MODE_NONE,
72     DS_TIZEN_POLICY_STACK_MODE_ABOVE,
73     DS_TIZEN_POLICY_STACK_MODE_BELOW,
74 };
75
76 enum ds_tizen_policy_visibility_type
77 {
78     DS_TIZEN_POLICY_VISIBILITY_TYPE_UNKNOWN,
79     DS_TIZEN_POLICY_VISIBILITY_TYPE_UNOBSCURED,
80     DS_TIZEN_POLICY_VISIBILITY_TYPE_PARTIALLY_OBSCURED,
81     DS_TIZEN_POLICY_VISIBILITY_TYPE_FULLY_OBSCURED,
82     DS_TIZEN_POLICY_VISIBILITY_TYPE_PRE_UNOBSCURED,
83 };
84
85 // policy event structures
86 struct ds_tizen_event_policy_new_surface
87 {
88     struct ds_tizen_policy *policy;
89     struct ds_tizen_policy_surface *policy_surface;
90 };
91
92 struct ds_tizen_event_policy_activate_below_by_univeral_id
93 {
94     struct ds_tizen_policy *policy;
95     uint32_t universal_id;
96     uint32_t below_universal_id;
97 };
98
99 struct ds_tizen_event_policy_lower_by_universal_id
100 {
101     struct ds_tizen_policy *policy;
102     uint32_t universal_id;
103 };
104
105 struct ds_tizen_event_policy_set_transient_for
106 {
107     struct ds_tizen_policy *policy;
108     uint32_t child_universal_id;
109     uint32_t parent_universal_id;
110 };
111
112 struct ds_tizen_event_policy_unset_transient_for
113 {
114     struct ds_tizen_policy *policy;
115     uint32_t child_universal_id;
116 };
117
118 struct ds_tizen_event_policy_place_subsurface_below_parent
119 {
120     struct ds_tizen_policy *policy;
121     struct ds_subsurface *subsurface;
122 };
123
124 struct ds_tizen_event_policy_set_subsurface_stand_alone
125 {
126     struct ds_tizen_policy *policy;
127     struct ds_subsurface *subsurface;
128 };
129
130 struct ds_tizen_event_policy_set_background_state
131 {
132     struct ds_tizen_policy *policy;
133     int32_t pid;
134 };
135
136 struct ds_tizen_event_policy_unset_background_state
137 {
138     struct ds_tizen_policy *policy;
139     int32_t pid;
140 };
141
142 struct ds_tizen_event_policy_activate_above_by_universal_id
143 {
144     struct ds_tizen_policy *policy;
145     uint32_t universal_id;
146     uint32_t above_universal_id;
147 };
148
149 struct ds_tizen_event_policy_set_appid
150 {
151     struct ds_tizen_policy *policy;
152     int32_t pid;
153     const char *appid;
154 };
155
156 struct ds_tizen_event_policy_set_transient_for_below
157 {
158     struct ds_tizen_policy *policy;
159     uint32_t universal_id;
160     uint32_t parent_universal_id;
161 };
162
163 // policy policy_surface event structures
164 struct ds_tizen_event_policy_surface_new_visibility
165 {
166     struct ds_tizen_policy_surface *policy_surface;
167     struct ds_tizen_policy_visibility *visibility;
168 };
169
170 struct ds_tizen_event_policy_surface_get_position
171 {
172     struct ds_tizen_policy_surface *policy_surface;
173     struct ds_tizen_policy_position *position;
174 };
175
176 struct ds_tizen_event_policy_surface_activate
177 {
178     struct ds_tizen_policy_surface *policy_surface;
179 };
180
181 struct ds_tizen_event_policy_surface_raise
182 {
183     struct ds_tizen_policy_surface *policy_surface;
184 };
185
186 struct ds_tizen_event_policy_surface_lower
187 {
188     struct ds_tizen_policy_surface *policy_surface;
189 };
190
191 struct ds_tizen_event_policy_surface_set_focus_skip
192 {
193     struct ds_tizen_policy_surface *policy_surface;
194 };
195
196 struct ds_tizen_event_policy_surface_unset_focus_skip
197 {
198     struct ds_tizen_policy_surface *policy_surface;
199 };
200
201 struct ds_tizen_event_policy_surface_set_role
202 {
203     struct ds_tizen_policy_surface *policy_surface;
204     const char *role;
205 };
206
207 struct ds_tizen_event_policy_surface_set_window_type
208 {
209     struct ds_tizen_policy_surface *policy_surface;
210     enum ds_tizen_policy_window_type win_type;
211 };
212
213 struct ds_tizen_event_policy_surface_set_conformant
214 {
215     struct ds_tizen_policy_surface *policy_surface;
216 };
217
218 struct ds_tizen_event_policy_surface_unset_conformant
219 {
220     struct ds_tizen_policy_surface *policy_surface;
221 };
222
223 struct ds_tizen_event_policy_surface_get_conformant
224 {
225     struct ds_tizen_policy_surface *policy_surface;
226 };
227
228 struct ds_tizen_event_policy_surface_set_notification_level
229 {
230     struct ds_tizen_policy_surface *policy_surface;
231     enum ds_tizen_policy_notification_level level;
232 };
233
234 struct ds_tizen_event_policy_surface_set_window_screen_mode
235 {
236     struct ds_tizen_policy_surface *policy_surface;
237     enum ds_tizen_policy_window_screen_mode mode;
238 };
239
240 struct ds_tizen_event_policy_surface_get_subsurface
241 {
242     struct ds_tizen_policy_surface *policy_surface;
243     uint32_t parent_universal_id;
244 };
245
246 struct ds_tizen_event_policy_surface_iconify
247 {
248     struct ds_tizen_policy_surface *policy_surface;
249 };
250
251 struct ds_tizen_event_policy_surface_uniconify
252 {
253     struct ds_tizen_policy_surface *policy_surface;
254 };
255
256 struct ds_tizen_event_policy_surface_add_aux_hint
257 {
258     struct ds_tizen_policy_surface *policy_surface;
259     int32_t id;
260     const char *name;
261     const char *value;
262 };
263
264 struct ds_tizen_event_policy_surface_change_aux_hint
265 {
266     struct ds_tizen_policy_surface *policy_surface;
267     int32_t id;
268     const char *value;
269 };
270
271 struct ds_tizen_event_policy_surface_delete_aux_hint
272 {
273     struct ds_tizen_policy_surface *policy_surface;
274     int32_t id;
275 };
276
277 struct ds_tizen_event_policy_surface_get_supported_aux_hints
278 {
279     struct ds_tizen_policy_surface *policy_surface;
280 };
281
282 struct ds_tizen_event_policy_surface_set_floating_mode
283 {
284     struct ds_tizen_policy_surface *policy_surface;
285 };
286
287 struct ds_tizen_event_policy_surface_unset_floating_mode
288 {
289     struct ds_tizen_policy_surface *policy_surface;
290 };
291
292 struct ds_tizen_event_policy_surface_set_stack_mode
293 {
294     struct ds_tizen_policy_surface *policy_surface;
295     enum ds_tizen_policy_stack_mode mode;
296 };
297
298 struct ds_tizen_event_policy_surface_get_subsurface_watcher
299 {
300     struct ds_tizen_policy_surface *policy_surface;
301     struct ds_tizen_policy_subsurface_watcher *subsurface_watcher;
302 };
303
304 struct ds_tizen_event_policy_surface_set_parent
305 {
306     struct ds_tizen_policy_surface *policy_surface;
307     struct ds_surface *parent_surface;
308 };
309
310 struct ds_tizen_event_policy_surface_ack_conformant_region
311 {
312     struct ds_tizen_policy_surface *policy_surface;
313     uint32_t serial;
314 };
315
316 struct ds_tizen_event_policy_surface_set_video
317 {
318     struct ds_tizen_policy_surface *policy_surface;
319     bool video;
320 };
321
322 struct ds_tizen_event_policy_surface_show
323 {
324     struct ds_tizen_policy_surface *policy_surface;
325 };
326
327 struct ds_tizen_event_policy_surface_hide
328 {
329     struct ds_tizen_policy_surface *policy_surface;
330 };
331
332 struct ds_tizen_event_policy_surface_set_parent_with_below
333 {
334     struct ds_tizen_policy_surface *policy_surface;
335     struct ds_surface *parent_surface;
336 };
337
338 // policy policy_surface event structures
339 struct ds_tizen_event_policy_position_set
340 {
341     struct ds_tizen_policy_position *position;
342     int32_t x;
343     int32_t y;
344 };
345
346 struct ds_tizen_policy *
347 ds_tizen_policy_create(struct wl_display *display);
348
349 // add listeners for ds_tizen_policy
350 void
351 ds_tizen_policy_add_destroy_listener(struct ds_tizen_policy *policy,
352         struct wl_listener *listener);
353
354 void
355 ds_tizen_policy_add_new_surface_listener(
356         struct ds_tizen_policy *policy,
357         struct wl_listener *listener);
358
359 void
360 ds_tizen_policy_add_activate_below_by_univeral_id_listener(
361         struct ds_tizen_policy *policy,
362         struct wl_listener *listener);
363
364 void
365 ds_tizen_policy_add_lower_by_universal_id_listener(
366         struct ds_tizen_policy *policy,
367         struct wl_listener *listener);
368
369 void
370 ds_tizen_policy_add_set_transient_for_listener(
371         struct ds_tizen_policy *policy,
372         struct wl_listener *listener);
373
374 void
375 ds_tizen_policy_add_unset_transient_for_listener(
376         struct ds_tizen_policy *policy,
377         struct wl_listener *listener);
378
379 void
380 ds_tizen_policy_add_place_subsurface_below_parent_listener(
381         struct ds_tizen_policy *policy,
382         struct wl_listener *listener);
383
384 void
385 ds_tizen_policy_add_set_subsurface_stand_alone_listener(
386         struct ds_tizen_policy *policy,
387         struct wl_listener *listener);
388
389 void
390 ds_tizen_policy_add_set_background_state_listener(
391         struct ds_tizen_policy *policy,
392         struct wl_listener *listener);
393
394 void
395 ds_tizen_policy_add_unset_background_state_listener(
396         struct ds_tizen_policy *policy,
397         struct wl_listener *listener);
398
399 void
400 ds_tizen_policy_add_activate_above_by_universal_id_listener(
401         struct ds_tizen_policy *policy,
402         struct wl_listener *listener);
403
404 void
405 ds_tizen_policy_add_set_appid_listener(
406         struct ds_tizen_policy *policy,
407         struct wl_listener *listener);
408
409 void
410 ds_tizen_policy_add_set_transient_for_below_listener(
411         struct ds_tizen_policy *policy,
412         struct wl_listener *listener);
413
414 // add listeners for ds_tizen_policy_surface
415 void
416 ds_tizen_policy_surface_add_destroy_listener(
417         struct ds_tizen_policy_surface *policy_surface,
418         struct wl_listener *listener);
419
420 void
421 ds_tizen_policy_surface_add_new_visibility_listener(
422         struct ds_tizen_policy_surface *policy_surface,
423         struct wl_listener *listener);
424
425 void
426 ds_tizen_policy_surface_add_get_position_listener(
427         struct ds_tizen_policy_surface *policy_surface,
428         struct wl_listener *listener);
429
430 void
431 ds_tizen_policy_surface_add_activate_listener(
432         struct ds_tizen_policy_surface *policy_surface,
433         struct wl_listener *listener);
434
435 void
436 ds_tizen_policy_surface_add_raise_listener(
437         struct ds_tizen_policy_surface *policy_surface,
438         struct wl_listener *listener);
439
440 void
441 ds_tizen_policy_surface_add_lower_listener(
442         struct ds_tizen_policy_surface *policy_surface,
443         struct wl_listener *listener);
444
445 void
446 ds_tizen_policy_surface_add_set_focus_skip_listener(
447         struct ds_tizen_policy_surface *policy_surface,
448         struct wl_listener *listener);
449
450 void
451 ds_tizen_policy_surface_add_unset_focus_skip_listener(
452         struct ds_tizen_policy_surface *policy_surface,
453         struct wl_listener *listener);
454
455 void
456 ds_tizen_policy_surface_add_set_role_listener(
457         struct ds_tizen_policy_surface *policy_surface,
458         struct wl_listener *listener);
459
460 void
461 ds_tizen_policy_surface_add_set_window_type_listener(
462         struct ds_tizen_policy_surface *policy_surface,
463         struct wl_listener *listener);
464
465 void
466 ds_tizen_policy_surface_add_set_conformant_listener(
467         struct ds_tizen_policy_surface *policy_surface,
468         struct wl_listener *listener);
469
470 void
471 ds_tizen_policy_surface_add_unset_conformant_listener(
472         struct ds_tizen_policy_surface *policy_surface,
473         struct wl_listener *listener);
474
475 void
476 ds_tizen_policy_surface_add_get_conformant_listener(
477         struct ds_tizen_policy_surface *policy_surface,
478         struct wl_listener *listener);
479
480 void
481 ds_tizen_policy_surface_add_set_notification_level_listener(
482         struct ds_tizen_policy_surface *policy_surface,
483         struct wl_listener *listener);
484
485 void
486 ds_tizen_policy_surface_add_set_window_screen_mode_listener(
487         struct ds_tizen_policy_surface *policy_surface,
488         struct wl_listener *listener);
489
490 void
491 ds_tizen_policy_surface_add_get_subsurface_listener(
492         struct ds_tizen_policy_surface *policy_surface,
493         struct wl_listener *listener);
494
495 void
496 ds_tizen_policy_surface_add_iconify_listener(
497         struct ds_tizen_policy_surface *policy_surface,
498         struct wl_listener *listener);
499
500 void
501 ds_tizen_policy_surface_add_uniconify_listener(
502         struct ds_tizen_policy_surface *policy_surface,
503         struct wl_listener *listener);
504
505 void
506 ds_tizen_policy_surface_add_add_aux_hint_listener(
507         struct ds_tizen_policy_surface *policy_surface,
508         struct wl_listener *listener);
509
510 void
511 ds_tizen_policy_surface_add_change_aux_hint_listener(
512         struct ds_tizen_policy_surface *policy_surface,
513         struct wl_listener *listener);
514
515 void
516 ds_tizen_policy_surface_add_delete_aux_hint_listener(
517         struct ds_tizen_policy_surface *policy_surface,
518         struct wl_listener *listener);
519
520 void
521 ds_tizen_policy_surface_add_get_supported_aux_hints_listener(
522         struct ds_tizen_policy_surface *policy_surface,
523         struct wl_listener *listener);
524
525 void
526 ds_tizen_policy_surface_add_set_floating_mode_listener(
527         struct ds_tizen_policy_surface *policy_surface,
528         struct wl_listener *listener);
529
530 void
531 ds_tizen_policy_surface_add_unset_floating_mode_listener(
532         struct ds_tizen_policy_surface *policy_surface,
533         struct wl_listener *listener);
534
535 void
536 ds_tizen_policy_surface_add_set_stack_mode_listener(
537         struct ds_tizen_policy_surface *policy_surface,
538         struct wl_listener *listener);
539
540 void
541 ds_tizen_policy_surface_add_get_subsurface_watcher_listener(
542         struct ds_tizen_policy_surface *policy_surface,
543         struct wl_listener *listener);
544
545 void
546 ds_tizen_policy_surface_add_set_parent_listener(
547         struct ds_tizen_policy_surface *policy_surface,
548         struct wl_listener *listener);
549
550 void
551 ds_tizen_policy_surface_add_ack_conformant_region_listener(
552         struct ds_tizen_policy_surface *policy_surface,
553         struct wl_listener *listener);
554
555 void
556 ds_tizen_policy_surface_add_set_video_listener(
557         struct ds_tizen_policy_surface *policy_surface,
558         struct wl_listener *listener);
559
560 void
561 ds_tizen_policy_surface_add_show_listener(
562         struct ds_tizen_policy_surface *policy_surface,
563         struct wl_listener *listener);
564
565 void
566 ds_tizen_policy_surface_add_hide_listener(
567         struct ds_tizen_policy_surface *policy_surface,
568         struct wl_listener *listener);
569
570 void
571 ds_tizen_policy_surface_add_set_parent_with_below_listener(
572         struct ds_tizen_policy_surface *policy_surface,
573         struct wl_listener *listener);
574
575 // add listeners for ds_tizen_policy_visibility
576 void
577 ds_tizen_policy_visibility_add_destroy_listener(
578         struct ds_tizen_policy_visibility *visibility,
579         struct wl_listener *listener);
580
581 // add listeners for ds_tizen_policy_position
582 void
583 ds_tizen_policy_position_add_destroy_listener(
584         struct ds_tizen_policy_position *position,
585         struct wl_listener *listener);
586
587 void
588 ds_tizen_policy_position_add_set_listener(
589         struct ds_tizen_policy_position *position,
590         struct wl_listener *listener);
591
592 // add listeners for ds_tizen_policy_subsurface_watcher
593 void
594 ds_tizen_policy_subsurface_watcher_add_destroy_listener(
595         struct ds_tizen_policy_subsurface_watcher *subsurface_watcher,
596         struct wl_listener *listener);
597
598 // policy_surface senders to client
599 void
600 ds_tizen_policy_surface_send_conformant(struct ds_tizen_policy_surface *policy_surface,
601     bool active);
602
603 void
604 ds_tizen_policy_surface_send_conformant_area(struct ds_tizen_policy_surface *policy_surface,
605     enum ds_tizen_policy_conformant_part part, bool visible,
606     int32_t x, int32_t y, int32_t w, int32_t h);
607
608 void
609 ds_tizen_policy_surface_send_notification_done(struct ds_tizen_policy_surface *policy_surface,
610     enum ds_tizen_policy_notification_level level,
611     enum ds_tizen_policy_error_state state);
612
613 void
614 ds_tizen_policy_surface_send_window_screen_mode_done(struct ds_tizen_policy_surface *policy_surface,
615     enum ds_tizen_policy_window_screen_mode mode,
616     enum ds_tizen_policy_error_state state);
617
618 void
619 ds_tizen_policy_surface_send_iconify_state_changed(struct ds_tizen_policy_surface *policy_surface,
620     bool iconified, bool force);
621
622 void
623 ds_tizen_policy_surface_send_supported_aux_hints(struct ds_tizen_policy_surface *policy_surface,
624     struct wl_array *hints, uint32_t force);
625
626 void
627 ds_tizen_policy_surface_send_allowed_aux_hint(struct ds_tizen_policy_surface *policy_surface,
628     int32_t hint_id);
629
630 void
631 ds_tizen_policy_surface_send_aux_message(struct ds_tizen_policy_surface *policy_surface,
632     const char *key, const char *value, struct wl_array *options);
633
634 void
635 ds_tizen_policy_surface_send_conformant_region(struct ds_tizen_policy_surface *policy_surface,
636     enum ds_tizen_policy_conformant_part part, bool visible,
637     int32_t x, int32_t y, int32_t w, int32_t h, uint32_t serial);
638
639 void
640 ds_tizen_policy_surface_send_interactive_move_done(struct ds_tizen_policy_surface *policy_surface,
641     int32_t x, int32_t y, uint32_t w, uint32_t h);
642
643 void
644 ds_tizen_policy_surface_send_interactive_resize_done(struct ds_tizen_policy_surface *policy_surface,
645     int32_t x, int32_t y, uint32_t w, uint32_t h);
646
647 // visibility senders to client
648 void
649 ds_tizen_policy_visibility_send_notify(
650     struct ds_tizen_policy_visibility *visibility,
651     enum ds_tizen_policy_visibility_type type);
652
653 void
654 ds_tizen_policy_visibility_send_changed(
655     struct ds_tizen_policy_visibility *visibility,
656     enum ds_tizen_policy_visibility_type type, uint32_t option);
657
658 // position senders to client
659 void
660 ds_tizen_policy_position_send_changed(
661     struct ds_tizen_policy_position *position, int32_t x, int32_t y);
662
663 // getters for ds_tizen_policy_surface
664 struct ds_surface *
665 ds_tizen_policy_surface_get_surface(struct ds_tizen_policy_surface *policy_surface);
666
667 bool
668 ds_tizen_policy_surface_get_conformant(struct ds_tizen_policy_surface *policy_surface);
669
670 int32_t
671 ds_tizen_policy_surface_get_opaque_state(struct ds_tizen_policy_surface *policy_surface);
672
673 bool
674 ds_tizen_policy_surface_get_iconified(struct ds_tizen_policy_surface *policy_surface);
675
676 bool
677 ds_tizen_policy_surface_get_floating_mode(struct ds_tizen_policy_surface *policy_surface);
678
679 enum ds_tizen_policy_stack_mode
680 ds_tizen_policy_surface_get_stack_mode(struct ds_tizen_policy_surface *policy_surface);
681
682 #ifdef __cplusplus
683 }
684 #endif
685
686 #endif