wl-mitm/proto/kde-screen-edge-v1.xml
Peter Cai 76f4ae4a73 Include all known protocols from wayland-explorer
Also adjust the build scripts so that we don't just export one big Rust
file...
2025-03-02 18:19:23 -05:00

113 lines
4.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<protocol name="kde_screen_edge_v1">
<copyright>
SPDX-FileCopyrightText: 2023 Vlad Zahorodnii
SPDX-License-Identifier: MIT-CMU
</copyright>
<interface name="kde_screen_edge_manager_v1" version="1">
<description summary="screen edge manager">
This interface allows clients to associate actions with screen edges. For
example, showing a surface by moving the pointer to a screen edge.
Potential ways to trigger the screen edge are subject to compositor
policies. As an example, the compositor may consider the screen edge to be
triggered if the pointer hits its associated screen border. Other ways may
include using touchscreen or touchpad gestures.
Warning! The protocol described in this file is a desktop environment
implementation detail. Regular clients must not use this protocol.
Backward incompatible changes may be added without bumping the major
version of the extension.
</description>
<enum name="error">
<entry name="invalid_border" value="0"
summary="the specified border value is invalid"/>
<entry name="invalid_role" value="1"
summary="the surface has invalid role"/>
<entry name="already_constructed" value="2"
summary="the surface already has a screen edge"/>
</enum>
<request name="destroy" type="destructor">
<description summary="destroy the screen edge manager">
Destroy the screen edge manager. This doesn't destroy objects created
with this manager.
</description>
</request>
<enum name="border">
<description summary="screen border">
These values describe possible screen borders.
</description>
<entry name="top" value="1" summary="top screen edge"/>
<entry name="bottom" value="2" summary="bottom screen edge"/>
<entry name="left" value="3" summary="left screen edge"/>
<entry name="right" value="4" summary="right screen edge"/>
</enum>
<request name="get_auto_hide_screen_edge">
<description summary="create an auto hide edge">
Create a new auto hide screen edge object associated with the specified
surface and the border.
Creating a kde_auto_hide_screen_edge_v1 object does not change the
visibility of the surface. The kde_auto_hide_screen_edge_v1.activate
request must be issued in order to hide the surface.
The "border" argument must be a valid enum entry, otherwise the
invalid_border protocol error is raised.
The invalid_role protocol error will be raised if the specified surface
does not have layer_surface role.
</description>
<arg name="id" type="new_id" interface="kde_auto_hide_screen_edge_v1"
summary="the new screen edge"/>
<arg name="border" type="uint" enum="border"
summary="the associated screen border"/>
<arg name="surface" type="object" interface="wl_surface"
summary="the surface"/>
</request>
</interface>
<interface name="kde_auto_hide_screen_edge_v1" version="1">
<description summary="auto hide screen edge">
The auto hide screen edge object allows to hide the surface and make it
visible by triggering the screen edge. The screen edge is inactive and
the surface is visible by default.
This interface can be used to implement user interface elements such as
auto-hide panels or docks.
kde_auto_hide_screen_edge_v1.activate activates the screen edge and makes
the surface hidden. The surface can be made visible by triggering the
screen edge or calling kde_auto_hide_screen_edge_v1.deactivate.
If the screen edge has been triggered, it won't be re-activated again.
Another kde_auto_hide_screen_edge_v1.activate request must be made by the
client to activate the screen edge.
</description>
<request name="destroy" type="destructor">
<description summary="destroy the auto hide screen edge object">
Destroy the auto hide screen edge object. If the screen edge is active,
it will be deactivated and the surface will be made visible.
</description>
</request>
<request name="deactivate">
<description summary="deactivate the screen edge">
Deactivate the screen edge. The surface will be made visible.
</description>
</request>
<request name="activate">
<description summary="activate the screen edge">
Activate the screen edge. The surface will be hidden until the screen
edge is triggered.
</description>
</request>
</interface>
</protocol>