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. This global interface is used by alien clients to integrate with the shell. Destroy this alien_manager. All its alien_client children are inactive and should be destroyed by the client. 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. A client must respond to a ping event with a pong request or the client may be deemed unresponsive. A client must respond to a ping event with a pong request or the client may be deemed unresponsive. Interface used to associate one or more wl_surfaces with an external alien application. Destroy this alien_client. All its alien_surface children are unmapped and become inactive and should be destroyed by the client. Extend 'surface' with the alien_surface role. If the surface has a role already a protocol error will be raised. After receiving this event the client should set the oom score for the real application to the given value. 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. Deletes the surface and invalidates its object ID. The wl_surface loses its role, and all the associated properties. The surface is unmapped. 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. 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. The surface is hidden, it should stop drawing and free memory if possible. The surface is being used as a non-fullscreen cover, and cannot receive input. 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. 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. 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. 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. This notifies that the application associated with the surface has terminated abnormally. 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.