| <?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="12"> |
| <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> |
| |
| <!-- Version 11 additions --> |
| |
| <enum name="layout_mode"> |
| <description summary="the layout mode"> |
| Specifies the server's window layout mode. |
| </description> |
| <entry name="windowed" value="1" summary="multiple windows"/> |
| <entry name="tablet" value="2" summary="restricted mode for tablet"/> |
| </enum> |
| |
| <event name="layout_mode" since="11"> |
| <description summary="sends the layout_mode"> |
| Sends the layout_mode used by the server. |
| </description> |
| <arg name="layout_mode" type="uint" summary="layout_mode enum"/> |
| </event> |
| </interface> |
| |
| <interface name="zaura_surface" version="12"> |
| <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> |
| |
| <!-- Version 7 additions --> |
| |
| <request name="set_client_surface_id" since="7"> |
| <description summary="set the client surface ID of this surface"> |
| Deprecated. Please use set_client_surface_str_id instead. |
| Set the identifier of the surface assigned by the client. |
| </description> |
| <arg name="client_surface_id" type="int" /> |
| </request> |
| |
| <!-- Version 8 additions --> |
| |
| <enum name="occlusion_change_reason"> |
| <description summary="occlusion change reason"> |
| Enum describing why an occlusion change happened. An occlusion change as a |
| result of a user action could include things like the user moving a window, |
| changing occlusion, or opening/closing a window, changing the occlusion. |
| </description> |
| <entry name="user_action" value="1" summary="occlusion changed as a result of a user action"/> |
| </enum> |
| |
| <request name="set_occlusion_tracking" since="8"> |
| <description summary="set tracked occlusion region"> |
| Sets occlusion tracking on this surface. The client will be updated with a |
| new occlusion fraction when the amount of occlusion of this surface changes. |
| </description> |
| </request> |
| |
| <request name="unset_occlusion_tracking" since="8"> |
| <description summary="unset tracked occlusion region"> |
| Unsets occlusion tracking for this surface. |
| </description> |
| </request> |
| |
| <event name="occlusion_changed" since="8"> |
| <description summary="Notifies on an occlusion change"> |
| Notifies when there is a change in the amount this surface is occluded. |
| The occlusion update is sent as a fixed point number from 0 to 1, representing |
| the proportion of occlusion. |
| </description> |
| <arg name="occlusion_fraction" type="fixed"/> |
| <arg name="occlusion_reason" type="uint"/> |
| </event> |
| |
| <!-- Version 9 additions --> |
| |
| <request name="activate" since="9"> |
| <description summary="Indicate that this window wants to be the active window"> |
| Make this the active window. This usually implies something like |
| restacking this surface to the foreground. The compositor is free to |
| ignore this request if it deems the client to be misbehaving. Typically |
| this request will only be honoured in response to some user driven |
| event, such as executing an application or opening a file in a window |
| that already exists. |
| </description> |
| </request> |
| |
| <request name="draw_attention" since="9"> |
| <description summary="Indicate that this window wants some of the user's attention"> |
| Draw attention to this surface in a way that does not change the user's |
| focus. This usually means animating window decorations or taskbar icons. |
| The compositor can still ignore this request if it deems fit, but unlike |
| draw_focus, these requests are expected to come from background tasks, |
| and are more likely to be honoured. |
| </description> |
| </request> |
| |
| <!-- Version 10 additions --> |
| |
| <enum name="fullscreen_mode"> |
| <description |
| summary="Specifies the behavior of the surface in fullscreen."> |
| Possible windowing system behaviors if this surface were to go |
| fullscreen. |
| </description> |
| <entry |
| name="immersive" |
| value="0" |
| summary="user can access system UIs such as the shelf and window frame |
| by pointing to, or swiping over, the screen edge"/> |
| <entry |
| name="plain" |
| value="1" |
| summary="user cannot access system UIs using mouse/touches"/> |
| </enum> |
| |
| <request name="set_fullscreen_mode" since="10"> |
| <description summary="Sets the behavior of the surface in fullscreen."> |
| Suggests how the windowing system should behave if this surface were |
| to go fullscreen. Does not make the surface fullscreen. |
| |
| Typically the default mode is "immersive". |
| </description> |
| <arg name="mode" type="uint" enum="fullscreen_mode"/> |
| </request> |
| |
| <!-- Version 12 additions --> |
| |
| <request name="set_client_surface_str_id" since="12"> |
| <description summary="set the client surface ID of this surface"> |
| Set the identifier of the surface assigned by the client. |
| </description> |
| <arg name="client_surface_id" type="string" /> |
| </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> |