summaryrefslogtreecommitdiffstats
path: root/src/extensions/qt-shell-unstable-v1.xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/extensions/qt-shell-unstable-v1.xml')
-rw-r--r--src/extensions/qt-shell-unstable-v1.xml243
1 files changed, 243 insertions, 0 deletions
diff --git a/src/extensions/qt-shell-unstable-v1.xml b/src/extensions/qt-shell-unstable-v1.xml
new file mode 100644
index 000000000..900173577
--- /dev/null
+++ b/src/extensions/qt-shell-unstable-v1.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="qt_shell_unstable_v1">
+ <copyright>
+ Copyright (C) 2021 The Qt Company Ltd.
+ SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+ </copyright>
+
+
+ <interface name="zqt_shell_surface_v1" version="1">
+
+ <description summary="create fully compliant surfaces for use with Qt applications">
+ The qt_shell_surface interface is part of a shell extension which allows clients to
+ access all windowing system features in Qt. These include mechanisms that may only be
+ advisable for trusted applications, and not for arbitrary third-party applications. The
+ qt_shell_surface provides an interface to windowing system features for a surface.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the qt_shell_surface">
+ Destroys the qt_shell_surface object.
+ </description>
+ </request>
+
+ <event name="resize">
+ <description summary="suggest a new size for the window">
+ This event suggests a size for the window. This can be one of multiple configuration
+ events grouped together by a serial number. The client should store them until the
+ corresponding configure event is received. The suggested configuration is not effective
+ before the client has responded with an ack_configure request with the same serial number.
+ This allows the server to group together reposition and resize events to avoid stuttering
+ in updates.
+ </description>
+ <arg name="serial" type="uint" summary="the serial of the configuration" />
+ <arg name="width" type="int" summary="the suggested width of the window" />
+ <arg name="height" type="int" summary="the suggested height of the window" />
+ </event>
+
+ <event name="set_position">
+ <description summary="informs of a new position for the window">
+ This event informs the client that the position of the window is about to change.
+ This can be one of multiple configuration events grouped together by a serial number. The
+ client should store them until the corresponding configure event is received. The suggested
+ configuration is not effective before the client has responded with an ack_configure request
+ with the same serial number. This allows the server to group together reposition and resize
+ events to avoid stuttering in updates.
+ </description>
+ <arg name="serial" type="uint" summary="the serial of the configuration" />
+ <arg name="x" type="int" summary="the suggested horizontal position of the window" />
+ <arg name="y" type="int" summary="the suggested vertical position of the window" />
+ </event>
+
+ <enum name="window_state">
+ <entry name="no_state" value="0"/>
+ <entry name="minimized" value="1"/>
+ <entry name="maximized" value="2"/>
+ <entry name="fullscreen" value="4"/>
+ </enum>
+ <event name="set_window_state">
+ <description summary="suggest a new state for the window">
+ This event informs the client that the state of the window is about to change.
+ This can be one of multiple configuration events grouped together by a serial number. The
+ client should store them until the corresponding configure event is received. The suggested
+ configuration is not effective before the client has responded with an ack_configure request
+ with the same serial number. This allows the server to group together reposition and resize
+ events to avoid stuttering in updates.
+ </description>
+ <arg name="serial" type="uint" summary="the serial of the configuration" />
+ <arg name="state" type="uint" summary="a combination of the flags in the window_state enum" />
+ </event>
+
+ <event name="configure">
+ <description summary="commits a series of configuration events">
+ After sending one or more configuration events, the server sends a configure event with
+ the same serial to trigger the necessary updates on the client side. When the client has
+ made these changes, it should send an ack_configure request for the corresponding serial to
+ inform the server that the new configuration is valid.
+ </description>
+ <arg name="serial" type="uint"/>
+ </event>
+
+ <event name="set_frame_margins">
+ <description summary="informs of the frame margins of the window">
+ This event informs the client how much of the window geometry is reserved for decorations.
+ When a resize configuration is received, the frame margins must be subtracted from the size
+ to find the appropriate size of the surface used for application content. State changes can
+ trigger updates to frame margins, for instance if the window switches between windowed and
+ fullscreen modes.
+ </description>
+ <arg name="left" type="uint" summary="the left frame margin" />
+ <arg name="right" type="uint" summary="the right frame margin" />
+ <arg name="top" type="uint" summary="the top frame margin" />
+ <arg name="bottom" type="uint" summary="the bottom frame margin" />
+ </event>
+
+ <event name="close">
+ <description summary="closes the window">
+ The server sends a close event to instruct the window to close itself gracefully. This could
+ for instance be triggered by user interaction, when clicking on the close button in the
+ window decorations.
+ </description>
+ </event>
+
+ <enum name="capabilities">
+ <entry name="interactive_move" value="1" />
+ <entry name="interactive_resize" value="2" />
+ </enum>
+ <event name="set_capabilities">
+ <description summary="informs the client of the server's capabilities">
+ This event informs the client of which capabilities are available on the server-side. See
+ the capabilities enum for possible flags.
+ </description>
+ <arg name="capabilities" type="uint" summary="a mask of flags from the capabilities enum" />
+ </event>
+
+ <request name="reposition">
+ <description summary="requests a new position for the window">
+ A client can issue this to request a new position for the window. If the request is granted,
+ the server will respond with a configuration event.
+ </description>
+ <arg name="x" type="int" summary="the requested horizontal position of the window" />
+ <arg name="y" type="int" summary="the requested vertical position of the window" />
+ </request>
+
+ <request name="request_activate">
+ <description summary="requests that the window becomes active">
+ This requests that the window becomes active. The server may respond by giving keyboard
+ focus to the window. Only a single window may be active at any given time.
+ </description>
+ </request>
+
+ <request name="set_size">
+ <description summary="informs that the shell surface size has changed">
+ The client issues the set_size request when the window has been resized.
+ </description>
+ <arg name="width" type="int" summary="the new width of the window" />
+ <arg name="height" type="int" summary="the new height of the window" />
+ </request>
+
+ <request name="set_minimum_size">
+ <description summary="informs of the minimum size hint of the window">
+ The client issues this request to inform the server of the minimum size of the window. The
+ server should not attempt to resize the window below this size.
+ </description>
+ <arg name="width" type="int" summary="the minimum width of the window" />
+ <arg name="height" type="int" summary="the minimum height of the window" />
+ </request>
+
+ <request name="set_maximum_size">
+ <description summary="informs of the maximum size hint of the window">
+ The client issues this request to inform the server of the maximum size of the window. The
+ server should not attempt to resize the window above this size.
+ </description>
+ <arg name="width" type="int" summary="the maximum width of the window" />
+ <arg name="height" type="int" summary="the maximum height of the window" />
+ </request>
+
+ <request name="set_window_title">
+ <description summary="informs of the title of the window">
+ This request is issued to inform the server of the title of the window.
+ </description>
+ <arg name="window_title" type="string" summary="the title of the window" />
+ </request>
+
+ <request name="set_window_flags">
+ <description summary="informs of the flags of the window">
+ The client issues this request to inform the server of the current window flags set on
+ the window
+ </description>
+ <arg name="flags" type="uint" summary="values defined by Qt::WindowFlags"/>
+ </request>
+
+ <request name="start_system_resize">
+ <description summary="starts a system resize">
+ This request is triggered when an application calls QWindow::startSystemResize() and should
+ trigger interactive resizing on the server-side. Typical behavior is to have the selected
+ edge follow the mouse.
+ </description>
+ <arg name="serial" type="uint" summary="serial of the pointer event that triggered the resize."/>
+ <arg name="edge" type="uint" summary="values defined by Qt::Edges"/>
+ </request>
+
+ <request name="start_system_move">
+ <description summary="starts a system resize">
+ This request is triggered when an application calls QWindow::startSystemMove() and should
+ trigger interactive repositioning on the server-side. Typical behavior is to have the
+ window follow the mouse.
+ </description>
+ <arg name="serial" type="uint" summary="Serial of the pointer event that triggered the move."/>
+ </request>
+
+ <request name="change_window_state">
+ <description summary="requests a new window state">
+ This requests the server to update the state of the window. The server may respond with
+ a new configure event bundle that reflects all the changes in position, size and state
+ that occurred.
+ </description>
+ <arg name="state" type="uint" summary="a combinaion of the flags in the window_state enum" />
+ </request>
+
+ <request name="raise">
+ <description summary="raises the window">
+ This requests that the window is brought to the top of the window stack, so that it is
+ showing on top of all other windows.
+ </description>
+ </request>
+
+ <request name="lower">
+ <description summary="lowers the window">
+ This requests that the window is brought to the bottom of the window stack, so that it is
+ showing below all other windows.
+ </description>
+ </request>
+
+ <request name="ack_configure">
+ <description summary="acknowledges a given configure event">
+ This acknowledges that the given configure event bundle has been received and that the
+ necessary changes have been applied.
+ </description>
+ <arg name="serial" type="uint" summary="the serial of the configure event" />
+ </request>
+
+ </interface>
+
+ <interface name="zqt_shell_v1" version="1">
+ <description summary="interface for create qt_shell_surface objects">
+ This interface provides a way to request qt_shell_surface objects that correspond to
+ wl_surfaces.
+ </description>
+ <request name="surface_create">
+ <description summary="creates a new qt_shell_surface object">
+ Creates a qt_shell_surface object that corresponds to a surface. If the surface is already
+ assigned a different role, this will issue a protocol error (see the error enum)
+ </description>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="id" type="new_id" interface="zqt_shell_surface_v1"/>
+ </request>
+
+ <enum name="error">
+ <entry name="role" value="0" summary="wl_surface already has a different role"/>
+ </enum>
+ </interface>
+
+</protocol>