efl/src/lib/elementary/elm_gesture_layer.h

77 lines
2.8 KiB
C

/**
* @defgroup Elm_Gesture_Layer Gesture Layer
* @ingroup Elementary
*
* @image html gesture_layer_inheritance_tree.png
* @image latex gesture_layer_inheritance_tree.eps
*
* Gesture Layer Usage:
*
* Use Gesture Layer to detect gestures.
* The advantage is that you don't have to implement
* gesture detection, just set callbacks of gesture state.
* By using gesture layer we make standard interface.
*
* In order to use Gesture Layer you start with @ref elm_gesture_layer_add
* with a parent object parameter.
* Next 'activate' gesture layer with a @ref elm_gesture_layer_attach
* call. Usually with same object as target (2nd parameter).
*
* Now you need to tell gesture layer what gestures you follow.
* This is done with @ref elm_gesture_layer_cb_set call.
* By setting the callback you actually saying to gesture layer:
* I would like to know when the gesture @ref Elm_Gesture_Type
* switches to state @ref Elm_Gesture_State.
*
* Next, you need to implement the actual action that follows the input
* in your callback.
*
* Note that if you like to stop being reported about a gesture, just set
* all callbacks referring this gesture to NULL.
* (again with @ref elm_gesture_layer_cb_set)
*
* The information reported by gesture layer to your callback is depending
* on @ref Elm_Gesture_Type :
* @ref Elm_Gesture_Taps_Info is the info reported for tap gestures:
* @ref ELM_GESTURE_N_TAPS, @ref ELM_GESTURE_N_LONG_TAPS,
* @ref ELM_GESTURE_N_DOUBLE_TAPS, @ref ELM_GESTURE_N_TRIPLE_TAPS.
*
* @ref Elm_Gesture_Momentum_Info is info reported for momentum gestures:
* @ref ELM_GESTURE_MOMENTUM.
*
* @ref Elm_Gesture_Line_Info is the info reported for line gestures:
* (this also contains @ref Elm_Gesture_Momentum_Info internal structure)
* @ref ELM_GESTURE_N_LINES, @ref ELM_GESTURE_N_FLICKS.
* Note that we consider a flick as a line-gesture that should be completed
* in flick-time-limit as defined in @ref Config.
*
* @ref Elm_Gesture_Zoom_Info is the info reported for @ref ELM_GESTURE_ZOOM gesture.
*
* @ref Elm_Gesture_Rotate_Info is the info reported for @ref ELM_GESTURE_ROTATE gesture.
*
*
* Gesture Layer Tweaks:
*
* Note that line, flick, gestures can start without the need to remove fingers from surface.
* When user fingers rests on same-spot gesture is ended and starts again when fingers moved.
*
* Setting glayer_continues_enable to false in @ref Config will change this behavior
* so gesture starts when user touches (a *DOWN event) touch-surface
* and ends when no fingers touches surface (a *UP event).
*
* Supported elm_object common APIs.
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
*
* @{
*
*/
#include "elm_gesture_layer_common.h"
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_gesture_layer_legacy.h"
#endif
/**
* @}
*/