<?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="10">
    <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="10">
    <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">
	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 -->

    <request name="set_fullscreen_mode" since="10">
      <description summary="Specifies the behavior of the surface in fullscreen.">
        Specifies how the OS will behave if this surface later goes fullscreen.
        Does not make the surface fullscreen.

        Typically the default mode is "immersive", in which the user can access
        the shelf by pointing to, or swiping over, the screen edge. In "plain"
        mode this functionality is disabled.
      </description>
      <arg name="mode" type="uint" enum="fullscreen_mode"/>
    </request>

    <enum name="fullscreen_mode">
      <entry name="immersive" value="0"/>
      <entry name="plain" value="1"/>
    </enum>
  </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>
