summaryrefslogtreecommitdiff
path: root/examples/wayland/custom-extension/protocol/custom.xml
blob: e4aab62626640e86f9831ad55b67779ae49ba1c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<protocol name="custom">

    <copyright>
 Copyright (C) 2015 The Qt Company Ltd.
 SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
    </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>