| <?xml version="1.0" encoding="UTF-8"?> | |
| <protocol name="aura_shell"> | |
| <copyright> | |
| Copyright 2017 The Chromium Authors. | |
| Permission is hereby granted, free of charge, to any person obtaining a | |
| copy of this software and associated documentation files (the "Software"), | |
| to deal in the Software without restriction, including without limitation | |
| the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
| and/or sell copies of the Software, and to permit persons to whom the | |
| Software is furnished to do so, subject to the following conditions: | |
| The above copyright notice and this permission notice (including the next | |
| paragraph) shall be included in all copies or substantial portions of the | |
| Software. | |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
| THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
| DEALINGS IN THE SOFTWARE. | |
| </copyright> | |
| <interface name="zaura_shell" version="6"> | |
| <description summary="aura_shell"> | |
| The global interface exposing aura shell capabilities is used to | |
| instantiate an interface extension for a wl_surface object. | |
| This extended interface will then allow the client to use aura shell | |
| specific functionality. | |
| </description> | |
| <enum name="error"> | |
| <entry name="aura_surface_exists" value="0" | |
| summary="the surface already has an aura surface object associated"/> | |
| <entry name="aura_output_exists" value="1" | |
| summary="the output already has an aura output object associated"/> | |
| </enum> | |
| <request name="get_aura_surface"> | |
| <description summary="extend surface interface for aura shell"> | |
| Instantiate an interface extension for the given wl_surface to | |
| provide aura shell functionality. If the given wl_surface is not | |
| associated with a shell surface, the shell_surface_missing protocol | |
| error is raised. | |
| </description> | |
| <arg name="id" type="new_id" interface="zaura_surface" | |
| summary="the new aura surface interface id"/> | |
| <arg name="surface" type="object" interface="wl_surface" | |
| summary="the surface"/> | |
| </request> | |
| <!-- Version 2 additions --> | |
| <request name="get_aura_output" since="2"> | |
| <description summary="extend output interface for aura shell"> | |
| Instantiate an interface extension for the given wl_output to | |
| provide aura shell functionality. | |
| </description> | |
| <arg name="id" type="new_id" interface="zaura_output" | |
| summary="the new aura output interface id"/> | |
| <arg name="output" type="object" interface="wl_output" | |
| summary="the output"/> | |
| </request> | |
| </interface> | |
| <interface name="zaura_surface" version="5"> | |
| <description summary="aura shell interface to a wl_surface"> | |
| An additional interface to a wl_surface object, which allows the | |
| client to access aura shell specific functionality for surface. | |
| </description> | |
| <enum name="frame_type"> | |
| <description summary="different frame types"> | |
| Frame types that can be used to decorate a surface. | |
| </description> | |
| <entry name="none" value="0" summary="no frame"/> | |
| <entry name="normal" value="1" summary="caption with shadow" /> | |
| <entry name="shadow" value="2" summary="shadow only"/> | |
| </enum> | |
| <request name="set_frame"> | |
| <description summary="request a frame for surface"> | |
| Suggests a surface should use a specific frame. | |
| </description> | |
| <arg name="type" type="uint" summary="the new frame type"/> | |
| </request> | |
| <!-- Version 2 additions --> | |
| <request name="set_parent" since="2"> | |
| <description summary="set the parent of this surface"> | |
| Set the "parent" of this surface. "x" and "y" arguments specify the | |
| initial position for surface relative to parent. | |
| </description> | |
| <arg name="parent" type="object" interface="zaura_surface" allow-null="true"/> | |
| <arg name="x" type="int"/> | |
| <arg name="y" type="int"/> | |
| </request> | |
| <!-- Version 3 additions --> | |
| <request name="set_frame_colors" since="3"> | |
| <description summary="set the frame colors of this surface"> | |
| Set the frame colors. | |
| </description> | |
| <arg name="active_color" type="uint" summary="32 bit ARGB color value, not premultiplied"/> | |
| <arg name="inactive_color" type="uint" summary="32 bit ARGB color value, not premultiplied"/> | |
| </request> | |
| <!-- Version 4 additions --> | |
| <request name="set_startup_id" since="4"> | |
| <description summary="set the startup ID of this surface"> | |
| Set the startup ID. | |
| </description> | |
| <arg name="startup_id" type="string" allow-null="true"/> | |
| </request> | |
| <!-- Version 5 additions --> | |
| <request name="set_application_id" since="5"> | |
| <description summary="set the application ID of this surface"> | |
| Set the application ID. | |
| </description> | |
| <arg name="application_id" type="string" allow-null="true"/> | |
| </request> | |
| </interface> | |
| <interface name="zaura_output" version="6"> | |
| <description summary="aura shell interface to a wl_output"> | |
| An additional interface to a wl_output object, which allows the | |
| client to access aura shell specific functionality for output. | |
| </description> | |
| <!-- Version 2 additions --> | |
| <enum name="scale_property" bitfield="true"> | |
| <description summary="scale information"> | |
| These flags describe properties of an output scale. | |
| They are used in the flags bitfield of the scale event. | |
| </description> | |
| <entry name="current" value="0x1" | |
| summary="indicates this is the current scale"/> | |
| <entry name="preferred" value="0x2" | |
| summary="indicates this is the preferred scale"/> | |
| </enum> | |
| <enum name="scale_factor"> | |
| <entry name="0400" value="400"/> | |
| <entry name="0500" value="500"/> | |
| <entry name="0550" value="550"/> | |
| <entry name="0600" value="600"/> | |
| <entry name="0625" value="625"/> | |
| <entry name="0650" value="650"/> | |
| <entry name="0700" value="700"/> | |
| <entry name="0750" value="750"/> | |
| <entry name="0800" value="800"/> | |
| <entry name="0850" value="850"/> | |
| <entry name="0900" value="900"/> | |
| <entry name="0950" value="950"/> | |
| <entry name="1000" value="1000"/> | |
| <entry name="1050" value="1050"/> | |
| <entry name="1100" value="1100"/> | |
| <entry name="1150" value="1150"/> | |
| <entry name="1125" value="1125"/> | |
| <entry name="1200" value="1200"/> | |
| <entry name="1250" value="1250"/> | |
| <entry name="1300" value="1300"/> | |
| <entry name="1400" value="1400"/> | |
| <entry name="1450" value="1450"/> | |
| <entry name="1500" value="1500"/> | |
| <entry name="1600" value="1600"/> | |
| <entry name="1750" value="1750"/> | |
| <entry name="1800" value="1800"/> | |
| <entry name="2000" value="2000"/> | |
| <entry name="2200" value="2200"/> | |
| <entry name="2250" value="2250"/> | |
| <entry name="2500" value="2500"/> | |
| <entry name="2750" value="2750"/> | |
| <entry name="3000" value="3000"/> | |
| <entry name="3500" value="3500"/> | |
| <entry name="4000" value="4000"/> | |
| <entry name="4500" value="4500"/> | |
| <entry name="5000" value="5000"/> | |
| </enum> | |
| <event name="scale" since="2"> | |
| <description summary="advertise available scales for the output"> | |
| The scale event describes an available scale for the output. | |
| The event is sent when binding to the output object and there | |
| will always be one scale, the current scale. The event is sent | |
| again if an output changes scale, for the scale that is now | |
| current. In other words, the current scale is always the last | |
| scale that was received with the current flag set. | |
| </description> | |
| <arg name="flags" type="uint" enum="scale_property" summary="bitfield of scale flags"/> | |
| <arg name="scale" type="uint" enum="scale_factor" summary="output scale"/> | |
| </event> | |
| <!-- Version 5 additions --> | |
| <enum name="connection_type"> | |
| <entry name="unknown" value="0"/> | |
| <entry name="internal" value="1"/> | |
| </enum> | |
| <event name="connection" since="5"> | |
| <description summary="advertise connection for the output"> | |
| The connection event describes how the output is connected. | |
| The event is sent when binding to the output object. | |
| </description> | |
| <arg name="connection" type="uint" enum="connection_type" summary="output connection"/> | |
| </event> | |
| <event name="device_scale_factor" since="5"> | |
| <description summary="advertise device scale factor for the output"> | |
| This event describes the device specific scale factor for the output. | |
| The device specific scale factor is not expected the change during | |
| the lifetime of the output. And it is not limited to an integer value | |
| like the scale factor provided by wl_output interface. The exact | |
| contents scale used by the compositor can be determined by combining | |
| this device scale factor with the current output scale. | |
| The event is sent when binding to the output object. | |
| </description> | |
| <arg name="scale" type="uint" enum="scale_factor" summary="output device scale factor"/> | |
| </event> | |
| </interface> | |
| </protocol> |