<protocol name="custom">

    <copyright>
 Copyright (C) 2015 The Qt Company Ltd.
 Contact: http://www.qt.io/licensing/

 This file is part of the examples of the Qt Wayland module

 $QT_BEGIN_LICENSE:BSD$
 You may use this file under the terms of the BSD license as follows:

 "Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:
   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.
   * Neither the name of The Qt Company Ltd nor the names of its
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.


 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

 $QT_END_LICENSE$
    </copyright>

    <interface name="qt_example_extension" version="1">

      <description summary="Example Wayland extension">
        This example shows how to add extra functionality to Wayland
        through an extension. This is the global object of the extension.
      </description>

      <request name="register_surface">
        <description summary="Register a surface with the example extension">
          Inform the compositor that the client has a new surface that is
          covered by the extension.
        </description>

        <arg name="surface" type="object" interface="wl_surface"/>
      </request>

      <request name="bounce">
        <description summary="Move the surface around for a little while">
          The compositor should perform a move animation on the surface.
        </description>
        <arg name="surface" type="object" interface="wl_surface"/>
        <arg name="duration" type="uint" summary="duration in ms"/>
      </request>

      <request name="spin">
        <description summary="Rotate the surface for a little while">
          The compositor should perform a rotating animation on the surface.
        </description>
        <arg name="surface" type="object" interface="wl_surface"/>
        <arg name="duration" type="uint" summary="duration in ms"/>
      </request>

      <event name="close">
        <description summary="close window">
          Ask the client to close the window for the surface.
        </description>
        <arg name="surface" type="object" interface="wl_surface"/>
      </event>

      <event name="set_font_size">
        <description summary="change the font size">
          Ask the client to change the font size on the surface.
        </description>
        <arg name="surface" type="object" interface="wl_surface"/>
        <arg name="pixel_size" type="uint"/>
      </event>

      <enum name="decoration_state">
        <description summary="window decoration state">
          Describes whether window decorations should be shown.
        </description>
        <entry name="hidden" value="0" summary="Decorations are not shown"/>
        <entry name="shown" value="1" summary="Decorations are shown"/>
      </enum>

      <event name="set_window_decoration">
        <description summary="turn window decoration on/off">
          Ask the client to turn window decoration on/off on all surfaces.
        </description>

        <arg name="state" type="uint"/>
      </event>

      <request name="create_local_object">
        <description summary="Create a sily object">
          Create a new object that should be visualized by the compositor
        </description>
        <arg name="id" type="new_id" interface="qt_example_local_object"/>
        <arg name="color" type = "string"/>
        <arg name="text" type = "string"/>
      </request>
    </interface>

    <interface name="qt_example_local_object" version="1">
      <description summary="An object created on the client side">
        This object should have a visual representation in the compositor.
      </description>

      <request name="set_text">
        <description summary="Change the text">
          Tell the compositor that the object's text is changed
        </description>
        <arg name="text" type="string"/>
      </request>

      <event name="clicked">
        <description summary="The object was clicked">
          Notification to the client that the user clicked the representation of
          the object in the compositor.
        </description>

      </event>

    </interface>

</protocol>
