From f683f07d5ed3a01e8a2093b1a6c7d9d77b69b53d Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Wed, 12 Dec 2012 09:13:32 +0000 Subject: [PATCH] Gesture layer APIs added to access internal variables of the specific data of the object Signed-off-by: Daniel Zaoui SVN revision: 80742 --- legacy/elementary/src/lib/elm_gesture_layer.c | 195 +++++++++++++++- legacy/elementary/src/lib/elm_gesture_layer.h | 220 ++++++++++++++++++ 2 files changed, 409 insertions(+), 6 deletions(-) diff --git a/legacy/elementary/src/lib/elm_gesture_layer.c b/legacy/elementary/src/lib/elm_gesture_layer.c index 3c22571301..950f61ef5d 100644 --- a/legacy/elementary/src/lib/elm_gesture_layer.c +++ b/legacy/elementary/src/lib/elm_gesture_layer.c @@ -367,6 +367,7 @@ struct _Elm_Gesture_Layer_Smart_Data unsigned int flick_time_limit_ms; double long_tap_start_timeout; Eina_Bool glayer_continues_enable; + double double_tap_timeout; double zoom_step; double rotate_step; @@ -1785,12 +1786,16 @@ _tap_gesture_test(Evas_Object *obj, pe_list = _pointer_event_record (st, pe_list, pe, sd, event_info, event_type); - if ((!sd->gest_taps_timeout) && - (_elm_config->glayer_double_tap_timeout > 0.0)) - sd->gest_taps_timeout = - ecore_timer_add(_elm_config->glayer_double_tap_timeout, - _multi_tap_timeout, gesture->obj); - else if (sd->gest_taps_timeout) + if (!sd->gest_taps_timeout) + { + if (sd->double_tap_timeout > 0.0) + { + sd->gest_taps_timeout = + ecore_timer_add(sd->double_tap_timeout, + _multi_tap_timeout, gesture->obj); + } + } + else ecore_timer_reset(sd->gest_taps_timeout); /* This is the first mouse down we got */ @@ -3606,6 +3611,7 @@ _elm_gesture_layer_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) /* FIXME: Hack to get around old configs - if too small, enlarge. */ if (_elm_config->glayer_double_tap_timeout < 0.00001) _elm_config->glayer_double_tap_timeout = 0.25; + priv->double_tap_timeout = _elm_config->glayer_double_tap_timeout; memset(priv->gesture, 0, sizeof(priv->gesture)); } @@ -3829,6 +3835,183 @@ _cb_set(Eo *obj, void *_pd, va_list *list) SET_TEST_BIT(p); } +EAPI void +elm_gesture_layer_line_min_length_set(Evas_Object *obj, int line_min_length) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->line_min_length = line_min_length; +} + + +EAPI int +elm_gesture_layer_line_min_length_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->line_min_length; +} + +EAPI void +elm_gesture_layer_zoom_distance_tolerance_set(Evas_Object *obj, Evas_Coord zoom_distance_tolerance) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->zoom_distance_tolerance = zoom_distance_tolerance; +} + +EAPI Evas_Coord +elm_gesture_layer_zoom_distance_tolerance_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->zoom_distance_tolerance; +} + +EAPI void +elm_gesture_layer_line_distance_tolerance_set(Evas_Object *obj, Evas_Coord line_distance_tolerance) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->line_distance_tolerance = line_distance_tolerance; +} + +EAPI Evas_Coord +elm_gesture_layer_line_distance_tolerance_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->line_distance_tolerance; +} + +EAPI void +elm_gesture_layer_line_angular_tolerance_set(Evas_Object *obj, double line_angular_tolerance) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->line_angular_tolerance = line_angular_tolerance; +} + +EAPI double +elm_gesture_layer_line_angular_tolerance_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->line_angular_tolerance; +} + +EAPI void +elm_gesture_layer_zoom_wheel_factor_set(Evas_Object *obj, double zoom_wheel_factor) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->zoom_wheel_factor = zoom_wheel_factor; +} + +EAPI double +elm_gesture_layer_zoom_wheel_factor_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->zoom_wheel_factor; +} + +EAPI void +elm_gesture_layer_zoom_finger_factor_set(Evas_Object *obj, double zoom_finger_factor) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->zoom_finger_factor = zoom_finger_factor; +} + +EAPI double +elm_gesture_layer_zoom_finger_factor_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->zoom_finger_factor; +} + +EAPI void +elm_gesture_layer_rotate_angular_tolerance_set(Evas_Object *obj, double rotate_angular_tolerance) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->rotate_angular_tolerance = rotate_angular_tolerance; +} + +EAPI double +elm_gesture_layer_rotate_angular_tolerance_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->rotate_angular_tolerance; +} + +EAPI void +elm_gesture_layer_flick_time_limit_ms_set(Evas_Object *obj, unsigned int flick_time_limit_ms) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->flick_time_limit_ms = flick_time_limit_ms; +} + +EAPI unsigned int +elm_gesture_layer_flick_time_limit_ms_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->flick_time_limit_ms; +} + +EAPI void +elm_gesture_layer_long_tap_start_timeout_set(Evas_Object *obj, double long_tap_start_timeout) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->long_tap_start_timeout = long_tap_start_timeout; +} + +EAPI double +elm_gesture_layer_long_tap_start_timeout_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->long_tap_start_timeout; +} + +EAPI void +elm_gesture_layer_continues_enable_set(Evas_Object *obj, Eina_Bool continues_enable) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->glayer_continues_enable = continues_enable; +} + +EAPI Eina_Bool +elm_gesture_layer_continues_enable_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->glayer_continues_enable; +} + +EAPI void +elm_gesture_layer_double_tap_timeout_set(Evas_Object *obj, double double_tap_timeout) +{ + ELM_GESTURE_LAYER_CHECK(obj); + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + sd->double_tap_timeout = double_tap_timeout; +} + +EAPI double +elm_gesture_layer_double_tap_timeout_get(const Evas_Object *obj) +{ + ELM_GESTURE_LAYER_CHECK(obj) 0.0; + ELM_GESTURE_LAYER_DATA_GET(obj, sd); + return sd->double_tap_timeout; +} + static void _class_constructor(Eo_Class *klass) { diff --git a/legacy/elementary/src/lib/elm_gesture_layer.h b/legacy/elementary/src/lib/elm_gesture_layer.h index 878120581f..746596dd8b 100644 --- a/legacy/elementary/src/lib/elm_gesture_layer.h +++ b/legacy/elementary/src/lib/elm_gesture_layer.h @@ -462,6 +462,226 @@ EAPI Eina_Bool elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *target */ EAPI Evas_Object *elm_gesture_layer_add(Evas_Object *parent); +/** + * @since 1.8 + * This function sets the gesture layer line min length of an object + * + * @param obj gesture-layer. + * @param line_min_length the length. + * + */ +EAPI void elm_gesture_layer_line_min_length_set(Evas_Object *obj, int line_min_length); + +/** + * @since 1.8 + * This function returns the gesture layer line min length of an object + * + * @param obj gesture-layer. + * @return the length. + * + */ +EAPI int elm_gesture_layer_line_min_length_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer zoom distance tolerance of an object + * + * @param obj gesture-layer. + * @param zoom_distance_tolerance zoom distance tolerance + * + */ +EAPI void elm_gesture_layer_zoom_distance_tolerance_set(Evas_Object *obj, Evas_Coord zoom_distance_tolerance); + +/** + * @since 1.8 + * This function returns the gesture layer zoom distance tolerance of an object + * + * @param obj gesture-layer. + * @return zoom distance tolerance + * + */ +EAPI Evas_Coord elm_gesture_layer_zoom_distance_tolerance_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer line distance tolerance of an object + * + * @param obj gesture-layer. + * @param line_distance_tolerance line distance tolerance + * + */ +EAPI void elm_gesture_layer_line_distance_tolerance_set(Evas_Object *obj, Evas_Coord line_distance_tolerance); + +/** + * @since 1.8 + * This function returns the gesture layer line distance tolerance of an object + * + * @param obj gesture-layer. + * @return line distance tolerance + * + */ +EAPI Evas_Coord elm_gesture_layer_line_distance_tolerance_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer line angular tolerance of an object + * + * @param obj gesture-layer. + * @param line_angular_tolerance line angular tolerance + * + */ +EAPI void elm_gesture_layer_line_angular_tolerance_set(Evas_Object *obj, double line_angular_tolerance); + +/** + * @since 1.8 + * This function returns the gesture layer line angular tolerance of an object + * + * @param obj gesture-layer. + * @return line angular tolerance + * + */ +EAPI double elm_gesture_layer_line_angular_tolerance_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer zoom wheel factor of an object + * + * @param obj gesture-layer. + * @param zoom_wheel_factor zoom wheel factor + * + */ +EAPI void elm_gesture_layer_zoom_wheel_factor_set(Evas_Object *obj, double zoom_wheel_factor); + +/** + * @since 1.8 + * This function returns the gesture layer zoom wheel factor of an object + * + * @param obj gesture-layer. + * @return zoom wheel factor + * + */ +EAPI double elm_gesture_layer_zoom_wheel_factor_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer zoom finger factor of an object + * + * @param obj gesture-layer. + * @param zoom_finger_factor zoom finger factor + * + */ +EAPI void elm_gesture_layer_zoom_finger_factor_set(Evas_Object *obj, double zoom_finger_factor); + +/** + * @since 1.8 + * This function returns the gesture layer zoom finger factor of an object + * + * @param obj gesture-layer. + * @return zoom finger factor + * + */ +EAPI double elm_gesture_layer_zoom_finger_factor_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer rotate angular tolerance of an object + * + * @param obj gesture-layer. + * @param rotate_angular_tolerance rotate angular tolerance + * + */ +EAPI void elm_gesture_layer_rotate_angular_tolerance_set(Evas_Object *obj, double rotate_angular_tolerance); + +/** + * @since 1.8 + * This function returns the gesture layer rotate angular tolerance of an object + * + * @param obj gesture-layer. + * @return rotate angular tolerance + * + */ +EAPI double elm_gesture_layer_rotate_angular_tolerance_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer flick time limit (in ms) of an object + * + * @param obj gesture-layer. + * @param flick_time_limit_ms flick time limit (in ms) + * + */ +EAPI void elm_gesture_layer_flick_time_limit_ms_set(Evas_Object *obj, unsigned int flick_time_limit_ms); + +/** + * @since 1.8 + * This function returns the gesture layer flick time limit (in ms) of an object + * + * @param obj gesture-layer. + * @return flick time limit (in ms) + * + */ +EAPI unsigned int elm_gesture_layer_flick_time_limit_ms_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer long tap start timeout of an object + * + * @param obj gesture-layer. + * @param long_tap_start_timeout long tap start timeout + * + */ +EAPI void elm_gesture_layer_long_tap_start_timeout_set(Evas_Object *obj, double long_tap_start_timeout); + +/** + * @since 1.8 + * this function returns the gesture layer long tap start timeout of an object + * + * @param obj gesture-layer. + * @return long tap start timeout + * + */ +EAPI double elm_gesture_layer_long_tap_start_timeout_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer continues enable of an object + * + * @param obj gesture-layer. + * @param continues_enable continues enable + * + */ +EAPI void elm_gesture_layer_continues_enable_set(Evas_Object *obj, Eina_Bool continues_enable); + +/** + * @since 1.8 + * This function returns the gesture layer continues enable of an object + * + * @param obj gesture-layer. + * @return continues enable + * + */ +EAPI Eina_Bool elm_gesture_layer_continues_enable_get(const Evas_Object *obj); + +/** + * @since 1.8 + * This function sets the gesture layer double tap timeout of an object + * + * @param obj gesture-layer. + * @param double_tap_timeout double tap timeout + * + */ +EAPI void elm_gesture_layer_double_tap_timeout_set(Evas_Object *obj, double double_tap_timeout); + +/** + * @since 1.8 + * this function returns the gesture layer double tap timeout of an object + * + * @param obj gesture-layer. + * @return double tap timeout + * + */ +EAPI double elm_gesture_layer_double_tap_timeout_get(const Evas_Object *obj); + /** * @} */