diff options
| author | Jonas Ådahl <jadahl@gmail.com> | 2015-10-09 11:42:11 +0800 | 
|---|---|---|
| committer | Jonas Ådahl <jadahl@gmail.com> | 2015-10-09 11:42:11 +0800 | 
| commit | a24f0ff63e55027637d81b28486dd4e6884b11f0 (patch) | |
| tree | e90dae0105dc58ee920f9969d49b03333c8e807e /unstable | |
| parent | 7b966956f7ab47707264ce30724a0a2ecd558044 (diff) | |
| download | wayland-protocols-a24f0ff63e55027637d81b28486dd4e6884b11f0.tar.xz | |
Add unstable pointer gesture protocol
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Diffstat (limited to 'unstable')
| -rw-r--r-- | unstable/pointer-gestures/pointer-gestures-unstable-v1.xml | 176 | 
1 files changed, 176 insertions, 0 deletions
| diff --git a/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml b/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml new file mode 100644 index 0000000..f7c7790 --- /dev/null +++ b/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml @@ -0,0 +1,176 @@ +<protocol name="pointer_gestures_unstable_v1"> +  <interface name="_wl_pointer_gestures" version="1"> +    <description summary="touchpad gestures"> +      A global interface to provide semantic touchpad gestures for a given +      pointer. + +      Two gestures are currently supported: swipe and zoom/rotate. +      All gestures follow a three-stage cycle: begin, update, end and +      are identified by a unique id. + +      Warning! The protocol described in this file is experimental. Each +      version of this protocol should be considered incompatible with any +      other version, and a client binding to a version different to the one +      advertised will be terminated. Once the protocol is declared stable, +      compatibility is guaranteed, the '_' prefix will be removed from the +      name and the version will be reset to 1. +    </description> + +    <enum name="error"> +      <entry name="version_mismatch" value="0"/> +    </enum> + +    <request name="get_swipe_gesture"> +      <description summary="get swipe gesture"> +	Create a swipe gesture object. See the +	wl_pointer_gesture_swipe interface for details. +      </description> +      <arg name="id" type="new_id" interface="_wl_pointer_gesture_swipe"/> +      <arg name="pointer" type="object" interface="wl_pointer"/> +    </request> + +    <request name="get_pinch_gesture"> +      <description summary="get pinch gesture"> +	Create a pinch gesture object. See the +	wl_pointer_gesture_pinch interface for details. +      </description> +      <arg name="id" type="new_id" interface="_wl_pointer_gesture_pinch"/> +      <arg name="pointer" type="object" interface="wl_pointer"/> +    </request> +  </interface> + +  <interface name="_wl_pointer_gesture_swipe" version="1"> +    <description summary="a swipe gesture object"> +      A swipe gesture object notifies a client about a multi-finger swipe +      gesture detected on an indirect input device such as a touchpad. +      The gesture is usually initiated by multiple fingers moving in the +      same direction but once initiated the direction may change. +      The precise conditions of when such a gesture is detected are +      implementation-dependent. + +      A gesture consists of three stages: begin, update (optional) and end. +      There cannot be multiple simultaneous pinch or swipe gestures on a +      same pointer/seat, how compositors prevent these situations is +      implementation-dependent. + +      A gesture may be cancelled by the compositor or the hardware. +      Clients should not consider performing permanent or irreversible +      actions until the end of a gesture has been received. +    </description> + +    <request name="destroy" type="destructor"> +      <description summary="destroy the pointer swipe gesture object"/> +    </request> + +    <event name="begin"> +      <description summary="multi-finger swipe begin"> +	This event is sent when a multi-finger swipe gesture is detected +	on the device. +      </description> +      <arg name="serial" type="uint"/> +      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> +      <arg name="surface" type="object" interface="wl_surface"/> +      <arg name="fingers" type="uint" summary="number of fingers"/> +    </event> + +    <event name="update"> +      <description summary="multi-finger swipe motion"> +	This event is sent when a multi-finger swipe gesture changes the +	position of the logical center. + +	The dx and dy coordinates are relative coordinates of the logical +	center of the gesture compared to the previous event. +      </description> +      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> +      <arg name="dx" type="fixed" summary="delta x coordinate in surface coordinate space"/> +      <arg name="dy" type="fixed" summary="delta y coordinate in surface coordinate space"/> +    </event> + +    <event name="end"> +      <description summary="multi-finger swipe end"> +	This event is sent when a multi-finger swipe gesture ceases to +	be valid. This may happen when one or more finger is lifted or +	the gesture is cancelled. + +	When a gesture is cancelled, the client should undo state changes +	caused by this gesture. What causes a gesture to be cancelled is +	implementation-dependent. +      </description> +      <arg name="serial" type="uint"/> +      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> +      <arg name="cancelled" type="int" summary="1 if the gesture was cancelled, 0 otherwise"/> +    </event> +  </interface> + +  <interface name="_wl_pointer_gesture_pinch" version="1"> +    <description summary="a pinch gesture object"> +      A pinch gesture object notifies a client about a multi-finger pinch +      gesture detected on an indirect input device such as a touchpad. +      The gesture is usually initiated by multiple fingers moving towards +      each other or away from each other, or by two or more fingers rotating +      around a logical center of gravity.  The precise conditions of when +      such a gesture is detected are implementation-dependent. + +      A gesture consists of three stages: begin, update (optional) and end. +      There cannot be multiple simultaneous pinch or swipe gestures on a +      same pointer/seat, how compositors prevent these situations is +      implementation-dependent. + +      A gesture may be cancelled by the compositor or the hardware. +      Clients should not consider performing permanent or irreversible +      actions until the end of a gesture has been received. +    </description> + +    <request name="destroy" type="destructor"> +      <description summary="destroy the pinch gesture object"/> +    </request> + +    <event name="begin"> +      <description summary="multi-finger pinch begin"> +	This event is sent when a multi-finger pinch gesture is detected +	on the device. +      </description> +      <arg name="serial" type="uint"/> +      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> +      <arg name="surface" type="object" interface="wl_surface"/> +      <arg name="fingers" type="uint" summary="number of fingers"/> +    </event> + +    <event name="update"> +      <description summary="multi-finger pinch motion"> +	This event is sent when a multi-finger pinch gesture changes the +	position of the logical center, the rotation or the relative scale. + +	The dx and dy coordinates are relative coordinates in the +	surface coordinate space of the logical center of the gesture. + +	The scale factor is an absolute scale compared to the +	pointer_gesture_pinch.begin event, e.g. a scale of 2 means the fingers +	are now twice as far apart as on pointer_gesture_pinch.begin. + +	The rotation is the relative angle in degrees clockwise compared to the previous +	pointer_gesture_pinch.begin or pointer_gesture_pinch.update event. +      </description> +      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> +      <arg name="dx" type="fixed" summary="delta x coordinate in surface coordinate space"/> +      <arg name="dy" type="fixed" summary="delta y coordinate in surface coordinate space"/> +      <arg name="scale" type="fixed" summary="scale relative to the initial finger position"/> +      <arg name="rotation" type="fixed" summary="angle in degrees cw relative to the previous event"/> +    </event> + +    <event name="end"> +      <description summary="multi-finger pinch end"> +	This event is sent when a multi-finger pinch gesture ceases to +	be valid. This may happen when one or more finger is lifted or +	the gesture is cancelled. + +	When a gesture is cancelled, the client should undo state changes +	caused by this gesture. What causes a gesture to be cancelled is +	implementation-dependent. +      </description> +      <arg name="serial" type="uint"/> +      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> +      <arg name="cancelled" type="int" summary="1 if the gesture was cancelled, 0 otherwise"/> +    </event> +  </interface> +</protocol> | 
