GEIS  2.0
Gesture Engine Interface Support
geis.h File Reference

This is the public interface for the GEIS gesture API. More...

#include <geis/geisimpl.h>

Data Structures

class  GeisWinInfo
 Generic display region description block. More...
 
struct  GeisInputFuncs
 Callback functions used to handle changes in the available input devices. More...
 
struct  GeisGestureAttr
 An individual gesture attribute. More...
 
struct  GeisGestureFuncs
 The set of callback functions invoked for various gesture-related events. More...
 

Macros

#define GEIS_VERSION_1_0
 GEIS version macros. More...
 
#define GEIS_VERSION_2_0
 
#define GEIS_FALSE
 
#define GEIS_TRUE
 
#define GEIS_GESTURE_DRAG
 
#define GEIS_GESTURE_PINCH
 
#define GEIS_GESTURE_ROTATE
 
#define GEIS_GESTURE_TAP
 
#define GEIS_GESTURE_TOUCH
 
#define GEIS_GESTURE_FLICK
 
#define GEIS_GESTURE_PRIMITIVE_DRAG
 A translate gesture: dragging, swiping, flicking, moving in a generally linear fashion. More...
 
#define GEIS_GESTURE_PRIMITIVE_PINCH
 A pinch or expand gesture: two or more touch points generally moving toward or away from a common point. More...
 
#define GEIS_GESTURE_PRIMITIVE_ROTATE
 A rotation gesture. More...
 
#define GEIS_GESTURE_PRIMITIVE_TAP
 A tap. More...
 
#define GEIS_GESTURE_PRIMITIVE_TOUCH
 A parenthetical gesture event. More...
 
#define GEIS_GESTURE_ID_FLICK
 
#define GEIS_GESTURE_TYPE_DRAG1
 
#define GEIS_GESTURE_TYPE_DRAG2
 
#define GEIS_GESTURE_TYPE_DRAG3
 
#define GEIS_GESTURE_TYPE_DRAG4
 
#define GEIS_GESTURE_TYPE_DRAG5
 
#define GEIS_GESTURE_TYPE_PINCH1
 
#define GEIS_GESTURE_TYPE_PINCH2
 
#define GEIS_GESTURE_TYPE_PINCH3
 
#define GEIS_GESTURE_TYPE_PINCH4
 
#define GEIS_GESTURE_TYPE_PINCH5
 
#define GEIS_GESTURE_TYPE_ROTATE1
 
#define GEIS_GESTURE_TYPE_ROTATE2
 
#define GEIS_GESTURE_TYPE_ROTATE3
 
#define GEIS_GESTURE_TYPE_ROTATE4
 
#define GEIS_GESTURE_TYPE_ROTATE5
 
#define GEIS_GESTURE_TYPE_TAP1
 
#define GEIS_GESTURE_TYPE_TAP2
 
#define GEIS_GESTURE_TYPE_TAP3
 
#define GEIS_GESTURE_TYPE_TAP4
 
#define GEIS_GESTURE_TYPE_TAP5
 
#define GEIS_GESTURE_TYPE_TOUCH1
 
#define GEIS_GESTURE_TYPE_TOUCH2
 
#define GEIS_GESTURE_TYPE_TOUCH3
 
#define GEIS_GESTURE_TYPE_TOUCH4
 
#define GEIS_GESTURE_TYPE_TOUCH5
 
#define GEIS_GESTURE_TYPE_SYSTEM
 A special gesture type than enabled system-wide gesture priority. More...
 
#define GEIS_GESTURE_TYPE_FLICK1
 
#define GEIS_GESTURE_TYPE_FLICK2
 
#define GEIS_GESTURE_TYPE_FLICK3
 
#define GEIS_GESTURE_TYPE_FLICK4
 
#define GEIS_GESTURE_TYPE_FLICK5
 
#define GEIS_CONFIG_UNIX_FD
 Gets the Unix file descriptor for GEIS events. More...
 
#define GEIS_ALL_INPUT_DEVICES
 
#define GEIS_ALL_GESTURES
 Selects ALL input devices. More...
 
#define GEIS_NO_GESTURE_ID
 
#define GEIS_DEFAULT_EVENT_CALLBACK
 A special constant indicating the use of the default event callback. More...
 
Standard fundamental gesture attributes
#define GEIS_GESTURE_ATTRIBUTE_ANGLE
 Angle covered by a gesture since it has started, in radians, counterclockwise. More...
 
#define GEIS_GESTURE_ATTRIBUTE_ANGLE_DELTA
 Angle covered by a gesture since its last update, in radians, counterclockwise. More...
 
#define GEIS_GESTURE_ATTRIBUTE_ANGULAR_VELOCITY
 
#define GEIS_GESTURE_ATTRIBUTE_BOUNDINGBOX_X1
 
#define GEIS_GESTURE_ATTRIBUTE_BOUNDINGBOX_Y1
 
#define GEIS_GESTURE_ATTRIBUTE_BOUNDINGBOX_X2
 
#define GEIS_GESTURE_ATTRIBUTE_BOUNDINGBOX_Y2
 
#define GEIS_GESTURE_ATTRIBUTE_CHILD_WINDOW_ID
 
#define GEIS_GESTURE_ATTRIBUTE_CENTROID_X
 This attribute provides the X coordinate of the centroid of the non-self-intersecting closed polygon defined by the touch points of the gesture, in device coordinates. More...
 
#define GEIS_GESTURE_ATTRIBUTE_CENTROID_Y
 This attribute provides the Y coordinate of the centroid of the non-self-intersecting closed polygon defined by the touch points of the gesture, in device coordinates. More...
 
#define GEIS_GESTURE_ATTRIBUTE_DELTA_X
 
#define GEIS_GESTURE_ATTRIBUTE_DELTA_Y
 
#define GEIS_GESTURE_ATTRIBUTE_DEVICE_ID
 
#define GEIS_GESTURE_ATTRIBUTE_EVENT_WINDOW_ID
 
#define GEIS_GESTURE_ATTRIBUTE_FOCUS_X
 This attribute provides the X coordinate of the focus point of a gesture, in screen coordinates. More...
 
#define GEIS_GESTURE_ATTRIBUTE_FOCUS_Y
 This attribute provides the Y coordinate of the focus point of a gesture, in screen coordinates. More...
 
#define GEIS_GESTURE_ATTRIBUTE_GESTURE_NAME
 Name of the gesture. More...
 
#define GEIS_GESTURE_ATTRIBUTE_POSITION_X
 This attribute provides the X coordinate of the position of a gesture, in device coordinates. More...
 
#define GEIS_GESTURE_ATTRIBUTE_POSITION_Y
 This attribute provides the Y coordinate of the position of a gesture, in device coordinates. More...
 
#define GEIS_GESTURE_ATTRIBUTE_RADIAL_VELOCITY
 
#define GEIS_GESTURE_ATTRIBUTE_RADIUS_DELTA
 
#define GEIS_GESTURE_ATTRIBUTE_RADIUS
 
#define GEIS_GESTURE_ATTRIBUTE_ROOT_WINDOW_ID
 
#define GEIS_GESTURE_ATTRIBUTE_TAP_TIME
 
#define GEIS_GESTURE_ATTRIBUTE_TIMESTAMP
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCHES
 
#define GEIS_GESTURE_ATTRIBUTE_VELOCITY_X
 
#define GEIS_GESTURE_ATTRIBUTE_VELOCITY_Y
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_0_ID
 This attribute provides the ID of the touch at index0. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_0_X
 This attribute provides the X coordinate of the touch at index0. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_0_Y
 This attribute provides the Y coordinate of the touch at index0. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_1_ID
 This attribute provides the ID of the touch at index1. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_1_X
 This attribute provides the X coordinate of the touch at index1. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_1_Y
 This attribute provides the Y coordinate of the touch at index1. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_2_ID
 This attribute provides the ID of the touch at index2. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_2_X
 This attribute provides the X coordinate of the touch at index2. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_2_Y
 This attribute provides the Y coordinate of the touch at index2. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_3_ID
 This attribute provides the ID of the touch at index3. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_3_X
 This attribute provides the X coordinate of the touch at index3. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_3_Y
 This attribute provides the Y coordinate of the touch at index3. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_4_ID
 This attribute provides the ID of the touch at index4. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_4_X
 This attribute provides the X coordinate of the touch at index4. More...
 
#define GEIS_GESTURE_ATTRIBUTE_TOUCH_4_Y
 This attribute provides the Y coordinate of the touch at index4. More...
 
Standard Initialization Arguments
These initialization arguments are defined by the GEIS v2 specification.
#define GEIS_INIT_SERVICE_PROVIDER
 Enables GEIS to provide a networked service. More...
 
#define GEIS_INIT_TRACK_DEVICES
 Tells GEIS to send input device events. More...
 
#define GEIS_INIT_TRACK_GESTURE_CLASSES
 Tells GEIS to send gesture class events. More...
 
#define GEIS_INIT_SYNCHRONOUS_START
 Performs all setup synchronously: geis_new() will block until all setup has completed successfully or unsuccessfully. More...
 
Vendor-defined Initialization Arguments
These initialization arguments are not a part of the GEIS specification and may change.
#define GEIS_INIT_DBUS_BACKEND
 Uses the DBus back end (default). More...
 
#define GEIS_INIT_GRAIL_BACKEND
 Uses the native grail back end (fallback). More...
 
#define GEIS_INIT_XCB_BACKEND
 Uses the grail-embedded-in-X11 back end. More...
 
#define GEIS_INIT_NO_ATOMIC_GESTURES
 Disables the use of (GEIS v1-style) atomic gestures: only a single gesture is recognized at a time. More...
 
#define GEIS_INIT_SEND_TENTATIVE_EVENTS
 Causes tentative events to be sent. More...
 
#define GEIS_INIT_SEND_SYNCHRONOS_EVENTS
 Causes all gesture events to be sent, even if there is zero apparent time difference between the events. More...
 
Required Configuration Items
These configuration items are defined by the GEIS specification.
#define GEIS_CONFIGURATION_FD
 Gets a Unix file descriptor that will signal the availablility of GEIS events for processing. More...
 
Vendor-defined Configuration Items
These configuration items are not a part of the GEIS specification and may change.
#define GEIS_CONFIG_MAX_EVENTS
 
#define GEIS_CONFIG_ATOMIC_GESTURES
 Indicates if atomic gestures are in use. More...
 
#define GEIS_CONFIG_SEND_TENTATIVE_EVENTS
 See GEIS_INIT_SEND_TENTATIVE_EVENTS. More...
 
#define GEIS_CONFIG_SEND_SYNCHRONOS_EVENTS
 See GEIS_INIT_SEND_SYNCHRONOS_EVENTS. More...
 
#define GEIS_CONFIG_DRAG_THRESHOLD
 Movement threshold for recognizing a DRAG gesture (in meters). More...
 
#define GEIS_CONFIG_DRAG_TIMEOUT
 Timeout for recognizing a DRAG gesture (in milliseconds). More...
 
#define GEIS_CONFIG_PINCH_THRESHOLD
 Movement threshold for recognizing a PINCH gesture (in meters). More...
 
#define GEIS_CONFIG_PINCH_TIMEOUT
 Timeout for recognizing a PINCH gesture (in milliseconds). More...
 
#define GEIS_CONFIG_ROTATE_THRESHOLD
 Movement threshold for recognizing a ROTATE gesture (in meters). More...
 
#define GEIS_CONFIG_ROTATE_TIMEOUT
 Timeout for recognizing a ROTATE gesture (in milliseconds). More...
 
#define GEIS_CONFIG_TAP_THRESHOLD
 Movement threshold for recognizing a TAP gesture (in meters). More...
 
#define GEIS_CONFIG_TAP_TIMEOUT
 Timeout for recognizing a TAP gesture (in milliseconds). More...
 
#define GEIS_CONFIG_NUM_ACTIVE_SUBSCRIPTIONS
 The number of subscriptions currently active in the back end. More...
 
Device Event Attributes
#define GEIS_EVENT_ATTRIBUTE_DEVICE
 The event attribute containing a pointer to a GeisDevice. More...
 
Device Attributes
#define GEIS_DEVICE_ATTRIBUTE_NAME
 The name of the input device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_ID
 The unique integer ID of the device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_TOUCHES
 The maximum number of touches a device is capable of reporting. More...
 
#define GEIS_DEVICE_ATTRIBUTE_DIRECT_TOUCH
 Indicates the device is a direct touch device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_INDEPENDENT_TOUCH
 Indicates the device is an independent touch device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_MIN_X
 The lower bound of the X-axis (nominally horizontal) coordinate values reported by the device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_MAX_X
 The upper bound of the X-axis (nominally horizontal) coordinate values reported by the device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_RES_X
 The resolution of the X-axis (nominally horizontal) coordinate values reported by the device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_MIN_Y
 The lower bound of the Y-axis (nominally vertical) coordinate values reported by the device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_MAX_Y
 The upper bound of the Y-axis (nominally vertical) coordinate values reported by the device. More...
 
#define GEIS_DEVICE_ATTRIBUTE_RES_Y
 The resolution of the Y-axis (nominally vertical) coordinate values reported by the device. More...
 
Gesture Class Event Attributes
#define GEIS_EVENT_ATTRIBUTE_CLASS
 The event attribute containing a pointer to a GeisGestureClass. More...
 
Gesture Class Attributes
#define GEIS_CLASS_ATTRIBUTE_NAME
 The name of the gesture class. More...
 
#define GEIS_CLASS_ATTRIBUTE_ID
 The unique integer ID of the gesture class. More...
 
Region Attributes
These attributes can be used to construct filter terms to restrict a gesture subscription to a particular region.
#define GEIS_REGION_ATTRIBUTE_WINDOWID
 The X11 windowid in which a gesture occurred. More...
 
Region Initialization Arguments
Gesture regions are created to describe a particular display/feedback region. The type of the region can not be changed after creation (just create a new region for that). The types of regions are platform specific and each type may require addition arguments.
The following region initialization argument names are required by the GEIS v2.0 specification.
#define GEIS_REGION_X11_ROOT
 Selects the X11 root window as a region. More...
 
#define GEIS_REGION_X11_WINDOWID
 Selects an X11 window as a region. More...
 
Gesture Frame Event Attributes
A gesture event (GEIS_EVENT_GESTURE_BEGIN, GEIS_EVENT_GESTURE_UPDATE, GEIS_EVENT_GESTURE_END) should have two GEIS_ATTR_TYPE_POINTER attributes, one containing a GeisGroupSet and one containing a GeisTouchSet.

For example: If four fingers are being simultaneously moved over a touchpad or touchscreen surface, Geis could start generating gesture events containing two groups: One group having a single frame from a four-fingers gesture of some class and a second group having two frames, each from a different two-fingers gesture (like one from a Rotate and the other from a Pinch gesture). This means that geis could interpret the movements of those four touch points as both a single four-fingers gesture and as two separate two-fingers gestures.

There can be only a single frame per gesture in a gesture event. I.e. no two frames will return the same GeisGestureId in the same gesture event.

#define GEIS_EVENT_ATTRIBUTE_GROUPSET
 The event attribute containing a pointer to a GeisGroupSet. More...
 
#define GEIS_EVENT_ATTRIBUTE_TOUCHSET
 The event attribute containing a pointer to a GeisTouchSet. More...
 
#define GEIS_EVENT_ATTRIBUTE_CONSTRUCTION_FINISHED
 Event attribute containing a boolean. More...
 
Touch Attributes
Each touch has zero or more attributes associated with it. Differing hardware is capable of reporting differing sets of touch attributes, so there is no guarantee that any or all of the defined touch attributes will bre present.

If the touch comes from a direct device (see GEIS_DEVICE_ATTRIBUTE_DIRECT_TOUCH) its position (x and y attributes) will be in window coordinates, otherwise it will be in the input device's own coordinate system.

#define GEIS_TOUCH_ATTRIBUTE_ID
 Identifies the touch. More...
 
#define GEIS_TOUCH_ATTRIBUTE_X
 The X coordinate of the touch. More...
 
#define GEIS_TOUCH_ATTRIBUTE_Y
 The Y coordinate of the touch. More...
 

Typedefs

typedef enum GeisStatus GeisStatus
 Errors returned from calls. More...
 
typedef enum GeisAttrType GeisAttrType
 Attribute data types. More...
 
typedef struct GeisWinInfo GeisWinInfo
 
typedef unsigned int GeisInputDeviceId
 
typedef void(* GeisInputCallback) (void *cookie, GeisInputDeviceId device_id, void *attrs)
 Prototype for input device callback functions. More...
 
typedef struct GeisInputFuncs GeisInputFuncs
 Callback functions used to handle changes in the available input devices. More...
 
typedef unsigned int GeisGestureType
 
typedef unsigned int GeisGestureId
 
typedef struct GeisGestureAttr GeisGestureAttr
 An individual gesture attribute. More...
 
typedef void(* GeisGestureCallback) (void *cookie, GeisGestureType gesture_type, GeisGestureId gesture_id, GeisSize attr_count, GeisGestureAttr *attrs)
 A callback used for different gesture events. More...
 
typedef struct GeisGestureFuncs GeisGestureFuncs
 The set of callback functions invoked for various gesture-related events. More...
 
typedef enum _GeisEventType GeisEventType
 
typedef void(* GeisEventCallback) (Geis geis, GeisEvent event, void *context)
 The application callback type for the event dispatcher. More...
 
typedef enum _GeisFilterFacility GeisFilterFacility
 Indicates the type of filter. More...
 
typedef enum _GeisFilterOperation GeisFilterOperation
 Indicates the type of filter operation. More...
 
typedef int GeisSubscriptionFlags
 

Enumerations

enum  GeisStatus {
  GEIS_STATUS_SUCCESS, GEIS_STATUS_CONTINUE, GEIS_STATUS_EMPTY, GEIS_STATUS_NOT_SUPPORTED,
  GEIS_BAD_ARGUMENT, GEIS_UNKNOWN_ERROR, GEIS_STATUS_BAD_ARGUMENT, GEIS_STATUS_UNKNOWN_ERROR
}
 Errors returned from calls. More...
 
enum  GeisAttrType {
  GEIS_ATTR_TYPE_UNKNOWN, GEIS_ATTR_TYPE_BOOLEAN, GEIS_ATTR_TYPE_FLOAT, GEIS_ATTR_TYPE_INTEGER,
  GEIS_ATTR_TYPE_POINTER, GEIS_ATTR_TYPE_STRING
}
 Attribute data types. More...
 
enum  _GeisEventType {
  GEIS_EVENT_DEVICE_AVAILABLE, GEIS_EVENT_DEVICE_UNAVAILABLE, GEIS_EVENT_CLASS_AVAILABLE, GEIS_EVENT_CLASS_CHANGED,
  GEIS_EVENT_CLASS_UNAVAILABLE, GEIS_EVENT_GESTURE_BEGIN, GEIS_EVENT_GESTURE_UPDATE, GEIS_EVENT_GESTURE_END,
  GEIS_EVENT_TENTATIVE_BEGIN, GEIS_EVENT_TENTATIVE_UPDATE, GEIS_EVENT_TENTATIVE_END, GEIS_EVENT_INIT_COMPLETE,
  GEIS_EVENT_USER_DEFINED, GEIS_EVENT_ERROR
}
 
enum  _GeisFilterFacility { GEIS_FILTER_DEVICE, GEIS_FILTER_CLASS, GEIS_FILTER_REGION, GEIS_FILTER_SPECIAL }
 Indicates the type of filter. More...
 
enum  _GeisFilterOperation {
  GEIS_FILTER_OP_EQ, GEIS_FILTER_OP_NE, GEIS_FILTER_OP_GT, GEIS_FILTER_OP_GE,
  GEIS_FILTER_OP_LT, GEIS_FILTER_OP_LE
}
 Indicates the type of filter operation. More...
 
enum  { GEIS_SUBSCRIPTION_NONE, GEIS_SUBSCRIPTION_GRAB, GEIS_SUBSCRIPTION_CONT }
 

Functions

GeisStatus geis_configuration_supported (GeisInstance geis_instance, int configuration_item)
 Indicates if a particular feaure is supported. More...
 
GeisStatus geis_configuration_get_value (GeisInstance geis_instance, int configuration_item, void *value)
 Gets a feature configuration value. More...
 
GeisStatus geis_configuration_set_value (GeisInstance geis_instance, int configuration_item, void *value)
 Sets a feature configuration value. More...
 
GeisStatus geis_event_dispatch (GeisInstance geis_instance)
 Dispatches geis events until there are no further events available. More...
 
GeisSize geis_error_count (Geis geis)
 Gets the number of status codes in the error stack. More...
 
GeisStatus geis_error_code (Geis geis, GeisSize index)
 Gets the indicated status code from the error stack. More...
 
GeisString geis_error_message (Geis geis, GeisSize index)
 Gets the localized error message, if any, associated with the indicated error. More...
 
GeisStatus geis_get_configuration (Geis geis, GeisString configuration_item_name, void *configuration_item_value)
 Gets a feature configuration value. More...
 
GeisStatus geis_set_configuration (Geis geis, GeisString configuration_item_name, void *configuration_item_value)
 Sets a feature configuration value. More...
 
GeisStatus geis_input_devices (GeisInstance geis_instance, GeisInputFuncs *func, void *cookie)
 Registers a callback to receive information on input devices. More...
 
GeisStatus geis_subscribe (GeisInstance geis_instance, GeisInputDeviceId *input_list, const char **gesture_list, GeisGestureFuncs *funcs, void *cookie)
 Registers a callback to receive gesture events. More...
 
GeisStatus geis_unsubscribe (GeisInstance geis_instance, GeisGestureType *gesture_list)
 Unsubscribes to one or more gestures. More...
 
GeisString geis_attr_name (GeisAttr attr)
 An opaque type that encapsulates a GEIS attribute. More...
 
GeisAttrType geis_attr_type (GeisAttr attr)
 Gets the type of an attribute value. More...
 
GeisBoolean geis_attr_value_to_boolean (GeisAttr attr)
 Gets the value of an attribute as a GeisBoolean. More...
 
GeisFloat geis_attr_value_to_float (GeisAttr attr)
 Gets the value of an attribute as a GeisFloat. More...
 
GeisInteger geis_attr_value_to_integer (GeisAttr attr)
 Gets the value of an attribute as a GeisInteger. More...
 
GeisPointer geis_attr_value_to_pointer (GeisAttr attr)
 Gets the value of an attribute as a GeisPointer. More...
 
GeisString geis_attr_value_to_string (GeisAttr attr)
 Gets the value of an attribute as a GeisString. More...
 
void geis_register_event_callback (Geis geis, GeisEventCallback event_callback, void *context)
 Registers an event-handler callback. More...
 
GeisStatus geis_dispatch_events (Geis geis)
 Pumps the GEIS event loop. More...
 
GeisStatus geis_next_event (Geis geis, GeisEvent *event)
 Retrieves the next queued GEIS event. More...
 
void geis_register_device_callback (Geis geis, GeisEventCallback event_callback, void *context)
 
GeisDevice geis_get_device (Geis geis, GeisInteger device_id)
 Gets a cached device description for an identified device. More...
 
void geis_register_class_callback (Geis geis, GeisEventCallback event_callback, void *context)
 Registers a callback to receive gesture class change notifications. More...
 
GeisStatus geis_subscription_get_configuration (GeisSubscription subscription, GeisString config_item_name, GeisPointer config_item_value)
 Gets a subscription-level configuration item. More...
 
GeisStatus geis_subscription_set_configuration (GeisSubscription subscription, GeisString config_item_name, GeisPointer config_item_value)
 Sets a subscription-level configuration item. More...
 
GeisStatus geis_gesture_accept (Geis geis, GeisGroup group, GeisGestureId gesture_id)
 Marks a gesture as accepted. More...
 
GeisStatus geis_gesture_reject (Geis geis, GeisGroup group, GeisGestureId gesture_id)
 Marks a gesture as rejected. More...
 

Detailed Description

This is the public interface for the GEIS gesture API.

Copyright 2010-2013 Canonical Ltd.

This library is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU Lesser General Public License as published by the Free Software Foundation.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 US

Macro Definition Documentation

#define GEIS_GESTURE_ATTRIBUTE_ANGLE

Angle covered by a gesture since it has started, in radians, counterclockwise.

Its value ranges from -pi to pi.

#define GEIS_GESTURE_ATTRIBUTE_ANGLE_DELTA

Angle covered by a gesture since its last update, in radians, counterclockwise.

#define GEIS_GESTURE_ATTRIBUTE_CENTROID_X

This attribute provides the X coordinate of the centroid of the non-self-intersecting closed polygon defined by the touch points of the gesture, in device coordinates.

#define GEIS_GESTURE_ATTRIBUTE_CENTROID_Y

This attribute provides the Y coordinate of the centroid of the non-self-intersecting closed polygon defined by the touch points of the gesture, in device coordinates.

#define GEIS_GESTURE_ATTRIBUTE_FOCUS_X

This attribute provides the X coordinate of the focus point of a gesture, in screen coordinates.

For direct devices (GEIS_DEVICE_ATTRIBUTE_DIRECT_TOUCH is GEIS_TRUE) it's the centroid point. For indirect devices it's the pointer/cursor position.

#define GEIS_GESTURE_ATTRIBUTE_FOCUS_Y

This attribute provides the Y coordinate of the focus point of a gesture, in screen coordinates.

For direct devices (GEIS_DEVICE_ATTRIBUTE_DIRECT_TOUCH is GEIS_TRUE) it's the centroid point. For indirect devices it's the pointer/cursor position.

#define GEIS_GESTURE_ATTRIBUTE_GESTURE_NAME

Name of the gesture.

This attribute is filled only when using GEIS v1 API (the simplified interface). On GEIS v2 this attribute has been replaced by the concept of gesture classes. Use geis_frame_is_class() instead.

#define GEIS_GESTURE_ATTRIBUTE_POSITION_X

This attribute provides the X coordinate of the position of a gesture, in device coordinates.

It's the same as the centroid of a gesture. See GEIS_GESTURE_ATTRIBUTE_CENTROID_X.

#define GEIS_GESTURE_ATTRIBUTE_POSITION_Y

This attribute provides the Y coordinate of the position of a gesture, in device coordinates.

It's the same as the centroid of a gesture. See GEIS_GESTURE_ATTRIBUTE_CENTROID_Y.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_0_ID

This attribute provides the ID of the touch at index0.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_0_X

This attribute provides the X coordinate of the touch at index0.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_0_Y

This attribute provides the Y coordinate of the touch at index0.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_1_ID

This attribute provides the ID of the touch at index1.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_1_X

This attribute provides the X coordinate of the touch at index1.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_1_Y

This attribute provides the Y coordinate of the touch at index1.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_2_ID

This attribute provides the ID of the touch at index2.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_2_X

This attribute provides the X coordinate of the touch at index2.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_2_Y

This attribute provides the Y coordinate of the touch at index2.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_3_ID

This attribute provides the ID of the touch at index3.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_3_X

This attribute provides the X coordinate of the touch at index3.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_3_Y

This attribute provides the Y coordinate of the touch at index3.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_4_ID

This attribute provides the ID of the touch at index4.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_4_X

This attribute provides the X coordinate of the touch at index4.

Only used by GEIS v1 API.

#define GEIS_GESTURE_ATTRIBUTE_TOUCH_4_Y

This attribute provides the Y coordinate of the touch at index4.

Only used by GEIS v1 API.

#define GEIS_VERSION_1_0

GEIS version macros.

These macros can be tested at compile time to query for support of various features.