<protocol name="surface_extension">

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

 This file is part of the plugins of the Qt Toolkit.

 $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_surface_extension" version="1">
        <request name="get_extended_surface">
            <arg name="id" type="new_id" interface="qt_extended_surface"/>
            <arg name="surface" type="object" interface="wl_surface"/>
        </request>
    </interface>

    <interface name="qt_extended_surface" version="1">
        <event name="onscreen_visibility">
	    <arg name="visible" type="int"/>
	</event>

        <event name="set_generic_property">
            <arg name="name" type="string"/>
            <arg name="value" type="array"/>
        </event>

        <event name="close">
        </event>

        <request name="update_generic_property">
            <arg name="name" type="string"/>
            <arg name="value" type="array"/>
        </request>

        <enum name="orientation">
            <entry name="PrimaryOrientation" value="0"/>
            <entry name="PortraitOrientation" value="1"/>
            <entry name="LandscapeOrientation" value="2"/>
            <entry name="InvertedPortraitOrientation" value="4"/>
            <entry name="InvertedLandscapeOrientation" value="8"/>
        </enum>

        <request name="set_content_orientation_mask">
            <arg name="orientation" type="int"/>
        </request>

        <enum name="windowflag">
            <entry name="OverridesSystemGestures" value="1"/>
            <entry name="StaysOnTop" value="2"/>
            <entry name="BypassWindowManager" value="4"/>
        </enum>

        <request name="set_window_flags">
            <arg name="flags" type="int"/>
        </request>

        <request name="raise">
        </request>

        <request name="lower">
        </request>

    </interface>
</protocol>
