You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
444 lines
17 KiB
444 lines
17 KiB
<?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="18">
|
|
<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>
|
|
|
|
<!-- Version 14 additions -->
|
|
|
|
<event name="bug_fix" since="14">
|
|
<description summary="sends a bug fix ID">
|
|
Sends a monorail ID of a bug fixed on the exo server that clients can
|
|
use to gate functionality.
|
|
</description>
|
|
<arg name="id" type="uint" summary="ID of a single bug fix"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="zaura_surface" version="18">
|
|
<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>
|
|
|
|
<!-- Version 15 additions -->
|
|
|
|
<request name="set_server_start_resize" since="15">
|
|
<description summary="request a server-side shadow for surface">
|
|
Suggests a surface to have client-side decoration, but
|
|
server-side decides when and where to start the resize. The server may also
|
|
apply visual effects to indicate that the resize operation is ongoing.
|
|
</description>
|
|
</request>
|
|
|
|
<!-- Version 16 additions -->
|
|
|
|
<enum name="snap_direction">
|
|
<description summary="surface snap directions">
|
|
Surface snap directions.
|
|
</description>
|
|
<entry name="none" value="0" summary=""/>
|
|
<entry name="left" value="1" summary=""/>
|
|
<entry name="right" value="2" summary=""/>
|
|
</enum>
|
|
|
|
<request name="intent_to_snap" since="16">
|
|
<description summary="client intents to snap the surface.">
|
|
Notify (or inform) the server the client's intent to snap the window.
|
|
To inform it's no longer willing to snap, send 'none'.
|
|
</description>
|
|
<arg name="direction" type="uint" enum="snap_direction"/>
|
|
</request>
|
|
|
|
<request name="set_snap_left" since="16">
|
|
<description summary="snap the surface to the left.">
|
|
Request that surface is snapped to the left.
|
|
</description>
|
|
</request>
|
|
|
|
<request name="set_snap_right" since="16">
|
|
<description summary="snap the surface to the right.">
|
|
Request that surface is snapped to the right.
|
|
</description>
|
|
</request>
|
|
|
|
<request name="unset_snap" since="16">
|
|
<description summary="Unset the surface snap.">
|
|
Request that surface resets snapping.
|
|
</description>
|
|
</request>
|
|
|
|
<!-- Version 17 additions -->
|
|
|
|
<event name="lock_frame_normal" since="17">
|
|
<description summary="Notify the client that server intent to lock window in normal or restore state">
|
|
Notifies the client to lock window in normal or restore state. When
|
|
window is locked, the window frame should look like it is in restored
|
|
state, but actually isn't. Locking happends while dragging a maximized
|
|
window.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="unlock_frame_normal" since="17">
|
|
<description summary="Notify the client that server intent to unlock window's normal or restore state">
|
|
Notifies the client to unlock window if it is previously locked.
|
|
Unlocking happends while dragging a maximized window.
|
|
</description>
|
|
</event>
|
|
|
|
<!-- Version 18 additions -->
|
|
<request name="set_window_session_id" since="18">
|
|
<description summary="set surface window session id">
|
|
Set window session id to the surface.
|
|
</description>
|
|
<arg name="id" type="int" summary="window session id"/>
|
|
</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>
|