On Mon, Aug 16, 2010 at 05:13:20PM +0200, ext Chase Douglas wrote:
>
> The X Gesture Extension
> Version 1.0
>
> Chase Douglas
> [email protected]
> Canonical, Ltd.
>
> ********************************************************************************
> ********************************************************************************
> **************************
> ***************************
> ************************** DRAFT PROPOSAL (v1)
> ***************************
> **************************
> ***************************
> ********************************************************************************
> ********************************************************************************
>
>
> 1. Introduction
>
> The X Gesture Extension is a mechanism to provide the following:
> - Interface for X clients to register and receive gesture primitive events
> - Interface for an X client to act as a gesture engine
>
> Gestures may be seen as logical groupings of multitouch input events. Thus,
> this extension is dependent on the X Input Extension version 2.1, which
> implements multitouch input support.
>
> ❧❧❧❧❧❧❧❧❧❧❧
>
> 2. Notations used in this document
>
> Notation for requests:
> ┌───
> Name of request
> name of request field: type of request field
> name of request field: type of request field
> ▶
> name of reply field: type of reply field
> └───
>
> Notation for events:
> ┌───
> Name of event
> name of field: type of field
> name of field: type of field
> └───
>
> Complex fields are specified in the following notation:
> name of field: COMPLEXFIELDTYPE
> or, if multiple of these fields exist:
> name of field: LISTofCOMPLEXFIELDTYPE
>
> COMPLEXFIELDTYPE: { name of subfield: type of subfield,
> name of subfield: type of subfield }
>
> ❧❧❧❧❧❧❧❧❧❧❧
> 3. Data types
>
> DEVICE { DEVICEID, AllDevices }
> A DEVICE specifies either an X Input DEVICEID or AllDevices.
>
> DEVICEID { CARD16 }
> A DEVICEID is a numerical ID for an X input device currently available
> in the server. The server may re-use a device ID after a device's
> removal. The device IDs 0 and 1 are reserved.
> AllDevices ........ 0
>
> GESTUREID { CARD16 }
> A GESTUREID is a numerical ID for an X Gesture type currently
> available
> in the server. The server may re-use a gesture ID if available gesture
> types change.
>
> GESTUREFLAG { MUTEX }
> A flag telling the server to not propagate gestures to child clients
> when a gesture type in the associated mask is set. The gesture will
> only
> be sent to the registering client.
> When registering for gestures, a client using this flag may not listen
> for gesture IDs that any other client has registered for with the
> MUTEX
> flag.
>
> GESTUREMASK
> A GESTUREMASK is a binary mask defined as (1 << gesture ID). A
> SETofGESTUREMASK is a binary OR of zero or more GESTUREMASK.
>
> GESTUREPROP { property: ATOM
> property_type: ATOM }
> A GESTUREPROP is the definition of a single property of a gesture. The
> property field specifies a label for the gesture. The property_type
> field specifies the data type of the property. For example, the
> property
> type may be the atom representing "FLOAT" for an IEEE 754 32-bit
> representation of a floating point number. Where applicable, both the
> property and the type should conform to the standard gesture
> definitions.
>
> EVENTRANGE { start: CARD16
> end: CARD16 }
> An EVENTRANGE specifies a range of event sequence numbers,
> inclusively.
>
> ❧❧❧❧❧❧❧❧❧❧❧
> 3. Gesture Primitives and Events
>
> The XInput protocol through version 2.0 supports single touch input devices.
> Beginning with version 2.1, XInput will support multitouch input devices. The
> protocol extension provides a mechansim for selection and propagation of
> multitouch events to windows they occur within. The selection and propagation
> is performed per touch; if a user touches a parent window and a child window
> with separate touches simultaneously, and both windows have input events
> selected for, the touch events will be sent to their respective windows. This
> functionality is useful for general multitouch events, but is ill-suited for
> user interface paradigms that require groupings of touches to be interpreted
> as
> a single unit.
>
> The X Gesture extension aims to provide for selection and propagation of
> gesture
> primitives. Gesture primitives can be best thought of as fundamental
> multitouch
> input groupings that convey specific meaning. Gesture primitives comprise
> events
> such as pans, pinches, and rotatation. Primitives are also defined by the
> number
^^^^^^^^^^
typo
nitpicking: why call this work as a new extension? Should be inside Xi 2.1
(which could be bumped maybe to 3) given the strict dependency and relation?
Anyway, the work looks promising. Congrats!
Tiago
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel