commit
						a89096278b
					
				| @ -1,138 +0,0 @@ | ||||
| <protocol name="desktop"> | ||||
| 
 | ||||
|   <interface name="desktop_shell" version="3"> | ||||
|     <description summary="create desktop widgets and helpers"> | ||||
|       Traditional user interfaces can rely on this interface to define the | ||||
|       foundations of typical desktops. Currently it's possible to set up | ||||
|       background, panels and locking surfaces. | ||||
|     </description> | ||||
| 
 | ||||
|     <request name="set_background"> | ||||
|       <arg name="output" type="object" interface="wl_output"/> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="set_panel"> | ||||
|       <arg name="output" type="object" interface="wl_output"/> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="set_lock_surface"> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="unlock"/> | ||||
| 
 | ||||
|     <request name="set_grab_surface"> | ||||
|       <description summary="set grab surface"> | ||||
| 	The surface set by this request will receive a fake | ||||
| 	pointer.enter event during grabs at position 0, 0 and is | ||||
| 	expected to set an appropriate cursor image as described by | ||||
| 	the grab_cursor event sent just before the enter event. | ||||
|       </description> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <!-- We'll fold most of wl_shell into this interface and then | ||||
|          they'll share the configure event.  --> | ||||
|     <event name="configure"> | ||||
|       <arg name="edges" type="uint"/> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|       <arg name="width" type="int"/> | ||||
|       <arg name="height" type="int"/> | ||||
|     </event> | ||||
| 
 | ||||
|     <event name="prepare_lock_surface"> | ||||
|       <description summary="tell the client to create, set the lock surface"> | ||||
| 	Tell the client we want it to create and set the lock surface, which is | ||||
| 	a GUI asking the user to unlock the screen. The lock surface is | ||||
| 	announced with 'set_lock_surface'. Whether or not the client actually | ||||
| 	implements locking, it MUST send 'unlock' request to let the normal | ||||
|         desktop resume. | ||||
|       </description> | ||||
|     </event> | ||||
| 
 | ||||
|     <event name="grab_cursor"> | ||||
|       <description summary="tell client what cursor to show during a grab"> | ||||
| 	This event will be sent immediately before a fake enter event on the | ||||
| 	grab surface. | ||||
|       </description> | ||||
|       <arg name="cursor" type="uint"/> | ||||
|     </event> | ||||
| 
 | ||||
|     <enum name="cursor"> | ||||
|       <entry name="none" value="0"/> | ||||
| 
 | ||||
|       <entry name="resize_top" value="1"/> | ||||
|       <entry name="resize_bottom" value="2"/> | ||||
| 
 | ||||
|       <entry name="arrow" value="3"/> | ||||
| 
 | ||||
|       <entry name="resize_left" value="4"/> | ||||
|       <entry name="resize_top_left" value="5"/> | ||||
|       <entry name="resize_bottom_left" value="6"/> | ||||
| 
 | ||||
|       <entry name="move" value="7"/> | ||||
| 
 | ||||
|       <entry name="resize_right" value="8"/> | ||||
|       <entry name="resize_top_right" value="9"/> | ||||
|       <entry name="resize_bottom_right" value="10"/> | ||||
| 
 | ||||
|       <entry name="busy" value="11"/> | ||||
|     </enum> | ||||
| 
 | ||||
|     <!-- Version 2 additions --> | ||||
| 
 | ||||
|     <request name="desktop_ready" since="2"> | ||||
|       <description summary="desktop is ready to be shown"> | ||||
| 	Tell the server, that enough desktop elements have been drawn | ||||
| 	to make the desktop look ready for use. During start-up, the | ||||
| 	server can wait for this request with a black screen before | ||||
| 	starting to fade in the desktop, for instance. If the client | ||||
| 	parts of a desktop take a long time to initialize, we avoid | ||||
| 	showing temporary garbage. | ||||
|       </description> | ||||
|     </request> | ||||
| 
 | ||||
|     <!-- Version 3 additions --> | ||||
| 
 | ||||
|     <enum name="panel_position"> | ||||
|       <entry name="top" value="0"/> | ||||
|       <entry name="bottom" value="1"/> | ||||
|       <entry name="left" value="2"/> | ||||
|       <entry name="right" value="3"/> | ||||
|     </enum> | ||||
| 
 | ||||
|     <enum name="error"> | ||||
|       <entry name="invalid_argument" value="0" | ||||
|         summary="an invalid argument was provided in a request"/> | ||||
|     </enum> | ||||
| 
 | ||||
|     <request name="set_panel_position" since="3"> | ||||
|       <description summary="set panel position"> | ||||
|         Tell the shell which side of the screen the panel is | ||||
|         located. This is so that new windows do not overlap the panel | ||||
|         and maximized windows maximize properly. | ||||
|       </description> | ||||
|       <arg name="position" type="uint"/> | ||||
|     </request> | ||||
| 
 | ||||
|   </interface> | ||||
| 
 | ||||
|   <interface name="screensaver" version="1"> | ||||
|     <description summary="interface for implementing screensavers"> | ||||
|       Only one client can bind this interface at a time. | ||||
|     </description> | ||||
| 
 | ||||
|     <request name="set_surface"> | ||||
|       <description summary="set the surface type as a screensaver"> | ||||
| 	A screensaver surface is normally hidden, and only visible after an | ||||
|         idle timeout. | ||||
|       </description> | ||||
| 
 | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|       <arg name="output" type="object" interface="wl_output"/> | ||||
|     </request> | ||||
| 
 | ||||
|   </interface> | ||||
| </protocol> | ||||
| @ -1,57 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <protocol name="gamma_control"> | ||||
| 
 | ||||
|     <copyright> | ||||
|         Copyright © 2015 Giulio camuffo | ||||
| 
 | ||||
|         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="gamma_control_manager" version="1"> | ||||
|         <request name="destroy" type="destructor"/> | ||||
| 
 | ||||
|         <request name="get_gamma_control"> | ||||
|             <arg name="id" type="new_id" interface="gamma_control"/> | ||||
|             <arg name="output" type="object" interface="wl_output"/> | ||||
|         </request> | ||||
|     </interface> | ||||
| 
 | ||||
|     <interface name="gamma_control" version="1"> | ||||
|         <enum name="error"> | ||||
|             <entry name="invalid_gamma" value="0"/> | ||||
|         </enum> | ||||
| 
 | ||||
|         <request name="destroy" type="destructor"/> | ||||
| 
 | ||||
|         <request name="set_gamma"> | ||||
|             <arg name="red" type="array"/> | ||||
|             <arg name="green" type="array"/> | ||||
|             <arg name="blue" type="array"/> | ||||
|         </request> | ||||
| 
 | ||||
|         <request name="reset_gamma"/> | ||||
| 
 | ||||
|         <event name="gamma_size"> | ||||
|             <arg name="size" type="uint"/> | ||||
|         </event> | ||||
|     </interface> | ||||
| </protocol> | ||||
| @ -1,94 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <protocol name="server_decoration"> | ||||
|   <copyright><![CDATA[ | ||||
|     Copyright (C) 2015 Martin Gräßlin | ||||
| 
 | ||||
|     This program is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU Lesser General Public License as published by | ||||
|     the Free Software Foundation, either version 2.1 of the License, or | ||||
|     (at your option) any later version. | ||||
| 
 | ||||
|     This program is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU Lesser General Public License for more details. | ||||
| 
 | ||||
|     You should have received a copy of the GNU Lesser General Public License | ||||
|     along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
|   ]]></copyright> | ||||
|   <interface  name="org_kde_kwin_server_decoration_manager" version="1"> | ||||
|       <description summary="Server side window decoration manager"> | ||||
|         This interface allows to coordinate whether the server should create | ||||
|         a server-side window decoration around a wl_surface representing a | ||||
|         shell surface (wl_shell_surface or similar). By announcing support | ||||
|         for this interface the server indicates that it supports server | ||||
|         side decorations. | ||||
|       </description> | ||||
|       <request name="create"> | ||||
|         <description summary="Create a server-side decoration object for a given surface"> | ||||
|             When a client creates a server-side decoration object it indicates | ||||
|             that it supports the protocol. The client is supposed to tell the | ||||
|             server whether it wants server-side decorations or will provide | ||||
|             client-side decorations. | ||||
| 
 | ||||
|             If the client does not create a server-side decoration object for | ||||
|             a surface the server interprets this as lack of support for this | ||||
|             protocol and considers it as client-side decorated. Nevertheless a | ||||
|             client-side decorated surface should use this protocol to indicate | ||||
|             to the server that it does not want a server-side deco. | ||||
|         </description> | ||||
|         <arg name="id" type="new_id" interface="org_kde_kwin_server_decoration"/> | ||||
|         <arg name="surface" type="object" interface="wl_surface"/> | ||||
|       </request> | ||||
|       <enum name="mode"> | ||||
|             <description summary="Possible values to use in request_mode and the event mode."/> | ||||
|             <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/> | ||||
|             <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/> | ||||
|             <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/> | ||||
|       </enum> | ||||
|       <event name="default_mode"> | ||||
|           <description summary="The default mode used on the server"> | ||||
|               This event is emitted directly after binding the interface. It contains | ||||
|               the default mode for the decoration. When a new server decoration object | ||||
|               is created this new object will be in the default mode until the first | ||||
|               request_mode is requested. | ||||
| 
 | ||||
|               The server may change the default mode at any time. | ||||
|           </description> | ||||
|           <arg name="mode" type="uint" summary="The default decoration mode applied to newly created server decorations."/> | ||||
|       </event> | ||||
|   </interface> | ||||
|   <interface name="org_kde_kwin_server_decoration" version="1"> | ||||
|       <request name="release" type="destructor"> | ||||
|         <description summary="release the server decoration object"/> | ||||
|       </request> | ||||
|       <enum name="mode"> | ||||
|             <description summary="Possible values to use in request_mode and the event mode."/> | ||||
|             <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/> | ||||
|             <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/> | ||||
|             <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/> | ||||
|       </enum> | ||||
|       <request name="request_mode"> | ||||
|           <description summary="The decoration mode the surface wants to use."/> | ||||
|           <arg name="mode" type="uint" summary="The mode this surface wants to use."/> | ||||
|       </request> | ||||
|       <event name="mode"> | ||||
|           <description summary="The new decoration mode applied by the server"> | ||||
|               This event is emitted directly after the decoration is created and | ||||
|               represents the base decoration policy by the server. E.g. a server | ||||
|               which wants all surfaces to be client-side decorated will send Client, | ||||
|               a server which wants server-side decoration will send Server. | ||||
| 
 | ||||
|               The client can request a different mode through the decoration request. | ||||
|               The server will acknowledge this by another event with the same mode. So | ||||
|               even if a server prefers server-side decoration it's possible to force a | ||||
|               client-side decoration. | ||||
| 
 | ||||
|               The server may emit this event at any time. In this case the client can | ||||
|               again request a different mode. It's the responsibility of the server to | ||||
|               prevent a feedback loop. | ||||
|           </description> | ||||
|           <arg name="mode" type="uint" summary="The decoration mode applied to the surface by the server."/> | ||||
|       </event> | ||||
|   </interface> | ||||
| </protocol> | ||||
| @ -1,18 +0,0 @@ | ||||
| <protocol name="lock"> | ||||
| 
 | ||||
|   <interface name="lock" version="1"> | ||||
|     <description summary="create lock screen UIs"> | ||||
|       The Weston desktop-shell protocol's locking functionality depends more | ||||
|       on the behavior of the compositor than of a screen locking client, so | ||||
|       another protocol is necessary. | ||||
|     </description> | ||||
| 
 | ||||
|     <request name="set_lock_surface"> | ||||
|       <arg name="output" type="object" interface="wl_output"/> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="unlock"/> | ||||
| 
 | ||||
|   </interface> | ||||
| </protocol> | ||||
| @ -1,430 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <protocol name="xdg_shell"> | ||||
| 
 | ||||
|   <copyright> | ||||
|     Copyright © 2008-2013 Kristian Høgsberg | ||||
|     Copyright © 2013      Rafael Antognolli | ||||
|     Copyright © 2013      Jasper St. Pierre | ||||
|     Copyright © 2010-2013 Intel Corporation | ||||
| 
 | ||||
|     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="xdg_shell" version="1"> | ||||
|     <description summary="create desktop-style surfaces"> | ||||
|       This interface is implemented by servers that provide | ||||
|       desktop-style user interfaces. | ||||
| 
 | ||||
|       It allows clients to associate a xdg_surface with | ||||
|       a basic surface. | ||||
|     </description> | ||||
| 
 | ||||
|     <enum name="version"> | ||||
|       <description summary="latest protocol version"> | ||||
| 	The 'current' member of this enum gives the version of the | ||||
| 	protocol.  Implementations can compare this to the version | ||||
| 	they implement using static_assert to ensure the protocol and | ||||
| 	implementation versions match. | ||||
|       </description> | ||||
|       <entry name="current" value="4" summary="Always the latest version"/> | ||||
|     </enum> | ||||
| 
 | ||||
|     <enum name="error"> | ||||
|       <entry name="role" value="0" summary="given wl_surface has another role"/> | ||||
|     </enum> | ||||
| 
 | ||||
|     <request name="use_unstable_version"> | ||||
|       <description summary="enable use of this unstable version"> | ||||
| 	Negotiate the unstable version of the interface.  This | ||||
| 	mechanism is in place to ensure client and server agree on the | ||||
| 	unstable versions of the protocol that they speak or exit | ||||
| 	cleanly if they don't agree.  This request will go away once | ||||
| 	the xdg-shell protocol is stable. | ||||
|       </description> | ||||
|       <arg name="version" type="int"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="get_xdg_surface"> | ||||
|       <description summary="create a shell surface from a surface"> | ||||
| 	Create a shell surface for an existing surface. | ||||
| 
 | ||||
| 	This request gives the surface the role of xdg_surface. If the | ||||
| 	surface already has another role, it raises a protocol error. | ||||
| 
 | ||||
| 	Only one shell or popup surface can be associated with a given | ||||
| 	surface. | ||||
|       </description> | ||||
|       <arg name="id" type="new_id" interface="xdg_surface"/> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="get_xdg_popup"> | ||||
|       <description summary="create a shell surface from a surface"> | ||||
| 	Create a popup surface for an existing surface. | ||||
| 
 | ||||
| 	This request gives the surface the role of xdg_popup. If the | ||||
| 	surface already has another role, it raises a protocol error. | ||||
| 
 | ||||
| 	Only one shell or popup surface can be associated with a given | ||||
| 	surface. | ||||
|       </description> | ||||
|       <arg name="id" type="new_id" interface="xdg_popup"/> | ||||
|       <arg name="surface" type="object" interface="wl_surface"/> | ||||
|       <arg name="parent" type="object" interface="wl_surface"/> | ||||
|       <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/> | ||||
|       <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/> | ||||
|       <arg name="x" type="int"/> | ||||
|       <arg name="y" type="int"/> | ||||
|       <arg name="flags" type="uint"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <event name="ping"> | ||||
|       <description summary="check if the client is alive"> | ||||
|         The ping event asks the client if it's still alive. Pass the | ||||
|         serial specified in the event back to the compositor by sending | ||||
|         a "pong" request back with the specified serial. | ||||
| 
 | ||||
|         Compositors can use this to determine if the client is still | ||||
|         alive. It's unspecified what will happen if the client doesn't | ||||
|         respond to the ping request, or in what timeframe. Clients should | ||||
|         try to respond in a reasonable amount of time. | ||||
|       </description> | ||||
|       <arg name="serial" type="uint" summary="pass this to the callback"/> | ||||
|     </event> | ||||
| 
 | ||||
|     <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" summary="serial of the ping event"/> | ||||
|     </request> | ||||
|   </interface> | ||||
| 
 | ||||
|   <interface name="xdg_surface" version="1"> | ||||
| 
 | ||||
|     <description summary="desktop-style metadata interface"> | ||||
|       An interface that may be implemented by a wl_surface, for | ||||
|       implementations that provide a desktop-style user interface. | ||||
| 
 | ||||
|       It provides requests to treat surfaces like windows, allowing to set | ||||
|       properties like maximized, fullscreen, minimized, and to move and resize | ||||
|       them, and associate metadata like title and app id. | ||||
| 
 | ||||
|       On the server side the object is automatically destroyed when | ||||
|       the related wl_surface is destroyed.  On client side, | ||||
|       xdg_surface.destroy() must be called before destroying | ||||
|       the wl_surface object. | ||||
|     </description> | ||||
| 
 | ||||
|     <request name="destroy" type="destructor"> | ||||
|       <description summary="remove xdg_surface interface"> | ||||
| 	The xdg_surface interface is removed from the wl_surface object | ||||
| 	that was turned into a xdg_surface with | ||||
| 	xdg_shell.get_xdg_surface request. The xdg_surface properties, | ||||
| 	like maximized and fullscreen, are lost. The wl_surface loses | ||||
| 	its role as a xdg_surface. The wl_surface is unmapped. | ||||
|       </description> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="set_parent"> | ||||
|       <description summary="surface is a child of another surface"> | ||||
| 	Child surfaces are stacked above their parents, and will be | ||||
| 	unmapped if the parent is unmapped too. They should not appear | ||||
| 	on task bars and alt+tab. | ||||
|       </description> | ||||
|       <arg name="parent" type="object" interface="wl_surface" allow-null="true"/> | ||||
|     </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> | ||||
| 
 | ||||
|     <request name="set_app_id"> | ||||
|       <description summary="set surface class"> | ||||
| 	Set an id for the surface. | ||||
| 
 | ||||
| 	The app id identifies the general class of applications to which | ||||
| 	the surface belongs. | ||||
| 
 | ||||
| 	It should be the ID that appears in the new desktop entry | ||||
| 	specification, the interface name. | ||||
|       </description> | ||||
|       <arg name="app_id" type="string"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="show_window_menu"> | ||||
|       <description summary="show the window menu"> | ||||
|         Clients implementing client-side decorations might want to show | ||||
|         a context menu when right-clicking on the decorations, giving the | ||||
|         user a menu that they can use to maximize or minimize the window. | ||||
| 
 | ||||
|         This request asks the compositor to pop up such a window menu at | ||||
|         the given position, relative to the parent surface. There are | ||||
|         no guarantees as to what the window menu contains. | ||||
| 
 | ||||
|         Your surface must have focus on the seat passed in to pop up the | ||||
|         window menu. | ||||
|       </description> | ||||
| 
 | ||||
|       <arg name="seat" type="object" interface="wl_seat" summary="the seat to pop the window up on"/> | ||||
|       <arg name="serial" type="uint" summary="serial of the event to pop up the window for"/> | ||||
|       <arg name="x" type="int" summary="the x position to pop up the window menu at"/> | ||||
|       <arg name="y" type="int" summary="the y position to pop up the window menu at"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="move"> | ||||
|       <description summary="start an interactive move"> | ||||
| 	Start a pointer-driven move of the surface. | ||||
| 
 | ||||
| 	This request must be used in response to a button press event. | ||||
| 	The server may ignore move requests depending on the state of | ||||
| 	the surface (e.g. fullscreen or maximized). | ||||
|       </description> | ||||
|       <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/> | ||||
|       <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <enum name="resize_edge"> | ||||
|       <description summary="edge values for resizing"> | ||||
| 	These values are used to indicate which edge of a surface | ||||
| 	is being dragged in a resize operation. The server may | ||||
| 	use this information to adapt its behavior, e.g. choose | ||||
| 	an appropriate cursor image. | ||||
|       </description> | ||||
|       <entry name="none" value="0"/> | ||||
|       <entry name="top" value="1"/> | ||||
|       <entry name="bottom" value="2"/> | ||||
|       <entry name="left" value="4"/> | ||||
|       <entry name="top_left" value="5"/> | ||||
|       <entry name="bottom_left" value="6"/> | ||||
|       <entry name="right" value="8"/> | ||||
|       <entry name="top_right" value="9"/> | ||||
|       <entry name="bottom_right" value="10"/> | ||||
|     </enum> | ||||
| 
 | ||||
|     <request name="resize"> | ||||
|       <description summary="start an interactive resize"> | ||||
| 	Start a pointer-driven resizing of the surface. | ||||
| 
 | ||||
| 	This request must be used in response to a button press event. | ||||
| 	The server may ignore resize requests depending on the state of | ||||
| 	the surface (e.g. fullscreen or maximized). | ||||
|       </description> | ||||
|       <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/> | ||||
|       <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/> | ||||
|       <arg name="edges" type="uint" summary="which edge or corner is being dragged"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <enum name="state"> | ||||
|       <description summary="types of state on the surface"> | ||||
|         The different state values used on the surface. This is designed for | ||||
|         state values like maximized, fullscreen. It is 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. | ||||
| 
 | ||||
|         Desktop environments may extend this enum by taking up a range of | ||||
|         values and documenting the range they chose in this description. | ||||
|         They are not required to document the values for the range that they | ||||
|         chose. Ideally, any good extensions from a desktop environment should | ||||
|         make its way into standardization into this enum. | ||||
| 
 | ||||
|         The current reserved ranges are: | ||||
| 
 | ||||
|         0x0000 - 0x0FFF: xdg-shell core values, documented below. | ||||
|         0x1000 - 0x1FFF: GNOME | ||||
|       </description> | ||||
|       <entry name="maximized" value="1"> | ||||
|         <description summary="the surface is maximized"> | ||||
|         The surface is maximized. The window geometry specified in the configure | ||||
|         event must be obeyed by the client. | ||||
|         </description> | ||||
|       </entry> | ||||
|       <entry name="fullscreen" value="2"> | ||||
|         <description summary="the surface is fullscreen"> | ||||
|         The surface is fullscreen. The window geometry specified in the configure | ||||
|         event must be obeyed by the client. | ||||
|         </description> | ||||
|       </entry> | ||||
|       <entry name="resizing" value="3"> | ||||
|         <description summary="the surface is being resized"> | ||||
|         The surface is being resized. The window geometry specified in the | ||||
|         configure event is a maximum; the client cannot resize beyond it. | ||||
|         Clients that have aspect ratio or cell sizing configuration can use | ||||
|         a smaller size, however. | ||||
|         </description> | ||||
|       </entry> | ||||
|       <entry name="activated" value="4"> | ||||
|         <description summary="the client window is active"> | ||||
|         Client window decorations should be painted as if the window is | ||||
|         active. Do not assume this means that the window actually has | ||||
|         keyboard or pointer focus. | ||||
|         </description> | ||||
|       </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 window geometry | ||||
|         coordinates. The states listed in the event specify how the | ||||
|         width/height arguments should be interpreted. | ||||
| 
 | ||||
|         A client should arrange a new surface, and then send a | ||||
|         ack_configure request with the serial sent in this configure | ||||
|         event before attaching a new surface. | ||||
| 
 | ||||
| 	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="int"/> | ||||
|       <arg name="height" type="int"/> | ||||
|       <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" summary="a serial to configure for"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="set_window_geometry"> | ||||
|       <description summary="set the new window geometry"> | ||||
|         The window geometry of a window is its "visible bounds" from the | ||||
|         user's perspective. Client-side decorations often have invisible | ||||
|         portions like drop-shadows which should be ignored for the | ||||
|         purposes of aligning, placing and constraining windows. | ||||
| 
 | ||||
|         The default value is the full bounds of the surface, including any | ||||
|         subsurfaces. Once the window geometry of the surface is set once, | ||||
|         it is not possible to unset it, and it will remain the same until | ||||
|         set_window_geometry is called again, even if a new subsurface or | ||||
|         buffer is attached. | ||||
| 
 | ||||
|         If responding to a configure event, the window geometry in here | ||||
|         must respect the sizing negotiations specified by the states in | ||||
|         the configure event. | ||||
|       </description> | ||||
|       <arg name="x" type="int"/> | ||||
|       <arg name="y" type="int"/> | ||||
|       <arg name="width" type="int"/> | ||||
|       <arg name="height" type="int"/> | ||||
|     </request> | ||||
| 
 | ||||
|     <request name="set_maximized" /> | ||||
|     <request name="unset_maximized" /> | ||||
| 
 | ||||
|     <request name="set_fullscreen"> | ||||
|       <description summary="set the window as fullscreen on a monitor"> | ||||
| 	Make the surface fullscreen. | ||||
| 
 | ||||
|         You can specify an output that you would prefer to be fullscreen. | ||||
| 	If this value is NULL, it's up to the compositor to choose which | ||||
|         display will be used to map this surface. | ||||
|       </description> | ||||
|       <arg name="output" type="object" interface="wl_output" allow-null="true"/> | ||||
|     </request> | ||||
|     <request name="unset_fullscreen" /> | ||||
| 
 | ||||
|     <request name="set_minimized" /> | ||||
| 
 | ||||
|     <event name="close"> | ||||
|       <description summary="surface wants to be closed"> | ||||
|         The close event is sent by the compositor when the user | ||||
|         wants the surface to be closed. This should be equivalent to | ||||
|         the user clicking the close button in client-side decorations, | ||||
|         if your application has any... | ||||
| 
 | ||||
|         This is only a request that the user intends to close your | ||||
|         window. The client may choose to ignore this request, or show | ||||
|         a dialog to ask the user to save their data... | ||||
|       </description> | ||||
|     </event> | ||||
|   </interface> | ||||
| 
 | ||||
|   <interface name="xdg_popup" version="1"> | ||||
|     <description summary="desktop-style metadata interface"> | ||||
|       An interface that may be implemented by a wl_surface, for | ||||
|       implementations that provide a desktop-style popups/menus. A popup | ||||
|       surface is a transient surface with an added pointer grab. | ||||
| 
 | ||||
|       An existing implicit grab will be changed to owner-events mode, | ||||
|       and the popup grab will continue after the implicit grab ends | ||||
|       (i.e. releasing the mouse button does not cause the popup to be | ||||
|       unmapped). | ||||
| 
 | ||||
|       The popup grab continues until the window is destroyed or a mouse | ||||
|       button is pressed in any other clients window. A click in any of | ||||
|       the clients surfaces is reported as normal, however, clicks in | ||||
|       other clients surfaces will be discarded and trigger the callback. | ||||
| 
 | ||||
|       The x and y arguments specify the locations of the upper left | ||||
|       corner of the surface relative to the upper left corner of the | ||||
|       parent surface, in surface local coordinates. | ||||
| 
 | ||||
|       xdg_popup surfaces are always transient for another surface. | ||||
|     </description> | ||||
| 
 | ||||
|     <request name="destroy" type="destructor"> | ||||
|       <description summary="remove xdg_surface interface"> | ||||
| 	The xdg_surface interface is removed from the wl_surface object | ||||
| 	that was turned into a xdg_surface with | ||||
| 	xdg_shell.get_xdg_surface request. The xdg_surface properties, | ||||
| 	like maximized and fullscreen, are lost. The wl_surface loses | ||||
| 	its role as a xdg_surface. The wl_surface is unmapped. | ||||
|       </description> | ||||
|     </request> | ||||
| 
 | ||||
|     <event name="popup_done"> | ||||
|       <description summary="popup interaction is done"> | ||||
| 	The popup_done event is sent out when a popup grab is broken, | ||||
| 	that is, when the users clicks a surface that doesn't belong | ||||
| 	to the client owning the popup surface. | ||||
|       </description> | ||||
|       <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/> | ||||
|     </event> | ||||
| 
 | ||||
|   </interface> | ||||
| </protocol> | ||||
					Loading…
					
					
				
		Reference in new issue