/
alien-manager.xml
218 lines (188 loc) · 9.52 KB
/
alien-manager.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<protocol name="alien_manager">
<copyright>
Copyright (c) 2014 Jolla Ltd.
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that copyright notice and this permission
notice appear in supporting documentation, and that the name of
the copyright holders not be used in advertising or publicity
pertaining to distribution of the software without specific,
written prior permission. The copyright holders make no
representations about the suitability of this software for any
purpose. It is provided "as is" without express or implied
warranty.
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.
</copyright>
<interface name="alien_manager" version="1">
<description summary="manager interface for alien clients">
This global interface is used by alien clients to integrate
with the shell.
</description>
<request name="destroy" type="destructor">
<description summary="destroy the manager">
Destroy this alien_manager. All its alien_client children
are inactive and should be destroyed by the client.
</description>
</request>
<request name="create_alien_client">
<description summary="create a new alien_client handle">
This request creates a new alien_client. For each
alien_client there should be a real alien application
associated with it.
The package parameter should be the android package of
the external application.
</description>
<arg name="id" type="new_id" interface="alien_client"/>
<arg name="package" type="string"/>
</request>
<request name="pong">
<description summary="respond to a ping event">
A client must respond to a ping event with a pong request or
the client may be deemed unresponsive.
</description>
<arg name="serial" type="uint"/>
</request>
<event name="ping">
<description summary="ping client">
A client must respond to a ping event with a pong request or
the client may be deemed unresponsive.
</description>
<arg name="serial" type="uint"/>
</event>
</interface>
<interface name="alien_client" version="1">
<description summary="alien client metadata interface">
Interface used to associate one or more wl_surfaces with an
external alien application.
</description>
<request name="destroy" type="destructor">
<description summary="destroy this alien_client">
Destroy this alien_client. All its alien_surface children
are unmapped and become inactive and should be destroyed
by the client.
</description>
</request>
<request name="get_alien_surface">
<description summary="create a new alien_surface">
Extend 'surface' with the alien_surface role.
If the surface has a role already a protocol error will
be raised.
</description>
<arg name="id" type="new_id" interface="alien_surface"/>
<arg name="surface" type="object" interface="wl_surface"/>
</request>
<event name="oom_score">
<description summary="the oom score for the client">
After receiving this event the client should set the
oom score for the real application to the given value.
</description>
<arg name="score" type="int"/>
</event>
</interface>
<interface name="alien_surface" version="1">
<description summary="main window interface for alien clients">
This interface extends a basic wl_surface with additional metadata
needed to map it on screen.
If its wl_surface is destroyed, an alien_surface becomes inactive
but will not be automatically destroyed.
</description>
<request name="destroy" type="destructor">
<description summary="delete surface">
Deletes the surface and invalidates its object ID.
The wl_surface loses its role, and all the associated properties.
The surface is unmapped.
</description>
</request>
<request name="set_title">
<description summary="set surface title">
Set a short title for the surface.
This string may be used to identify the surface in a task bar,
window list, or other user interface elements provided by the
compositor.
The string must be encoded in UTF-8.
</description>
<arg name="title" type="string"/>
</request>
<enum name="state">
<description summary="types of state on the surface">
The different state values used on the surface. They are paired with
the configure event to ensure that both the client and the compositor
setting the state can be synchronized.
States set in this way are double-buffered. They will get applied on
the next commit.
</description>
<entry name="hidden" value="1" summary="the surface is not visible">
The surface is hidden, it should stop drawing and free memory
if possible.
</entry>
<entry name="cover" value="2" summary="the surface is used as a cover">
The surface is being used as a non-fullscreen cover, and cannot
receive input.
</entry>
</enum>
<event name="configure">
<description summary="suggest a surface change">
The configure event asks the client to resize its surface.
The width and height arguments specify a hint to the window
about how its surface should be resized in surface local
coordinates. The states listed in the event specify additional
information about the surface.
A client should send an ack_configure request with the serial
sent in this configure event before attaching a new buffer.
If the client receives multiple configure events before it
can respond to one, it is free to discard all but the last
event it received.
</description>
<arg name="width" type="uint"/>
<arg name="height" type="uint"/>
<arg name="states" type="array"/>
<arg name="serial" type="uint"/>
</event>
<request name="ack_configure">
<description summary="ack a configure event">
When a configure event is received, a client should then ack it
using the ack_configure request to ensure that the compositor
knows the client has seen the event.
By this point, the state is confirmed, and the next attach should
contain the buffer drawn for the configure event you are acking.
</description>
<arg name="serial" type="uint"/>
</request>
<request name="request_state">
<description summary="request a surface change">
Ask the compositor to send a configure event with the
requested states. The compositor is free to ignore the
request, or to send a different states value than the
one requested.
The value of the 'serial' argument should be the last serial
the client received in an event.
</description>
<arg name="states" type="array"/>
<arg name="serial" type="uint" summary="serial for focus stealing prevenction"/>
</request>
<request name="set_minimized">
<description summary="ask the server to minimize the surface">
By calling this request the client asks the compositor to minimize
this surface. The actual behavior is compositor specific, the client
should not assume this surface is going to be unmapped.
</description>
</request>
<event name="close">
<description summary="request to close this surface">
This event requests the client to destroy this surface. The client is
free to choose if it wants to quit or to just destroy this surface and
keep running, however if the client ignores the request or takes too
much time to destroy the surface the server may decide to forcefully
kill it.
</description>
</event>
</interface>
</protocol>