wayland-protocols/org-kde-kwin-server-decoration-manager.xml
author Sam Lantinga <slouken@libsdl.org>
Thu, 23 May 2019 14:19:00 -0700
changeset 12756 4116bf232fe7
parent 12367 8256aaaafe54
permissions -rw-r--r--
Added a function to get the current Android SDK version at runtime
icculus@12367
     1
<?xml version="1.0" encoding="UTF-8"?>
icculus@12367
     2
<protocol name="server_decoration">
icculus@12367
     3
  <copyright><![CDATA[
icculus@12367
     4
    Copyright (C) 2015 Martin Gräßlin
icculus@12367
     5
icculus@12367
     6
    This program is free software: you can redistribute it and/or modify
icculus@12367
     7
    it under the terms of the GNU Lesser General Public License as published by
icculus@12367
     8
    the Free Software Foundation, either version 2.1 of the License, or
icculus@12367
     9
    (at your option) any later version.
icculus@12367
    10
icculus@12367
    11
    This program is distributed in the hope that it will be useful,
icculus@12367
    12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
icculus@12367
    13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
icculus@12367
    14
    GNU Lesser General Public License for more details.
icculus@12367
    15
icculus@12367
    16
    You should have received a copy of the GNU Lesser General Public License
icculus@12367
    17
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
icculus@12367
    18
  ]]></copyright>
icculus@12367
    19
  <interface  name="org_kde_kwin_server_decoration_manager" version="1">
icculus@12367
    20
      <description summary="Server side window decoration manager">
icculus@12367
    21
        This interface allows to coordinate whether the server should create
icculus@12367
    22
        a server-side window decoration around a wl_surface representing a
icculus@12367
    23
        shell surface (wl_shell_surface or similar). By announcing support
icculus@12367
    24
        for this interface the server indicates that it supports server
icculus@12367
    25
        side decorations.
icculus@12367
    26
      </description>
icculus@12367
    27
      <request name="create">
icculus@12367
    28
        <description summary="Create a server-side decoration object for a given surface">
icculus@12367
    29
            When a client creates a server-side decoration object it indicates
icculus@12367
    30
            that it supports the protocol. The client is supposed to tell the
icculus@12367
    31
            server whether it wants server-side decorations or will provide
icculus@12367
    32
            client-side decorations.
icculus@12367
    33
icculus@12367
    34
            If the client does not create a server-side decoration object for
icculus@12367
    35
            a surface the server interprets this as lack of support for this
icculus@12367
    36
            protocol and considers it as client-side decorated. Nevertheless a
icculus@12367
    37
            client-side decorated surface should use this protocol to indicate
icculus@12367
    38
            to the server that it does not want a server-side deco.
icculus@12367
    39
        </description>
icculus@12367
    40
        <arg name="id" type="new_id" interface="org_kde_kwin_server_decoration"/>
icculus@12367
    41
        <arg name="surface" type="object" interface="wl_surface"/>
icculus@12367
    42
      </request>
icculus@12367
    43
      <enum name="mode">
icculus@12367
    44
            <description summary="Possible values to use in request_mode and the event mode."/>
icculus@12367
    45
            <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/>
icculus@12367
    46
            <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/>
icculus@12367
    47
            <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/>
icculus@12367
    48
      </enum>
icculus@12367
    49
      <event name="default_mode">
icculus@12367
    50
          <description summary="The default mode used on the server">
icculus@12367
    51
              This event is emitted directly after binding the interface. It contains
icculus@12367
    52
              the default mode for the decoration. When a new server decoration object
icculus@12367
    53
              is created this new object will be in the default mode until the first
icculus@12367
    54
              request_mode is requested.
icculus@12367
    55
icculus@12367
    56
              The server may change the default mode at any time.
icculus@12367
    57
          </description>
icculus@12367
    58
          <arg name="mode" type="uint" summary="The default decoration mode applied to newly created server decorations."/>
icculus@12367
    59
      </event>
icculus@12367
    60
  </interface>
icculus@12367
    61
  <interface name="org_kde_kwin_server_decoration" version="1">
icculus@12367
    62
      <request name="release" type="destructor">
icculus@12367
    63
        <description summary="release the server decoration object"/>
icculus@12367
    64
      </request>
icculus@12367
    65
      <enum name="mode">
icculus@12367
    66
            <description summary="Possible values to use in request_mode and the event mode."/>
icculus@12367
    67
            <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/>
icculus@12367
    68
            <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/>
icculus@12367
    69
            <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/>
icculus@12367
    70
      </enum>
icculus@12367
    71
      <request name="request_mode">
icculus@12367
    72
          <description summary="The decoration mode the surface wants to use."/>
icculus@12367
    73
          <arg name="mode" type="uint" summary="The mode this surface wants to use."/>
icculus@12367
    74
      </request>
icculus@12367
    75
      <event name="mode">
icculus@12367
    76
          <description summary="The new decoration mode applied by the server">
icculus@12367
    77
              This event is emitted directly after the decoration is created and
icculus@12367
    78
              represents the base decoration policy by the server. E.g. a server
icculus@12367
    79
              which wants all surfaces to be client-side decorated will send Client,
icculus@12367
    80
              a server which wants server-side decoration will send Server.
icculus@12367
    81
icculus@12367
    82
              The client can request a different mode through the decoration request.
icculus@12367
    83
              The server will acknowledge this by another event with the same mode. So
icculus@12367
    84
              even if a server prefers server-side decoration it's possible to force a
icculus@12367
    85
              client-side decoration.
icculus@12367
    86
icculus@12367
    87
              The server may emit this event at any time. In this case the client can
icculus@12367
    88
              again request a different mode. It's the responsibility of the server to
icculus@12367
    89
              prevent a feedback loop.
icculus@12367
    90
          </description>
icculus@12367
    91
          <arg name="mode" type="uint" summary="The decoration mode applied to the surface by the server."/>
icculus@12367
    92
      </event>
icculus@12367
    93
  </interface>
icculus@12367
    94
</protocol>