diff options
Diffstat (limited to 'protocol/wayland.xml')
-rw-r--r-- | protocol/wayland.xml | 278 |
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 |