tizen_policy: add new request - snap_window
[platform/core/uifw/wayland-extension.git] / protocol / tizen / tizen-extension.xml
1 <protocol name="tizen_extension">
2   <interface name="tizen_surface" version="1">
3     <request name="get_tizen_resource">
4       <arg name="id" type="new_id" interface="tizen_resource" />
5       <arg name="surface" type="object" interface="wl_surface" />
6     </request>
7     <request name="destroy" type="destructor">
8       <description summary="destroy the tizen_surface">
9         Destroy the tizen_surface.
10       </description>
11     </request>
12   </interface>
13
14   <interface name="tizen_resource" version="1">
15     <request name="destroy" type="destructor" />
16
17     <event name="resource_id">
18       <arg name="id" type="uint" />
19     </event>
20   </interface>
21
22   <interface name="tizen_policy" version="12">
23     <request name="get_visibility">
24       <arg name="id" type="new_id" interface="tizen_visibility" summary="new visibility object"/>
25       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
26     </request>
27
28     <request name="get_position">
29       <arg name="id" type="new_id" interface="tizen_position" summary="new position object"/>
30       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
31     </request>
32
33     <request name="activate">
34       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
35     </request>
36
37     <request name="activate_below_by_res_id">
38       <arg name="res_id" type="uint" />
39       <arg name="below_res_id" type="uint" />
40     </request>
41
42     <request name="raise">
43       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
44     </request>
45
46     <request name="lower">
47       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
48     </request>
49
50     <request name="lower_by_res_id">
51       <arg name="res_id" type="uint" />
52     </request>
53
54     <request name="set_focus_skip">
55       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
56     </request>
57
58     <request name="unset_focus_skip">
59       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
60     </request>
61
62     <request name="set_role">
63       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
64       <arg name="role" type="string"/>
65     </request>
66
67     <enum name="win_type">
68       <entry name="none" value="0"/>
69       <entry name="toplevel" value="1"/>
70       <entry name="fullscreen" value="2"/>
71       <entry name="maximized" value="3"/>
72       <entry name="transient" value="4"/>
73       <entry name="menu" value="5"/>
74       <entry name="dnd" value="6"/>
75       <entry name="custom" value="7"/>
76       <entry name="notification" value="8"/>
77       <entry name="utility" value="9"/>
78       <entry name="dialog" value="10"/>
79       <entry name="dock" value="11"/>
80       <entry name="splash" value="12"/>
81       <entry name="desktop" value="13" since="11"/>
82     </enum>
83
84     <request name="set_type">
85       <arg name="surface" type="object" interface="wl_surface"/>
86       <arg name="win_type" type="uint" />
87     </request>
88
89     <!-- for conformant -->
90     <request name="set_conformant">
91       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
92     </request>
93
94     <request name="unset_conformant">
95       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
96     </request>
97
98     <request name="get_conformant">
99       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
100     </request>
101
102     <event name="conformant">
103       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
104       <arg name="is_conformant" type="uint"/>
105     </event>
106
107     <enum name="conformant_part">
108       <entry name="indicator" value="0"/>
109       <entry name="keyboard" value="1"/>
110       <entry name="clipboard" value="2"/>
111     </enum>
112
113     <event name="conformant_area">
114        <description summary="Notify of conformant area">
115           Notify of conformant area to client. Sending this event does NOT guarantee
116           perfect compositing of conformant owner client surface and
117           conformant part client surface.
118       </description>
119       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
120       <arg name="conformant_part" type="uint"/>
121       <arg name="state" type="uint"/>
122       <arg name="x" type="int"/>
123       <arg name="y" type="int"/>
124       <arg name="w" type="int"/>
125       <arg name="h" type="int"/>
126     </event>
127
128     <enum name="error_state">
129       <entry name="none" value="0"/>
130       <entry name="permission_denied" value="1"/>
131     </enum>
132
133     <!-- for notification -->
134     <enum name="level">
135       <entry name="1" value="0"/>
136       <entry name="2" value="1"/>
137       <entry name="3" value="2"/>
138       <entry name="none" value="-1"/>
139       <entry name="default" value="10"/>
140       <entry name="medium" value="20"/>
141       <entry name="high" value="30"/>
142       <entry name="top" value="40"/>
143     </enum>
144
145     <request name="set_notification_level">
146       <arg name="surface" type="object" interface="wl_surface"/>
147       <arg name="level" type="int"/>
148     </request>
149
150     <event name="notification_done">
151       <arg name="surface" type="object" interface="wl_surface"/>
152       <arg name="level" type="int"/>
153       <arg name="error_state" type="uint"/>
154     </event>
155
156     <!-- for transient_for -->
157     <request name="set_transient_for">
158       <arg name="child_id" type="uint" />
159       <arg name="parent_id" type="uint" />
160     </request>
161
162     <request name="unset_transient_for">
163       <arg name="child_id" type="uint" />
164     </request>
165
166     <event name="transient_for_done">
167       <arg name="child_id" type="uint"/>
168     </event>
169
170     <!-- for window_screen_mode -->
171     <enum name="mode">
172       <entry name="default" value="0"/>
173       <entry name="always_on" value="1"/>
174     </enum>
175
176     <request name="set_window_screen_mode">
177       <arg name="surface" type="object" interface="wl_surface"/>
178       <arg name="mode" type="uint"/>
179     </request>
180
181     <event name="window_screen_mode_done">
182       <arg name="surface" type="object" interface="wl_surface"/>
183       <arg name="mode" type="uint"/>
184       <arg name="error_state" type="uint"/>
185     </event>
186
187     <!-- for subsurface -->
188     <request name="place_subsurface_below_parent">
189       <arg name="subsurface" type="object" interface="wl_subsurface"/>
190     </request>
191
192     <request name="set_subsurface_stand_alone">
193       <arg name="subsurface" type="object" interface="wl_subsurface"/>
194     </request>
195
196     <request name="get_subsurface">
197       <arg name="id" type="new_id" interface="wl_subsurface" />
198       <arg name="surface" type="object" interface="wl_surface" />
199       <arg name="parent_id" type="uint" />
200     </request>
201
202     <!-- for opaque_state -->
203     <request name="set_opaque_state">
204       <arg name="surface" type="object" interface="wl_surface" />
205       <arg name="state" type="int"/>
206     </request>
207
208     <!-- for iconify -->
209     <request name="iconify">
210       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
211     </request>
212     <request name="uniconify">
213       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
214     </request>
215
216     <event name="iconify_state_changed">
217       <arg name="surface" type="object" interface="wl_surface"/>
218       <arg name="iconified" type="uint"/>
219       <arg name="force" type="uint"/>
220     </event>
221
222     <!-- for aux_hint -->
223     <request name="add_aux_hint">
224       <arg name="surface" type="object" interface="wl_surface"/>
225       <arg name="id" type="int" />
226       <arg name="name" type="string" />
227       <arg name="value" type="string" />
228     </request>
229
230     <request name="change_aux_hint">
231       <arg name="surface" type="object" interface="wl_surface"/>
232       <arg name="id" type="int" />
233       <arg name="value" type="string" />
234     </request>
235
236     <request name="del_aux_hint">
237       <arg name="surface" type="object" interface="wl_surface"/>
238       <arg name="id" type="int" />
239     </request>
240
241     <request name="get_supported_aux_hints">
242       <arg name="surface" type="object" interface="wl_surface"/>
243     </request>
244
245     <event name="supported_aux_hints">
246       <arg name="surface" type="object" interface="wl_surface"/>
247       <arg name="hints" type="array" />
248       <arg name="num_hints" type="uint"/>
249     </event>
250
251     <event name="allowed_aux_hint">
252       <arg name="surface" type="object" interface="wl_surface"/>
253       <arg name="id" type="int" />
254     </event>
255
256     <!-- for aux_message -->
257     <event name="aux_message">
258       <arg name="surface" type="object" interface="wl_surface" />
259       <arg name="key" type="string" />
260       <arg name="value" type="string" />
261       <arg name="options" type="array" />
262     </event>
263
264     <!-- for background state -->
265     <request name="set_background_state">
266        <arg name="pid" type="uint" />
267     </request>
268
269     <request name="unset_background_state">
270        <arg name="pid" type="uint" />
271     </request>
272
273     <!-- for floating mode -->
274     <request name="set_floating_mode">
275       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
276     </request>
277
278     <request name="unset_floating_mode">
279       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
280     </request>
281
282     <!-- for stack mode -->
283     <enum name="stack_mode">
284       <entry name="none" value="0"/>
285       <entry name="above" value="1"/>
286       <entry name="below" value="2"/>
287     </enum>
288
289     <request name="set_stack_mode">
290       <arg name="surface" type="object" interface="wl_surface"/>
291       <arg name="mode" type="uint" />
292     </request>
293
294     <request name="activate_above_by_res_id">
295       <arg name="res_id" type="uint" />
296       <arg name="above_res_id" type="uint" />
297     </request>
298
299     <!-- version 2 additions -->
300     <!-- for subsurface watcher -->
301     <request name="get_subsurface_watcher" since="2">
302       <arg name="id" type="new_id" interface="tizen_subsurface_watcher" />
303       <arg name="surface" type="object" interface="wl_surface" />
304     </request>
305
306     <!-- version 3 additions -->
307     <request name="set_parent" since="3">
308       <arg name="child" type="object" interface="wl_surface" />
309       <arg name="parent" type="object" interface="wl_surface" />
310     </request>
311
312     <!-- version 4 additions -->
313     <!-- for conformant -->
314     <event name="conformant_region" since="4">
315       <description summary="notify of geometry values of conformant region(area)">
316          The server can notify of conformant region(area) using this event.
317          If client is received this event, client should ack for it using
318          tizen_policy@ack_conformant_region request.
319       </description>
320       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
321       <arg name="conformant_part" type="uint"/>
322       <arg name="state" type="uint"/>
323       <arg name="x" type="int"/>
324       <arg name="y" type="int"/>
325       <arg name="w" type="int"/>
326       <arg name="h" type="int"/>
327       <arg name="serial" type="uint"/>
328     </event>
329
330     <request name="ack_conformant_region" since="4">
331       <description summary="ack for tizen_policy@conformant_region">
332          A client can refresh its surface for applying new conformant region which
333          is from tizen_policy@conformant_region event. The client has to ack
334          after complete of its updates by this request.
335       </description>
336       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
337       <arg name="serial" type="uint"/>
338     </request>
339
340     <request name="destroy" type="destructor" since="6">
341       <description summary="destroy the tizen_policy">
342         Destroy the tizen_policy.
343       </description>
344     </request>
345
346     <request name="has_video" since="7">
347       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
348       <arg name="has" type="uint"/>
349     </request>
350
351     <request name="set_appid" since="7">
352        <arg name="pid" type="int" />
353        <arg name="appid" type="string" />
354     </request>
355
356     <request name="show" since="8">
357       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
358     </request>
359
360     <request name="hide" since="8">
361       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
362     </request>
363
364     <request name="set_transient_for_below" since="9">
365       <description summary="set transient_for and place under the transient_for parent">
366          This makes a relationship between parent and child. A child is always placed under a parent.
367       </description>
368       <arg name="child_id" type="uint" />
369       <arg name="parent_id" type="uint" />
370     </request>
371
372     <request name="set_parent_with_below" since="9">
373       <description summary="set parent and place under the parent">
374          This makes a relationship between parent and child. A child is always placed under a parent.
375          Setting a null parent for a child window removes any parent-child relationship for the child.
376       </description>
377       <arg name="child" type="object" interface="wl_surface" />
378       <arg name="parent" type="object" interface="wl_surface" allow-null="true"/>
379     </request>
380
381     <event name="interactive_move_done" since="10">
382       <description summary="interactive move is done">
383          This event is sent when the display server finishes interactive moving the window.
384          The changed geometry of the window is sent together.
385       </description>
386       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
387       <arg name="x" type="int" summary="x-position after move"/>
388       <arg name="y" type="int" summary="y-position after move"/>
389       <arg name="w" type="uint" summary="width after move"/>
390       <arg name="h" type="uint" summary="height after move"/>
391     </event>
392
393     <event name="interactive_resize_done" since="10">
394       <description summary="interactive resize is done">
395          This event is sent when the display server finishes interactive resizing the window.
396          The changed geometry of the window is sent together.
397       </description>
398       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
399       <arg name="x" type="int" summary="x-position after resize"/>
400       <arg name="y" type="int" summary="y-position after resize"/>
401       <arg name="w" type="uint" summary="width after resize"/>
402       <arg name="h" type="uint" summary="height after resize"/>
403     </event>
404
405     <!-- for snap type -->
406     <enum name="snap_type">
407       <entry name="left" value="0" summary="the left side of the screen"/>
408       <entry name="right" value="1" summary="the right side of the screen"/>
409       <entry name="top" value="2" summary="the top of the screen"/>
410       <entry name="bottom" value="3" summary="the bottom of the screen"/>
411     </enum>
412
413     <request name="snap_window" since="12">
414       <description summary="snap window">
415          Snap the window to the location (such as the side of the screen) where you want it to be.
416       </description>
417       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
418       <arg name="type" type="uint"/>
419     </request>
420   </interface>
421
422   <interface name="tizen_visibility" version="5">
423     <request name="destroy" type="destructor"/>
424
425     <enum name="visibility">
426       <entry name="unobscured" value="0"/>
427       <entry name="partially_obscured" value="1"/>
428       <entry name="fully_obscured" value="2"/>
429       <entry name="pre_unobscured" value="3" since="5"/>
430     </enum>
431
432     <event name="notify">
433       <arg name="visibility" type="uint"/>
434     </event>
435
436     <!-- Version 6 additions -->
437
438     <event name="changed" since="5">
439       <arg name="type" type="uint" enum="visibility" summary="changed visibility type"/>
440       <arg name="option" type="uint" summary="extra value"/>
441     </event>
442
443   </interface>
444
445   <interface name="tizen_position" version="1">
446     <request name="destroy" type="destructor"/>
447
448     <request name="set">
449       <arg name="x" type="int"/>
450       <arg name="y" type="int"/>
451     </request>
452
453     <event name="changed">
454       <arg name="x" type="int"/>
455       <arg name="y" type="int"/>
456     </event>
457   </interface>
458
459   <interface name="tizen_move_resize" version="1">
460     <request name="destroy" type="destructor"/>
461
462     <request name="set_geometry">
463       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
464       <arg name="serial" type="uint" />
465       <arg name="x" type="int"/>
466       <arg name="y" type="int"/>
467       <arg name="w" type="int"/>
468       <arg name="h" type="int"/>
469     </request>
470
471     <enum name="error_state">
472       <entry name="none" value="0"/>
473       <entry name="invalid_buffer" value="1"/>
474       <entry name="not_supported" value="2"/>
475     </enum>
476
477     <event name="geometry_done">
478       <description summary="Notify of set_geometry request result">
479       </description>
480       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
481       <arg name="serial" type="uint" />
482       <arg name="x" type="int"/>
483       <arg name="y" type="int"/>
484       <arg name="w" type="int"/>
485       <arg name="h" type="int"/>
486       <arg name="error_state" type="uint" enum="error_state"/>
487     </event>
488   </interface>
489
490   <interface name="tizen_gesture" version="2">
491     <enum name="error">
492       <entry name="none" value="0"/>
493       <entry name="invalid_data" value="1"/>
494       <entry name="no_permission" value="2"/>
495       <entry name="no_system_resources" value="3"/>
496       <entry name="grabbed_already" value="4"/>
497       <entry name="not_supported" value="5"/>
498     </enum>
499
500     <enum name="type">
501       <entry name="edge_swipe" value="1"/>
502       <entry name="edge_drag" value="2" since="2"/>
503       <entry name="tap" value="4" since="2"/>
504       <entry name="palm_cover" value="8" since="2"/>
505       <entry name="pan" value="16" since="2"/>
506       <entry name="pinch" value="32" since="2"/>
507       <entry name="palm_swipe" value="64" since="2"/>
508     </enum>
509
510     <enum name="mode">
511       <entry name="begin" value="1"/>
512       <entry name="update" value="2"/>
513       <entry name="end" value="3"/>
514       <entry name="done" value="4"/>
515     </enum>
516
517     <enum name="edge">
518       <entry name="top" value="1"/>
519       <entry name="right" value="2"/>
520       <entry name="bottom" value="3"/>
521       <entry name="left" value="4"/>
522     </enum>
523
524     <enum name="edge_size">
525       <entry name="none" value="0"/>
526       <entry name="full" value="1"/>
527       <entry name="partial" value="2"/>
528     </enum>
529
530     <request name="grab_edge_swipe">
531       <arg name="fingers" type="uint"/>
532       <arg name="edge" type="uint" enum="edge"/>
533       <arg name="edge_size" type="uint" enum="edge_size"/>
534       <arg name="start_point" type="uint"/>
535       <arg name="end_point" type="uint"/>
536     </request>
537
538     <request name="ungrab_edge_swipe">
539       <arg name="fingers" type="uint"/>
540       <arg name="edge" type="uint" enum="edge"/>
541       <arg name="edge_size" type="uint" enum="edge_size"/>
542       <arg name="start_point" type="uint"/>
543       <arg name="end_point" type="uint"/>
544     </request>
545
546     <event name="grab_edge_swipe_notify">
547       <arg name="fingers" type="uint"/>
548       <arg name="edge" type="uint" enum="edge"/>
549       <arg name="edge_size" type="uint" enum="edge_size"/>
550       <arg name="start_point" type="uint"/>
551       <arg name="end_point" type="uint"/>
552       <arg name="error" type="uint"/>
553     </event>
554
555     <event name="edge_swipe">
556       <arg name="mode" type="uint" enum="mode"/>
557       <arg name="fingers" type="uint"/>
558       <arg name="sx" type="int" summary="x coordinate of touch down point"/>
559       <arg name="sy" type="int" summary="y coordinate of touch down point"/>
560       <arg name="edge" type="uint" enum="edge"/>
561     </event>
562
563     <request name="grab_edge_drag">
564       <arg name="fingers" type="uint"/>
565       <arg name="edge" type="uint" enum="edge"/>
566       <arg name="edge_size" type="uint" enum="edge_size"/>
567       <arg name="start_point" type="uint"/>
568       <arg name="end_point" type="uint"/>
569     </request>
570
571     <request name="ungrab_edge_drag">
572       <arg name="fingers" type="uint"/>
573       <arg name="edge" type="uint" enum="edge"/>
574       <arg name="edge_size" type="uint" enum="edge_size"/>
575       <arg name="start_point" type="uint"/>
576       <arg name="end_point" type="uint"/>
577     </request>
578
579     <event name="edge_drag_notify">
580       <arg name="fingers" type="uint"/>
581       <arg name="edge" type="uint" enum="edge"/>
582       <arg name="edge_size" type="uint" enum="edge_size"/>
583       <arg name="start_point" type="uint"/>
584       <arg name="end_point" type="uint"/>
585       <arg name="error" type="uint"/>
586     </event>
587
588     <event name="edge_drag">
589       <arg name="mode" type="uint" enum="mode"/>
590       <arg name="fingers" type="uint"/>
591       <arg name="cx" type="int" summary="x coordinate of center touch point"/>
592       <arg name="cy" type="int" summary="y coordinate of center touch point"/>
593       <arg name="edge" type="uint" enum="edge"/>
594     </event>
595
596     <request name="grab_tap" since="2">
597       <arg name="fingers" type="uint"/>
598       <arg name="repeats" type="uint"/>
599     </request>
600
601     <request name="ungrab_tap" since="2">
602       <arg name="fingers" type="uint"/>
603       <arg name="repeats" type="uint"/>
604     </request>
605
606     <event name="tap_notify" since="2">
607       <arg name="fingers" type="uint"/>
608       <arg name="repeats" type="uint"/>
609       <arg name="error" type="uint"/>
610     </event>
611
612     <event name="tap" since="2">
613       <arg name="mode" type="uint" enum="mode"/>
614       <arg name="fingers" type="uint"/>
615       <arg name="repeats" type="uint"/>
616     </event>
617
618     <request name="grab_palm_cover" since="2">
619     </request>
620
621     <request name="ungrab_palm_cover" since="2">
622     </request>
623
624     <request name="select_palm_cover" since="2">
625       <arg name="surface" type="object" interface="wl_surface"/>
626     </request>
627
628     <request name="deselect_palm_cover" since="2">
629       <arg name="surface" type="object" interface="wl_surface"/>
630     </request>
631
632     <event name="palm_cover_notify" since="2">
633       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
634       <arg name="error" type="uint"/>
635     </event>
636
637     <event name="palm_cover" since="2">
638       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
639       <arg name="mode" type="uint" enum="mode"/>
640       <arg name="duration" type="uint"/>
641       <arg name="cx" type="int" summary="x coordinate of center touch point"/>
642       <arg name="cy" type="int" summary="y coordinate of center touch point"/>
643       <arg name="size" type="uint"/>
644       <arg name="pressure" type="fixed"/>
645     </event>
646
647     <request name="activate_set" since="2">
648       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
649       <arg name="type" type="uint" enum="type"/>
650       <arg name="active" type="uint"/>
651     </request>
652
653     <event name="activate_notify" since="2">
654       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
655       <arg name="type" type="uint" enum="type"/>
656       <arg name="active" type="uint"/>
657       <arg name="error" type="uint"/>
658     </event>
659
660     <request name="destroy" type="destructor" since="2">
661       <description summary="destroy the tizen_gesture">
662         Destroy the tizen_gesture.
663       </description>
664     </request>
665
666   </interface>
667
668   <interface name="tizen_keyrouter" version="2">
669     <description summary="an interface to set each focus for each key">
670       In tradition, all the keys in a keyboard and a device on which
671       some keys are attached will be sent to focus surface by default.
672       Currently it's possible to set up each focus for each key in a keyboard and a device.
673       Therefore, by setting a key grab for a surface, the owner of the
674       surface will get the key event when it has the key grab for the key.
675     </description>
676
677     <enum name="error">
678       <entry name="none" value="0" summary="no error"/>
679       <entry name="invalid_surface" value="1" summary="Given surface is invalid."/>
680       <entry name="invalid_key" value="2" summary="Given key is invalid."/>
681       <entry name="invalid_mode" value="3" summary="Given mode is invalid."/>
682       <entry name="grabbed_already" value="4" summary="The key has been grabbed already."/>
683       <entry name="no_permission" value="5" summary="The wl client has no permission to grab the key."/>
684       <entry name="no_system_resources" value="6" summary="System resources are insufficient."/>
685       <entry name="invalid_array" value="7" summary="Given array has invalid pairs or data type."/>
686     </enum>
687
688     <enum name="mode">
689       <description summary="mode for a key grab">
690         This value is used to set a mode for a key grab. With this mode and
691         the order of the surface between surfaces' stack, the compositor will determine the destination client
692         surface.
693       </description>
694       <entry name="none" value="0" summary="none"/>
695       <entry name="shared" value="1"
696        summary="mode to get a key grab with the other client surfaces when the focused client surface gets the key"/>
697       <entry name="topmost" value="2"
698        summary="mode to get a key grab when the client surface is the top most surface"/>
699       <entry name="overridable_exclusive" value="3"
700        summary="mode to get a key grab exclusively, overridably regardless of the order in the surface stack"/>
701       <entry name="exclusive" value="4"
702        summary="mode to get a key grab exclusively regardless of the order in surface stack"/>
703       <entry name="registered" value="5"
704        summary="mode to get a key grab only when a requesting surface is on top among the registering surfaces for the key"/>
705     </enum>
706
707     <enum name="config_mode">
708       <description summary="mode for setting specific property for Key delivery">
709         This value is used to set a mode for a window. With this mode and
710         the order of the surface between surfaces' stack, the compositor will determine the destination client
711         surface.
712       </description>
713       <entry name="none" value="0" summary="none"/>
714       <entry name="invisible_set" value="1"
715        summary="mode to set window to enable send event to invisible window below in stack"/>
716       <entry name="invisible_get" value="2"
717        summary="mode to set window to get event to invisible state if any top window has set register_set"/>
718       <entry name="num_key_focus" value="3"
719           summary="mode to register for num keys for focus window"/>
720       <entry name="picture_off" value="4"
721           summary="mode to set picture off for particular key"/>
722     </enum>
723
724     <request name="set_keygrab">
725       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
726       <arg name="key" type="uint"/>
727       <arg name="mode" type="uint"/>
728     </request>
729
730     <request name="unset_keygrab">
731       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
732       <arg name="key" type="uint"/>
733     </request>
734
735     <request name="get_keygrab_status">
736       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
737       <arg name="key" type="uint"/>
738     </request>
739
740     <request name="set_keygrab_list">
741       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
742       <arg name="grab_list" type="array" summary="array of two integer variables pairs each pairs consist of keycode and keygrab mode"/>
743     </request>
744
745     <request name="unset_keygrab_list">
746       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
747       <arg name="ungrab_list" type="array" summary="array of integer variables meaning keycode wanted to ungrab"/>
748     </request>
749
750     <request name="get_keygrab_list">
751       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
752     </request>
753
754     <request name="set_register_none_key">
755       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
756       <arg name="data" type="uint"/>
757     </request>
758
759     <request name="get_keyregister_status">
760       <arg name="data" type="uint"/>
761     </request>
762
763     <request name="set_input_config">
764       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
765       <arg name="config_mode" type="uint"/>
766       <arg name="value" type="uint"/>
767     </request>
768
769     <event name="keygrab_notify">
770       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
771       <arg name="key" type="uint"/>
772       <arg name="mode" type="uint"/>
773       <arg name="error" type="uint"/>
774     </event>
775
776     <event name="keygrab_notify_list">
777       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
778       <arg name="grab_result" type="array" summary="array of three integer variables pairs each pairs consist of keycode, keygrab mode and keygrab result"/>
779     </event>
780
781     <event name="getgrab_notify_list">
782       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
783       <arg name="grab_result" type="array" summary="array of two integer variables pairs each pairs consist of keycode, keygrab mode"/>
784     </event>
785
786     <event name="set_register_none_key_notify">
787       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
788       <arg name="mode" type="uint"/>
789     </event>
790
791     <event name="keyregister_notify">
792       <arg name="status" type="uint"/>
793     </event>
794
795     <event name="set_input_config_notify">
796       <arg name="status" type="uint"/>
797     </event>
798
799     <event name="key_cancel">
800       <arg name="key" type="uint"/>
801     </event>
802
803     <request name="destroy" type="destructor">
804       <description summary="destroy the tizen_keyrouter">
805         Destroy the tizen_keyrouter.
806       </description>
807     </request>
808     <event name="event_surface" since="2">
809       <arg name="surface" type="object" interface="wl_surface"/>
810       <arg name="key" type="uint"/>
811       <arg name="mode" type="uint"/>
812     </event>
813   </interface>
814
815   <interface name="tizen_screenshooter" version="3">
816     <description summary="interface for tizen-screenshooter">
817       Clients can get a screenmirror object from this interface.
818     </description>
819
820     <request name="get_screenmirror">
821       <description summary="create a screenmirror object">
822         Before using screenmirror, a client should get a screenmirror object from display
823         server.
824       </description>
825       <arg name="id" type="new_id" interface="tizen_screenmirror" summary="new screenmirror object"/>
826       <arg name="output" type="object" interface="wl_output" summary="output object for screenmirror"/>
827     </request>
828
829     <request name="set_oneshot_auto_rotation">
830       <description summary="set screen shot auto rotation value">
831         Client can set auto rotation value for one shot.
832       </description>
833       <arg name="set" type="uint"/>
834     </request>
835
836     <event name="format">
837       <description summary="supported format for screenshooter">
838         The tbm format codes match the #defines in tbm_surface.h. The formats actually
839         supported by the compositor will be reported by the format event.
840       </description>
841       <arg name="format" type="uint"/>
842     </event>
843
844     <event name="screenshooter_notify">
845       <description summary="send notification of screenshooter">
846         Clients can get notification of screenshooter.
847       </description>
848       <arg name="noti" type="uint"/>
849     </event>
850
851     <request name="destroy" type="destructor">
852       <description summary="destroy the tizen_screenshooter">
853         Destroy the tizen_screenshooter.
854       </description>
855     </request>
856
857     <request name="shoot" since="3">
858       <arg name="output" type="object" interface="wl_output"/>
859       <arg name="buffer" type="object" interface="wl_buffer"/>
860     </request>
861
862     <event name="done" since="3">
863     </event>
864
865   </interface>
866
867   <interface name="tizen_screenmirror" version="3">
868     <description summary="interface for screenmirror">
869       A client can use this interface to get stream images of screen. Before starting,
870       queue all buffers. Then, start a screenmirror. After starting, a dequeued event
871       will occur when drawing a captured image on a buffer is finished. You might
872       need to queue the dequeued buffer again to get a new image from display server.
873     </description>
874
875     <request name="destroy" type="destructor"/>
876
877     <request name="set_stretch">
878       <arg name="stretch" type="uint" summary="stretch type for screenmirror"/>
879     </request>
880
881     <request name="queue">
882       <description summary="queue a buffer"/>
883         <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
884     </request>
885
886     <request name="dequeue">
887       <description summary="dequeue a buffer">
888         A user can dequeue a buffer from display server when he wants to take back it from server.
889       </description>
890       <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
891     </request>
892
893     <request name="start"/>
894     <request name="stop"/>
895
896     <enum name="content">
897       <entry name="normal" value="0"/>
898       <entry name="video" value="1"/>
899     </enum>
900
901     <enum name="stretch">
902       <entry name="keep_ratio" value="0"/>
903       <entry name="fully" value="1"/>
904     </enum>
905
906     <event name="dequeued">
907       <description summary="dequeued event">
908         occurs when drawing a captured image on a buffer is finished
909       </description>
910       <arg name="buffer" type="object" interface="wl_buffer" summary="dequeued buffer which contains a captured image"/>
911     </event>
912
913     <event name="content">
914       <description summary="content changed event">
915         occurs when the content of a captured image is changed. (normal or video)
916       </description>
917       <arg name="content" type="uint"/>
918     </event>
919
920     <event name="stop">
921       <description summary="stop event">
922         occurs when the screenmirror is stopped eventually
923       </description>
924     </event>
925
926     <!-- version 2 additions -->
927     <request name="set_auto_rotation" since="2">
928       <description summary="set screenmirror auto rotation value">
929          Client can set auto rotation value for screenmirror.
930       </description>
931       <arg name="set" type="uint"/>
932     </request>
933   </interface>
934
935   <interface name="tizen_video" version="1">
936
937     <description summary="interface for tizen-video">
938       Clients can get the video information that the compositor can handle from this interface.
939     </description>
940
941     <enum name="error">
942       <entry name="none" value="0"/>
943       <entry name="object_exists" value="1"/>
944       <entry name="viewport_exists" value="2"/>
945     </enum>
946
947     <event name="format">
948       <description summary="supported format for video">
949         The tbm format codes match the #defines in tbm_surface.h. The formats actually
950         supported by the compositor will be reported by the format event.
951       </description>
952       <arg name="format" type="uint"/>
953     </event>
954
955     <request name="get_object">
956       <arg name="id" type="new_id" interface="tizen_video_object" />
957       <arg name="surface" type="object" interface="wl_surface" />
958     </request>
959
960     <request name="get_viewport">
961       <arg name="id" type="new_id" interface="tizen_viewport" />
962       <arg name="surface" type="object" interface="wl_surface" />
963     </request>
964
965     <request name="destroy" type="destructor">
966       <description summary="destroy the tizen_video">
967         Destroy the tizen_video.
968       </description>
969     </request>
970
971   </interface>
972
973   <interface name="tizen_video_object" version="1">
974
975     <event name="attribute">
976       <arg name="name" type="string"/>
977       <arg name="value" type="uint"/>
978     </event>
979
980     <event name="size">
981       <arg name="min_w" type="int"/>
982       <arg name="min_h" type="int"/>
983       <arg name="max_w" type="int"/>
984       <arg name="max_h" type="int"/>
985       <arg name="prefer_align" type="int"/>
986     </event>
987
988     <request name="destroy" type="destructor"/>
989     <request name="set_attribute">
990       <arg name="name" type="string"/>
991       <arg name="value" type="int"/>
992     </request>
993
994     <request name="follow_topmost_visibility">
995       <description summary="follow mute control change of a topmost surface">
996         If tizen_video_object.follow_topmost_visibility is applied to a video_object,
997         It will be video mute control based on topmost visibility.
998       </description>
999     </request>
1000
1001     <request name="unfollow_topmost_visibility">
1002       <description summary="unfollow mute control change of a topmost surface">
1003         If tizen_video_object.unfollow_topmost_visibility is applied to a video_object,
1004         It will not be video mute control based on topmost visibility.
1005       </description>
1006     </request>
1007
1008     <request name="allowed_attribute">
1009       <description summary="allowed_attribute">
1010         If tizen_video_object.allowed_attribute is applied to a video_object,
1011         set_attribute request will be deliever to tdm backend directly.
1012       </description>
1013     </request>
1014
1015     <request name="disallowed_attribute">
1016       <description summary="disallowed_attribute">
1017         If tizen_video_object.disallowed_attribute is applied to a video_object,
1018         It would be tdm_attribute call when topmost showing.
1019       </description>
1020     </request>
1021
1022   </interface>
1023
1024   <interface name="tizen_subsurface_watcher" version="1">
1025
1026     <enum name="msg">
1027       <entry name="success" value="0"/>
1028       <entry name="parent_id_invalid" value="1"/>
1029       <entry name="parent_id_destroyed" value="2"/>
1030     </enum>
1031
1032     <event name="message">
1033       <arg name="value" type="uint"/>
1034     </event>
1035
1036     <request name="destroy" type="destructor">
1037       <description summary="destroy the tizen_subsurface_watcher">
1038         Destroy the tizen_subsurface_watcher.
1039       </description>
1040     </request>
1041
1042   </interface>
1043
1044   <interface name="tizen_viewport" version="1">
1045
1046       <description summary="the viewport for a surface">
1047     This is the alternative and convenient solution of wl_viewport to present
1048     a surface on screen.
1049
1050     The below five functions can be replaced with this interface. The below
1051     functions will be ignored after applying this interface to a surface.
1052      - wl_surface.set_buffer_transform
1053      - wl_surface.set_buffer_scale
1054      - wl_subsurface.set_position
1055      - wl_viewport.set_source
1056      - wl_viewport.set_destination
1057
1058     wl_viewport.set_source is very complicated especially when the buffer of
1059     wl_surface is transformed by wl_surface.set_buffer_transform. And when the
1060     parent is resized, if we want to change the geometry of a subsurface also,
1061     wl_subsurface.set_position and wl_viewport.set_destination should be called
1062     everytime the parent is resized in client side. This makes difficult to
1063     synchronize a parent surface and a subsurface on screen.
1064
1065     tizen_viewport allows clients to set the relative geometry to a subsurface
1066     in a parent surface. Whenever a parent surface is resized, the geometry of
1067     a subsurface will be calculated, moved and resized automatically by a
1068     compositor. The tizen_viewport is specified in the coordinates of a
1069     subsurface's parent.
1070
1071         If tizen_viewport is applied to a shell surface(toplevel), the all value related
1072         with x, y pos of tizen_viewport and tizen_destination_mode interface will be ignored.
1073
1074     The below 3 functions don't consider the transform of a parent's surface.
1075      - tizen_viewport.set_source
1076      - tizen_viewport.set_destination
1077      - tizen_viewport.set_destination_ratio
1078
1079     Furthermore, tizen_destination_mode.follow_parent_transform is called,
1080     tizen_viewport will consider the transform of a parent surface when applying
1081     the destination mode to a subsurface. If tizen_destination_mode.follow_parent_transform
1082     is applied to a shell surface, it will be ignored.
1083
1084     The destination will be cropped by a parent surface.
1085
1086     The change will be applied when wl_surface.commit is called.
1087       </description>
1088
1089     <event name="destination_changed">
1090       <arg name="transform" type="uint"/>
1091       <arg name="x" type="int"/>
1092       <arg name="y" type="int"/>
1093       <arg name="width" type="uint"/>
1094       <arg name="height" type="uint"/>
1095     </event>
1096
1097     <request name="destroy" type="destructor" />
1098
1099     <request name="set_transform">
1100       <description summary="set the transform of a surface">
1101     The accepted values for the transform parameter are the values for wl_output.transform
1102     according to the output transform.
1103
1104     The tizen_viewport.set_transform is applied only to itself. Basically it
1105     doesn't effect the transform of its subsurfaces. That is, if 90 transform is
1106     setted and its subsurface still has 0 transform, its subsurface won't be
1107     rotated.
1108
1109     If needed to rotate the subsurface depended on a parent surface,
1110     tizen_destination_mode.follow_parent_transform will make it possible.
1111
1112       </description>
1113       <arg name="transform" type="uint"/>
1114     </request>
1115
1116     <request name="set_source">
1117       <description summary="set the source rectalge of a wl_buffer">
1118     The source rectangle won't be changed when a parent is resized. If it needs
1119     to be changed, tizen_viewport.set_source should be called with new values.
1120       </description>
1121       <arg name="x" type="uint"/>
1122       <arg name="y" type="uint"/>
1123       <arg name="width" type="uint"/>
1124       <arg name="height" type="uint"/>
1125     </request>
1126
1127     <request name="set_destination">
1128       <description summary="set the destination geometry of a surface">
1129     The destination geometry won't be changed when a parent is resized. If it
1130     needs to be changed, tizen_viewport.set_destination should be called with
1131     new values.
1132
1133         If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
1134         tizen_viewport.set_destination will be ignored.
1135       </description>
1136       <arg name="x" type="int"/>
1137       <arg name="y" type="int"/>
1138       <arg name="width" type="uint"/>
1139       <arg name="height" type="uint"/>
1140     </request>
1141
1142     <request name="set_destination_ratio">
1143       <description summary="set the ratio destination rectalge in a parent surface">
1144     The destination rectangle of a subsurface will be automatically changed
1145     when a parent is resized. This allows the real number between 0.0 and 1.0.
1146     See wl_fixed_from_double and wl_fixed_to_double.
1147
1148         If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
1149         tizen_viewport.set_destination_ratio will be ignored.
1150       </description>
1151       <arg name="x" type="fixed"/>
1152       <arg name="y" type="fixed"/>
1153       <arg name="width" type="fixed"/>
1154       <arg name="height" type="fixed"/>
1155     </request>
1156
1157     <request name="get_destination_mode">
1158       <arg name="id" type="new_id" interface="tizen_destination_mode" />
1159     </request>
1160
1161     <request name="query_parent_size" since="1">
1162       <description summary="set the ratio destination rectalge in a parent surface">
1163     A client can asks the display server to send the size of tizen_viewport object's
1164     parent surface. Once a client requests it, the "parent_size" event will be sent
1165     whenever the parent surface's size is changed.
1166       </description>
1167     </request>
1168
1169     <event name="parent_size">
1170       <arg name="width" type="uint" />
1171       <arg name="height" type="uint" />
1172     </event>
1173
1174     <request name="follow_parent_transform">
1175       <description summary="follow the transform change of a parent surface">
1176     The real transform of a subsurface is (parent's transform + subsurface's transform).
1177     The subsurface will be rotated automatically when the parent is rotated.
1178
1179     If tizen_viewport.follow_parent_transform is applied to a shell surface(toplevel),
1180     it will be ignored.
1181       </description>
1182     </request>
1183
1184     <request name="unfollow_parent_transform" />
1185
1186   </interface>
1187
1188   <interface name="tizen_destination_mode" version="1">
1189
1190       <description summary="the destination mode for a surface">
1191     The destination rectangle will be automatically changed when a parent is
1192     resized. When tizen_destination_mode.set is called, the value of
1193     tizen_viewport.set_destination and tizen_viewport.set_destination_ratio
1194     will be ignored.
1195
1196     The destination of a surface is decided by the mode, ratio, scale, offset
1197     and align values. The ratio, scale, offset and align will be applied
1198     sequentially.
1199
1200     The change will be applied when wl_surface.commit is called.
1201       </description>
1202
1203     <enum name="error">
1204       <entry name="invalid_type" value="0"/>
1205     </enum>
1206
1207     <enum name="type">
1208       <entry name="none" value="0"/>
1209       <entry name="letter_box" value="1"/>
1210       <entry name="origin" value="2"/>
1211       <entry name="full" value="3"/>
1212       <entry name="cropped_full" value="4"/>
1213       <entry name="origin_or_letter" value="5"/>
1214     </enum>
1215
1216     <request name="destroy" type="destructor" />
1217
1218     <request name="follow_parent_transform">
1219       <description summary="follow the transform change of a parent surface">
1220     The real transform of a subsurface is (parent's transform + subsurface's transform).
1221     That is, the subsurface will be rotated automatically when the parent is rotated.
1222
1223     If tizen_destination_mode.follow_parent_transform is applied to a shell surface(toplevel),
1224     it will be ignored.
1225       </description>
1226     </request>
1227
1228     <request name="unfollow_parent_transform" />
1229
1230     <request name="set" summary="set the destination mode">
1231       <arg name="mode" type="uint" enum="type"/>
1232     </request>
1233
1234     <request name="set_ratio">
1235       <description summary="set the ratio of the destination rectangle of a subsurface">
1236     This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
1237       </description>
1238       <arg name="horizontal" type="fixed"/>
1239       <arg name="vertical" type="fixed"/>
1240     </request>
1241
1242     <request name="set_scale">
1243       <description summary="set the scale of the destination rectangle of a subsurface">
1244     This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
1245       </description>
1246       <arg name="horizontal" type="fixed"/>
1247       <arg name="vertical" type="fixed"/>
1248     </request>
1249
1250     <request name="set_align">
1251       <description summary="set the align of the destination rectangle of a subsurface">
1252     This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and
1253     wl_fixed_to_double.
1254       </description>
1255       <arg name="horizontal" type="fixed"/>
1256       <arg name="vertical" type="fixed"/>
1257     </request>
1258
1259     <request name="set_offset">
1260       <arg name="x" type="int"/>
1261       <arg name="y" type="int"/>
1262       <arg name="w" type="int"/>
1263       <arg name="h" type="int"/>
1264     </request>
1265
1266   </interface>
1267
1268   <interface name="tizen_embedded_compositor" version="1">
1269
1270     <description summary="global embedded compositor object">
1271       The global obejct. Wayland has 3 type of compositor, embedded compositor is one of them.
1272       But tizen application is sendboxing by smack, then a application not allow commutication to other application by socket.
1273       So system or session compositor create socket and send to embedded compostior.
1274     </description>
1275
1276     <request name="get_socket">
1277       <description summary="create new socket">
1278         The get_socket request ask the server to create socket and emit socket event.
1279       </description>
1280     </request>
1281
1282     <event name="socket">
1283       <description summary="socket fd">
1284         Sent immediately after get_socket request
1285       </description>
1286       <arg name="sock_fd" type="fd"/>
1287     </event>
1288
1289     <request name="destroy" type="destructor"/>
1290   </interface>
1291
1292   <interface name="tizen_input_device_manager" version="4">
1293     <description summary="global input device manager object">
1294       Tizen input device manager is a global interface. This object has device add/remove events
1295       to provide tizen input device object to a client. This allows for a client to get the con
1296
1297       Be sure to bind this interface after binding wl_seat interface.
1298       Tizen input device manager interface will only provide device add/remove event for devices
1299       which belongs to the wl_seat object(s) bound by the client. Therefore, the compositor needs to
1300       create/send the device add/remove event only for the current client's seat(s).
1301     </description>
1302
1303     <event name="device_add">
1304       <description summary="device addition event">
1305         The device add/remove notification is going to be sent when a physical/logical device is
1306         added/removed to/from the given seat. Note that a tizen input device object can be assigned to
1307         a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
1308         a tizen input device object changes, device remove event from the current wl_seat object will be made
1309         and device add event to the other wl_seat object will also be mode.
1310       </description>
1311       <arg name="serial" type="uint"/>
1312       <arg name="identifier" type="string"/>
1313       <arg name="device" type="new_id" interface="tizen_input_device"/>
1314       <arg name="seat" type="object" interface="wl_seat"/>
1315     </event>
1316
1317     <event name="device_remove">
1318       <description summary="device removal event">
1319         The device add/remove notification is going to be sent when a physical/logical device is
1320         added/removed to/from the given seat. Note that a tizen input device object can be assigned to
1321         a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
1322         a tizen input device object changes, device remove event from the current wl_seat object will be made
1323         and device add event to the other wl_seat object will also be mode.
1324       </description>
1325       <arg name="serial" type="uint"/>
1326       <arg name="identifier" type="string"/>
1327       <arg name="device" type="object" interface="tizen_input_device"/>
1328       <arg name="seat" type="object" interface="wl_seat"/>
1329     </event>
1330
1331     <enum name="clas">
1332        <description summary="device class">
1333        </description>
1334        <entry name="none" value="0" summary="none of class"/>
1335        <entry name="mouse" value="1" summary="mouse class"/>
1336        <entry name="keyboard" value="2" summary="keyboard class"/>
1337        <entry name="touchscreen" value="4" summary="touchscreen class"/>
1338     </enum>
1339
1340     <enum name="error">
1341       <entry name="none" value="0" summary="no error"/>
1342       <entry name="no_permission" value="1" summary="no permission"/>
1343       <entry name="invalid_class" value="2" summary="invalid class"/>
1344       <entry name="blocked_already" value="3" summary="blocked already by the other client"/>
1345       <entry name="no_system_resources" value="4" summary="no system resources such as memory lack"/>
1346       <entry name="invalid_parameter" value="5" summary="argument is invalid"/>
1347       <entry name="invalid_surface" value="6" summary="the given surface is not visible or pointer is not on the given surface"/>
1348       <entry name="no_pointer_available" value="7" summary="there is no pointer available to warp"/>
1349       <entry name="not_allowed" value="8" summary="this request is not allowed in this system"/>
1350     </enum>
1351
1352     <event name="error">
1353       <description summary="error event">
1354       </description>
1355       <arg name="errorcode" type="uint" enum="error"/>
1356     </event>
1357
1358     <event name="block_expired">
1359       <description summary="block expiration event">
1360         This event will be sent if the duration of existing block is expired.
1361         Note that no block expired event will be sent if there is no block for the client.
1362       </description>
1363     </event>
1364
1365     <request name="block_events">
1366       <description summary="request to block sending event(s)">
1367         This request allows a client to request to block one or more events for its purpose.
1368         By specifying class as an argument in the request, the events belongs to the class will be blocked
1369         during the given duration. Note that an error event will be sent if there is any error.
1370       </description>
1371       <arg name="serial" type="uint" summary=""/>
1372       <arg name="clas" type="uint" enum="clas"/>
1373       <arg name="duration" type="uint" summary="time duration with millisecond granularity"/>
1374     </request>
1375
1376     <request name="unblock_events">
1377       <description summary="request to unblock sending event(s)">
1378         This request allows a client to request to release the existing block for the client.
1379         Note that no error event will be sent if there is no existing block for the client.
1380       </description>
1381       <arg name="serial" type="uint" summary=""/>
1382     </request>
1383
1384     <request name="init_generator">
1385       <description summary="initialize input generator system">
1386       </description>
1387       <arg name="clas" type="uint" enum="clas"/>
1388     </request>
1389
1390     <request name="deinit_generator">
1391       <description summary="deinitialize input generator system">
1392       </description>
1393       <arg name="clas" type="uint" enum="clas"/>
1394     </request>
1395
1396     <request name="generate_key">
1397       <description summary="generate a key event using specific or default device">
1398       </description>
1399       <arg name="keyname" type="string"/>
1400       <arg name="pressed" type="uint"/>
1401     </request>
1402
1403     <enum name="pointer_event_type">
1404       <entry name="begin" value="0"/>
1405       <entry name="update" value="1"/>
1406       <entry name="end" value="2"/>
1407     </enum>
1408
1409     <request name="generate_pointer">
1410       <description summary="generate a pointer event using specific or default device">
1411       </description>
1412       <arg name="type" type="uint" enum="pointer_event_type"/>
1413       <arg name="x" type="uint"/>
1414       <arg name="y" type="uint"/>
1415       <arg name="button" type="uint"/>
1416     </request>
1417
1418     <request name="generate_touch">
1419       <description summary="generate a touch event using specific or default device">
1420       </description>
1421       <arg name="type" type="uint" enum="pointer_event_type"/>
1422       <arg name="x" type="uint"/>
1423       <arg name="y" type="uint"/>
1424       <arg name="finger" type="uint"/>
1425     </request>
1426
1427     <request name="pointer_warp">
1428       <description summary="warp pointer to the relative position to the given surface">
1429       </description>
1430       <arg name="surface" type="object" interface="wl_surface"/>
1431       <arg name="x" type="fixed"/>
1432       <arg name="y" type="fixed"/>
1433     </request>
1434
1435     <!-- version 2 additions -->
1436     <request name="init_generator_with_name" since="2">
1437       <description summary="initialize input generator system with name">
1438       </description>
1439       <arg name="clas" type="uint" enum="clas"/>
1440       <arg name="name" type="string" />
1441     </request>
1442
1443     <request name="destroy" type="destructor" since="2">
1444       <description summary="destroy the tizen_input_device_manager">
1445         Destroy the tizen_input_device_manager.
1446       </description>
1447     </request>
1448
1449     <!-- version 3 additions -->
1450     <enum name="axis_type" since="3">
1451       <entry name="none" value="0" summary="no axis type"/>
1452       <entry name="wheel" value="1" summary="pointer vertical wheel axis"/>
1453       <entry name="hwheel" value="2" summary="pointer horizental wheel axis"/>
1454       <entry name="radius_x" value="3" summary="touch radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1455       <entry name="radius_y" value="4" summary="touch radius of y axis of an event area e.g. touching area with a finger or a pen"/>
1456       <entry name="pressure" value="5" summary="touch pressure in an event area e.g. touching area with a finger or a pen"/>
1457       <entry name="angle" value="6" summary="touch angle in an event area e.g. touching area with a finger or a pen"/>
1458       <entry name="palm" value="7" summary="touch palm in an event area e.g. touching area with a finger or a pen"/>
1459     </enum>
1460
1461     <request name="generate_axis" since="3">
1462       <description summary="generate a pointer/touch axes event using specific or default device">
1463         When the server got this request, the server choices generate a event directly or just save values.
1464         Pointer axes (such as wheel/hwheel) are delivered to clients independantly about pointer events,
1465         but touch axes are delivered to normal touch events(begin/update/end).
1466         So the server just save touch axes before generate touch request is came and send a touch event
1467         include saved touch axes value.
1468       </description>
1469       <arg name="type" type="uint" enum="axis_type"/>
1470       <arg name="value" type="fixed" summary="axis value"/>
1471     </request>
1472
1473     <!-- version 4 additions -->
1474     <event name="max_touch_count" since="4">
1475       <description summary="notify max slot of touch device is updated">
1476         Each touch devices has their own touch counts can be supported.
1477         So a server controls maximum touches in this system to maintain resources efficiently.
1478         Sometimes a server controls maximum touches using a predefined configuration option.
1479         Sometimes a server ensures maximum touches to be supported by touch device.
1480         If a server do not use configuration option, maximum touches can be updated when new touch devices are connected.
1481         So this events can be sent to client, when a first touch device is added or maximum touches is changed.
1482       </description>
1483       <arg name="serial" type="uint"/>
1484       <arg name="max_count" type="int"/>
1485       <arg name="seat" type="object" interface="wl_seat"/>
1486     </event>
1487
1488     <request name="set_touch_count" since="4">
1489       <description summary="set a max slot of touch">
1490         This request only changes system's touch count.
1491         So this request doesn't change already connected touch devices's max count.
1492         This will influence to user created device using input generator.
1493         Input generator creates touch device only supports default touch count.
1494         But if user set touch count before create a Input generator device,
1495         user can create touch device has touch count user wanted.
1496         But some systems has their own maximum touch count.
1497         In that case this request returns error not_allowed.
1498       </description>
1499       <arg name="max_count" type="int"/>
1500     </request>
1501   </interface>
1502
1503   <interface name="tizen_input_device" version="1">
1504     <description summary="tizen input device object">
1505       The tizen_input_device interface represents one or more input devices associated with a physical/logical
1506       input device. This interface provides device specific information/events to allows for client to identify
1507       the source device of an event or to get the additional axes/attributes of a device.
1508       Note that a tizen_input_device object can be used for a physical input device and can also be used for a
1509       group of input devices. e.g. a group of mouse devices
1510     </description>
1511
1512     <enum name="clas">
1513        <description summary="device class">
1514        </description>
1515        <entry name="none" value="0" summary="none of class"/>
1516        <entry name="keyboard" value="2" summary="keyboard class"/>
1517        <entry name="mouse" value="3" summary="mouse class"/>
1518        <entry name="touchscreen" value="4" summary="touchscreen class"/>
1519     </enum>
1520
1521     <enum name="subclas">
1522        <description summary="device subclass">
1523        </description>
1524        <entry name="none" value="0" summary="none of subclass"/>
1525     </enum>
1526
1527     <enum name="axis_type">
1528       <description summary="axis type enums which can be supported by a device">
1529       </description>
1530       <entry name="none" value="0" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1531       <entry name="radius_x" value="1" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1532       <entry name="radius_y" value="2" summary="radius of y axis of an event area e.g. touching area with a finger or a pen"/>
1533       <entry name="pressure" value="3" summary="pressure in an event area e.g. touching area with a finger or a pen"/>
1534       <entry name="angle" value="4" summary="angle in an event area e.g. touching area with a finger or a pen"/>
1535       <entry name="detent" value="5" summary="detent value e.g. moved distance with a rotary device"/>
1536     </enum>
1537
1538     <event name="device_info">
1539       <description summary="event contains device information">
1540       </description>
1541       <arg name="name" type="string"/>
1542       <arg name="clas" type="uint" enum="clas"/>
1543       <arg name="subclas" type="uint" enum="subclas"/>
1544       <arg name="axes" type="array" summary="array of axis enum"/>
1545     </event>
1546
1547     <event name="event_device">
1548       <description summary="event indicates the source device associated with a wl_pointer/keyboard/touch event">
1549       </description>
1550       <arg name="serial" type="uint"/>
1551       <arg name="name" type="string"/>
1552       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
1553     </event>
1554
1555     <request name="select_axes">
1556       <description summary="request for selecting some of axes among the axes supported by a tizen_input_device object">
1557       </description>
1558       <arg name="axes" type="array" summary="array of axis num"/>
1559     </request>
1560
1561     <event name="axis">
1562       <description summary="axis change event">
1563       </description>
1564       <arg name="axis_type" type="uint" enum="axis_type"/>
1565       <arg name="value" type="fixed" summary="axis value"/>
1566     </event>
1567
1568     <request name="release" type="destructor">
1569       <description summary="release the tizen_input_device object">
1570       </description>
1571     </request>
1572   </interface>
1573
1574   <interface name="tizen_launchscreen" version="1">
1575     <request name="create_img">
1576       <arg name="id" type="new_id" interface="tizen_launch_image" summary="new tizen_launch_image object"/>
1577     </request>
1578
1579     <request name="destroy" type="destructor">
1580       <description summary="destroy the tizen_launchscreen">
1581         Destroy the tizen_launchscreen.
1582       </description>
1583     </request>
1584
1585   </interface>
1586
1587   <interface name="tizen_launch_image" version="1">
1588     <!-- launch img -->
1589     <enum name="file_type">
1590       <entry name="img" value="0" summary="splash image file path"/>
1591       <entry name="edj" value="1" summary="splash edj file path"/>
1592     </enum>
1593
1594     <enum name="indicator">
1595       <entry name="off" value="0" summary="splash hide indicator"/>
1596       <entry name="on" value="1" summary="splash show indicator"/>
1597     </enum>
1598
1599     <enum name="rotation">
1600       <entry name="0" value="0" summary="rotation angle 0 degree"/>
1601       <entry name="90" value="90" summary="rotation angle 90 degree"/>
1602       <entry name="180" value="180" summary="rotation angle 180 degree"/>
1603       <entry name="270" value="270" summary="rotation angle 270 degree"/>
1604     </enum>
1605
1606     <request name="destroy" type="destructor"/>
1607
1608     <request name="launch">
1609       <arg name="file" type="string"/>
1610       <arg name="file_type" type="uint" />
1611       <arg name="color_depth" type="uint" />
1612       <arg name="rotation" type="uint" />
1613       <arg name="indicator" type="uint" />
1614       <arg name="options" type="array" />
1615     </request>
1616
1617     <request name="owner">
1618       <arg name="pid" type="uint" />
1619     </request>
1620
1621     <request name="show">
1622     </request>
1623
1624     <request name="hide">
1625     </request>
1626   </interface>
1627
1628   <interface name="tizen_effect" version="1">
1629      <enum name="type">
1630       <entry name="none" value="0" summary="none"/>
1631       <entry name="show" value="1" summary="show effect of window"/>
1632       <entry name="hide" value="2" summary="hide effect of window"/>
1633       <entry name="restack" value="3" summary="restack effect of window"/>
1634      </enum>
1635      <request name="destroy" type="destructor" />
1636      <event name="start">
1637        <arg name="surface" type="object" interface="wl_surface"/>
1638        <arg name="type" type="uint" />
1639      </event>
1640      <event name="end">
1641        <arg name="surface" type="object" interface="wl_surface"/>
1642        <arg name="type" type="uint" />
1643      </event>
1644   </interface>
1645
1646   <interface name="tizen_display_policy" version="1">
1647     <enum name="error_state">
1648       <entry name="none" value="0"/>
1649       <entry name="permission_denied" value="1"/>
1650     </enum>
1651     <!-- for window brightness -->
1652     <request name="set_window_brightness">
1653       <arg name="surface" type="object" interface="wl_surface"/>
1654       <arg name="brightness" type="int"/>
1655     </request>
1656
1657     <event name="window_brightness_done">
1658       <arg name="surface" type="object" interface="wl_surface"/>
1659       <arg name="brightness" type="int"/>
1660       <arg name="error_state" type="uint"/>
1661     </event>
1662
1663     <request name="destroy" type="destructor">
1664       <description summary="destroy the tizen_display_policy">
1665         Destroy the tizen_display_policy.
1666       </description>
1667     </request>
1668
1669   </interface>
1670
1671   <interface name="tizen_indicator" version="1">
1672     <enum name="state">
1673       <entry name="unknown" value="0" summary="unknown"/>
1674       <entry name="off" value="1" summary="can not show indicator"/>
1675       <entry name="on" value="2" summary="can show indicator"/>
1676     </enum>
1677     <enum name="opacity_mode">
1678       <entry name="unknown" value="0" summary="unknown"/>
1679       <entry name="opaque" value="1" summary="opaque mode"/>
1680       <entry name="translucent" value="2" summary="translucent mode"/>
1681       <entry name="transparent" value="3" summary="transparent all mode"/>
1682       <entry name="bg_transparent" value="4" summary="transparent only background mode"/>
1683     </enum>
1684     <enum name="visible_type">
1685       <entry name="hidden" value="0" summary="hidden type indicator"/>
1686       <entry name="shown" value="1" summary="shown type indicator"/>
1687     </enum>
1688
1689     <request name="destroy" type="destructor"/>
1690     <request name="set_state">
1691       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1692       <arg name="state" type="int" />
1693     </request>
1694     <request name="set_opacity_mode">
1695       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1696       <arg name="mode" type="int" />
1697     </request>
1698     <request name="set_visible_type">
1699       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1700       <arg name="type" type="int" />
1701     </request>
1702
1703     <event name="flick">
1704       <arg name="surface" type="object" interface="wl_surface" summary="occur the flick event"/>
1705       <arg name="type" type="int"/>
1706     </event>
1707   </interface>
1708
1709   <interface name="tizen_clipboard" version="2">
1710      <description summary="an interface for requests and event about clipboard">
1711         This interface provides some requests and events about clipboard for other clients.
1712      </description>
1713      <request name="destroy" type="destructor" />
1714      <request name="show">
1715       <description summary="request for show clipboard">
1716       </description>
1717       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1718      </request>
1719      <request name="hide">
1720       <description summary="request for hide clipboard">
1721       </description>
1722       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1723      </request>
1724      <event name="data_selected">
1725       <description summary="announce data are selected by clipboard">
1726       </description>
1727       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1728      </event>
1729
1730      <!-- version 2 additions -->
1731      <request name="set_data_only" since="2">
1732         <description summary="request for setting data only mode for this wl_client">
1733            A wayland client can notify of that the client is data only mode.
1734            The data only mode means that this wayland client doesn't have any
1735            wl_surfaces at all but it wants to use wl_data_device for some data
1736            operations.
1737         </description>
1738         <arg name="set" type="uint" />
1739      </request>
1740
1741      <event name="allowed_data_only" since="2">
1742         <description summary="event to notify if data only set is allowed or not"/>
1743         <arg name="allowed" type="uint" />
1744      </event>
1745   </interface>
1746
1747   <interface name="tizen_screen_rotation" version="1">
1748     <request name="get_ignore_output_transform">
1749       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1750     </request>
1751
1752     <event name="ignore_output_transform">
1753       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1754       <arg name="ignore" type="uint"/>
1755     </event>
1756
1757     <request name="destroy" type="destructor">
1758       <description summary="destroy the tizen_screen_rotation">
1759         Destroy the tizen_screen_rotation.
1760       </description>
1761     </request>
1762
1763   </interface>
1764
1765   <interface name="tizen_renderer" version="1">
1766     <request name="get_renderer_surface">
1767       <arg name="id" type="new_id" interface="tizen_renderer_surface" />
1768       <arg name="surface" type="object" interface="wl_surface" />
1769     </request>
1770
1771     <request name="destroy" type="destructor">
1772       <description summary="destroy the tizen_renderer">
1773         Destroy the tizen_renderer
1774       </description>
1775     </request>
1776   </interface>
1777
1778   <interface name="tizen_renderer_surface" version="1">
1779     <event name="redraw_request">
1780     </event>
1781
1782     <request name="destroy" type="destructor">
1783       <description summary="destroy the tizen_renderer_surface">
1784         Destroy the tizen_renderer_surface
1785       </description>
1786     </request>
1787   </interface>
1788
1789 </protocol>