summaryrefslogtreecommitdiff
path: root/protocol/wayland.xml
diff options
context:
space:
mode:
Diffstat (limited to 'protocol/wayland.xml')
-rw-r--r--protocol/wayland.xml278
1 files changed, 278 insertions, 0 deletions
diff --git a/protocol/wayland.xml b/protocol/wayland.xml
new file mode 100644
index 0000000..84398ac
--- /dev/null
+++ b/protocol/wayland.xml
@@ -0,0 +1,278 @@
+<protocol name="wayland">
+
+ <interface name="display" version="1">
+ <request name="sync">
+ <arg name="key" type="uint"/>
+ </request>
+
+ <request name="frame">
+ <arg name="key" type="uint"/>
+ </request>
+
+ <event name="invalid_object">
+ <arg name="object_id" type="uint"/>
+ </event>
+
+ <event name="invalid_method">
+ <arg name="object_id" type="uint"/>
+ <arg name="opcode" type="uint"/>
+ </event>
+
+ <event name="no_memory"/>
+
+ <event name="global">
+ <arg name="id" type="new_id" interface="object"/>
+ <arg name="name" type="string"/>
+ <arg name="version" type="uint"/>
+ </event>
+
+ <event name="range">
+ <arg name="base" type="uint"/>
+ </event>
+
+ <event name="sync">
+ <arg name="key" type="uint"/>
+ </event>
+
+ <event name="frame">
+ <arg name="key" type="uint"/>
+ <arg name="time" type="uint"/>
+ </event>
+ </interface>
+
+ <interface name="compositor" version="1">
+ <request name="create_surface">
+ <arg name="id" type="new_id" interface="surface"/>
+ </request>
+ </interface>
+
+ <interface name="drm" version="1">
+ <!-- dri2 auth and create buffer -->
+ <request name="authenticate">
+ <arg name="id" type="uint"/>
+ </request>
+
+ <request name="create_buffer">
+ <arg name="id" type="new_id" interface="buffer"/>
+ <arg name="name" type="uint"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ <arg name="stride" type="uint"/>
+ <arg name="visual" type="object" interface="visual"/>
+ </request>
+
+ <event name="device">
+ <arg name="name" type="string"/>
+ </event>
+
+ <event name="authenticated"/>
+ </interface>
+
+ <interface name="shm" version="1">
+ <request name="create_buffer">
+ <arg name="id" type="new_id" interface="buffer"/>
+ <arg name="fd" type="fd"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ <arg name="stride" type="uint"/>
+ <arg name="visual" type="object" interface="visual"/>
+ </request>
+ </interface>
+
+ <interface name="buffer" version="1">
+ <request name="destroy" type="destructor"/>
+ </interface>
+
+ <interface name="shell" version="1">
+ <request name="move">
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="input_device" type="object" interface="input_device"/>
+ <arg name="time" type="uint"/>
+ </request>
+
+ <request name="resize">
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="input_device" type="object" interface="input_device"/>
+ <arg name="time" type="uint"/>
+ <!-- edges is an enum, need to get the values in here -->
+ <arg name="edges" type="uint"/>
+ </request>
+
+ <request name="create_drag">
+ <arg name="id" type="new_id" interface="drag"/>
+ </request>
+
+ <event name="configure">
+ <arg name="time" type="uint"/>
+ <!-- Same as edges except also move (16) -->
+ <arg name="type" type="uint"/>
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </event>
+ </interface>
+
+ <interface name="drag" version="1">
+ <!-- Add an offered mime type. Can be called several times to
+ offer multiple types, but must be called before 'activate'. -->
+ <request name="offer">
+ <arg name="type" type="string"/>
+ </request>
+
+ <request name="activate">
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="input_device" type="object" interface="input_device"/>
+ <arg name="time" type="uint"/>
+ </request>
+
+ <!-- Destroy the drag and cancel the session. -->
+ <request name="destroy" type="destructor"/>
+
+ <!-- Sent when a target accepts pointer_focus or motion events.
+ If a target does not accept any of the offered types, type is
+ NULL -->
+ <event name="target">
+ <arg name="mime_type" type="string"/>
+ </event>
+
+ <!-- Sent when the drag is finished. The final mime type is that
+ of the last target event. If that was NULL, no drag target
+ was valid when the drag finished, fd is undefined and the
+ source should not send data. The event is also sent in case
+ a drag source tries to activate a drag after the grab was
+ released, in which case mime_type will also be NULL. -->
+ <event name="finish">
+ <arg name="fd" type="fd"/>
+ </event>
+ </interface>
+
+
+ <interface name="drag_offer" version="1">
+ <!-- Call to accept the offer of the given type -->
+ <request name="accept">
+ <arg name="time" type="uint"/>
+ <arg name="type" type="string"/>
+ </request>
+
+ <!-- Called to initiate the drag finish sequence. Sends the pipe
+ fd to the compositor, which forwards it to the source in the
+ 'finish' event -->
+ <request name="receive">
+ <arg name="fd" type="fd"/>
+ </request>
+
+ <!-- Sent before the pointer_focus event to announce the types
+ offered. One event per offered mime type. -->
+ <event name="offer">
+ <arg name="type" type="string"/>
+ </event>
+
+ <!-- Similar to device::pointer_focus. Sent to potential target
+ surfaces to offer drag data. If the device leaves the
+ window, the drag stops or the originator cancels the drag,
+ this event is sent with the NULL surface, at which point the
+ drag object may no longer be valid. -->
+ <event name="pointer_focus">
+ <arg name="time" type="uint"/>
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="surface_x" type="int"/>
+ <arg name="surface_y" type="int"/>
+ </event>
+
+ <!-- Similar to device::motion. Sent to potential target surfaces
+ as the drag pointer moves around in the surface. -->
+ <event name="motion">
+ <arg name="time" type="uint"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="surface_x" type="int"/>
+ <arg name="surface_y" type="int"/>
+ </event>
+
+ <!-- Sent to indicate that the drag is finishing. The last
+ motion/pointer_focus event gives the location of the drop.
+ Target must respond with the 'receive' request, which sends
+ an fd to the source for writing the drag data. -->
+ <event name="drop"/>
+ </interface>
+
+ <interface name="surface" version="1">
+ <request name="destroy" type="destructor"/>
+
+ <request name="attach">
+ <arg name="buffer" type="object" interface="buffer"/>
+ </request>
+
+ <request name="map">
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="damage">
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+ </interface>
+
+ <interface name="input_device" version="1">
+ <request name="attach">
+ <arg name="time" type="uint"/>
+ <arg name="buffer" type="object" interface="buffer"/>
+ <arg name="hotspot_x" type="int"/>
+ <arg name="hotspot_y" type="int"/>
+ </request>
+
+ <event name="motion">
+ <arg name="time" type="uint"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="surface_x" type="int"/>
+ <arg name="surface_y" type="int"/>
+ </event>
+
+ <event name="button">
+ <arg name="time" type="uint"/>
+ <arg name="button" type="uint"/>
+ <arg name="state" type="uint"/>
+ </event>
+
+ <event name="key">
+ <arg name="time" type="uint"/>
+ <arg name="key" type="uint"/>
+ <arg name="state" type="uint"/>
+ </event>
+
+ <event name="pointer_focus">
+ <arg name="time" type="uint"/>
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="surface_x" type="int"/>
+ <arg name="surface_y" type="int"/>
+ </event>
+
+ <event name="keyboard_focus">
+ <arg name="time" type="uint"/>
+ <arg name="surface" type="object" interface="surface"/>
+ <arg name="keys" type="array"/>
+ </event>
+ </interface>
+
+ <interface name="output" version="1">
+ <event name="geometry">
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </event>
+ </interface>
+
+ <interface name="visual" version="1">
+
+</protocol> \ No newline at end of file