xwm: Check whether the seat is NULL when needed in weston_wm_handle_button
[profile/ivi/weston-ivi-shell.git] / protocol / desktop-shell.xml
1 <protocol name="desktop">
2
3   <interface name="desktop_shell" version="3">
4     <description summary="create desktop widgets and helpers">
5       Traditional user interfaces can rely on this interface to define the
6       foundations of typical desktops. Currently it's possible to set up
7       background, panels and locking surfaces.
8     </description>
9
10     <request name="set_background">
11       <arg name="output" type="object" interface="wl_output"/>
12       <arg name="surface" type="object" interface="wl_surface"/>
13     </request>
14
15     <request name="set_panel">
16       <arg name="output" type="object" interface="wl_output"/>
17       <arg name="surface" type="object" interface="wl_surface"/>
18     </request>
19
20     <request name="set_lock_surface">
21       <arg name="surface" type="object" interface="wl_surface"/>
22     </request>
23
24     <request name="unlock"/>
25
26     <request name="set_grab_surface">
27       <description summary="set grab surface">
28         The surface set by this request will receive a fake
29         pointer.enter event during grabs at position 0, 0 and is
30         expected to set an appropriate cursor image as described by
31         the grab_cursor event sent just before the enter event.
32       </description>
33       <arg name="surface" type="object" interface="wl_surface"/>
34     </request>
35
36     <!-- We'll fold most of wl_shell into this interface and then
37          they'll share the configure event.  -->
38     <event name="configure">
39       <arg name="edges" type="uint"/>
40       <arg name="surface" type="object" interface="wl_surface"/>
41       <arg name="width" type="int"/>
42       <arg name="height" type="int"/>
43     </event>
44
45     <event name="prepare_lock_surface">
46       <description summary="tell the client to create, set the lock surface">
47         Tell the shell we want it to create and set the lock surface, which is
48         a GUI asking the user to unlock the screen. The lock surface is
49         announced with 'set_lock_surface'. Whether or not the shell actually
50         implements locking, it MUST send 'unlock' request to let the normal
51         desktop resume.
52       </description>
53     </event>
54
55     <event name="grab_cursor">
56       <description summary="tell client what cursor to show during a grab">
57         This event will be sent immediately before a fake enter event on the
58         grab surface.
59       </description>
60       <arg name="cursor" type="uint"/>
61     </event>
62
63     <enum name="cursor">
64       <entry name="none" value="0"/>
65
66       <entry name="resize_top" value="1"/>
67       <entry name="resize_bottom" value="2"/>
68
69       <entry name="arrow" value="3"/>
70
71       <entry name="resize_left" value="4"/>
72       <entry name="resize_top_left" value="5"/>
73       <entry name="resize_bottom_left" value="6"/>
74
75       <entry name="move" value="7"/>
76
77       <entry name="resize_right" value="8"/>
78       <entry name="resize_top_right" value="9"/>
79       <entry name="resize_bottom_right" value="10"/>
80
81       <entry name="busy" value="11"/>
82     </enum>
83
84     <!-- Version 2 additions -->
85
86     <request name="desktop_ready" since="2">
87       <description summary="desktop is ready to be shown">
88         Tell the server, that enough desktop elements have been drawn
89         to make the desktop look ready for use. During start-up, the
90         server can wait for this request with a black screen before
91         starting to fade in the desktop, for instance. If the client
92         parts of a desktop take a long time to initialize, we avoid
93         showing temporary garbage.
94       </description>
95     </request>
96
97     <!-- Version 3 additions -->
98
99     <enum name="panel_position">
100       <entry name="top" value="0"/>
101       <entry name="bottom" value="1"/>
102       <entry name="left" value="2"/>
103       <entry name="right" value="3"/>
104     </enum>
105
106     <enum name="error">
107       <entry name="invalid_argument" value="0"
108         summary="an invalid argument was provided in a request"/>
109     </enum>
110
111     <request name="set_panel_position" since="3">
112       <arg name="position" type="uint"/>
113       <description summary="set panel position">
114         Tell the shell which side of the screen the panel is
115         located. This is so that new windows do not overlap the panel
116         and maximized windows maximize properly.
117       </description>
118     </request>
119
120   </interface>
121
122   <interface name="screensaver" version="1">
123     <description summary="interface for implementing screensavers">
124       Only one client can bind this interface at a time.
125     </description>
126
127     <request name="set_surface">
128       <description summary="set the surface type as a screensaver">
129         A screensaver surface is normally hidden, and only visible after an
130         idle timeout.
131       </description>
132
133       <arg name="surface" type="object" interface="wl_surface"/>
134       <arg name="output" type="object" interface="wl_output"/>
135     </request>
136
137   </interface>
138 </protocol>