elementary/gesture_layer - reviewed done.

SVN revision: 68408
This commit is contained in:
ChunEon Park 2012-02-24 12:21:22 +00:00
parent b504253f61
commit 2184cc1112
3 changed files with 87 additions and 43 deletions

View File

@ -203,7 +203,7 @@ EAPI extern Elm_Version *elm_version;
#include <elm_frame.h> //Done + XXX in header
#include <elm_gengrid.h>
#include <elm_genlist.h>
#include <elm_gesture_layer.h>
#include <elm_gesture_layer.h> //Done
#include <elm_glview.h>
#include <elm_grid.h> //Done

View File

@ -646,10 +646,14 @@ _n_long_tap_test_reset(Gesture_Info *gesture)
Eina_List *l;
Pointer_Event *p;
EINA_LIST_FOREACH(st->touched, l, p)
free(p);
free(p);
eina_list_free(st->touched);
if (st->timeout) ecore_timer_del(st->timeout);
if (st->timeout)
{
ecore_timer_del(st->timeout);
st->timeout = NULL;
}
memset(gesture->data, 0, sizeof(Long_Tap_Type));
}
@ -913,7 +917,7 @@ _event_history_clear(Evas_Object *obj)
Gesture_Info *p;
Evas *e = evas_object_evas_get(obj);
Eina_Bool gesture_found = EINA_FALSE;
for (i = ELM_GESTURE_FIRST ; i < ELM_GESTURE_LAST; i++)
for (i = ELM_GESTURE_FIRST; i < ELM_GESTURE_LAST; i++)
{
p = wd->gesture[i];
if (p)
@ -1119,7 +1123,6 @@ compare_pe_device(const void *data1, const void *data2)
(pe1->event_type != EVAS_CALLBACK_MOUSE_DOWN))
return 1;
if (pe1->device == pe2->device)
return 0;
else if (pe1->device < pe2->device)
@ -2973,7 +2976,7 @@ _rotate_test(Evas_Object *obj, Pointer_Event *pe, void *event_info,
if (rotation_broke_tolerance(st))
{ /* Rotation broke tolerance, report move */
double d = st->info.angle - st->next_step;
if (d < 0.0)
if (d < 0)
d = (-d);
if (d >= wd->rotate_step)
@ -3200,7 +3203,6 @@ _event_process(void *data, Evas_Object *obj __UNUSED__,
Pointer_Event _pe;
Pointer_Event *pe = NULL;
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
#if defined(DEBUG_GESTURE_LAYER)
int i;
@ -3384,7 +3386,7 @@ _multi_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
}
EAPI Eina_Bool
elm_gesture_layer_hold_events_get(Evas_Object *obj)
elm_gesture_layer_hold_events_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
@ -3395,60 +3397,79 @@ elm_gesture_layer_hold_events_get(Evas_Object *obj)
}
EAPI void
elm_gesture_layer_hold_events_set(Evas_Object *obj, Eina_Bool r)
elm_gesture_layer_hold_events_set(Evas_Object *obj, Eina_Bool hold_events)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
wd->repeat_events = !r;
wd->repeat_events = !(!!hold_events);
}
EAPI double
elm_gesture_layer_zoom_step_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) 0;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return 0;
return wd->zoom_step;
}
EAPI void
elm_gesture_layer_zoom_step_set(Evas_Object *obj, double s)
elm_gesture_layer_zoom_step_set(Evas_Object *obj, double step)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (s < 0.0)
return;
if (step < 0) return;
wd->zoom_step = s;
wd->zoom_step = step;
}
EAPI double
elm_gesture_layer_rotate_step_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) 0;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return 0;
return wd->rotate_step;
}
EAPI void
elm_gesture_layer_rotate_step_set(Evas_Object *obj, double s)
elm_gesture_layer_rotate_step_set(Evas_Object *obj, double step)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (s < 0.0)
return;
if (step < 0) return;
wd->rotate_step = s;
wd->rotate_step = step;
}
EAPI Eina_Bool
elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *t)
elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *target)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return EINA_FALSE;
if (!t)
return EINA_FALSE;
if (!target) return EINA_FALSE;
/* if was attached before, unregister callbacks first */
if (wd->target)
_unregister_callbacks(obj);
wd->target = t;
wd->target = target;
_register_callbacks(obj);
return EINA_TRUE;

View File

@ -229,7 +229,7 @@ typedef Evas_Event_Flags (*Elm_Gesture_Event_Cb)(void *data, void *event_info);
* it means user isn't interested in gesture-state
* and it will not be tested.
*
* @param obj Pointer to gesture-layer.
* @param obj gesture-layer.
* @param idx The gesture you would like to track its state.
* @param cb callback function pointer.
* @param cb_type what event this callback tracks: START, MOVE, END, ABORT.
@ -242,60 +242,83 @@ EAPI void elm_gesture_layer_cb_set(Evas_Object *obj, Elm_Gesture_Type id
/**
* Call this function to get repeat-events settings.
*
* @param obj Pointer to gesture-layer.
* @param obj gesture-layer.
*
* @return repeat events settings.
* @see elm_gesture_layer_hold_events_set()
* @ingroup Elm_Gesture_Layer
*/
EAPI Eina_Bool elm_gesture_layer_hold_events_get(Evas_Object *obj);
EAPI Eina_Bool elm_gesture_layer_hold_events_get(const Evas_Object *obj);
/**
* This function called in order to make gesture-layer repeat events.
* Set this of you like to get the raw events only if gestures were not detected.
* Clear this if you like gesture layer to fwd events as testing gestures.
* This function is to make gesture-layer repeat events.
* Set this if you like to get the raw events only if gestures were not
* detected.
* Clear this if you like gesture layer to forward events as testing gestures.
*
* @param obj Pointer to gesture-layer.
* @param r Repeat: TRUE/FALSE
* @param obj gesture layer.
* @param hold_events hold events or not.
*
* @ingroup Elm_Gesture_Layer
*/
EAPI void elm_gesture_layer_hold_events_set(Evas_Object *obj, Eina_Bool r);
EAPI void elm_gesture_layer_hold_events_set(Evas_Object *obj, Eina_Bool hold_events);
/**
* This function sets step-value for zoom action.
* Set step to any positive value.
* Cancel step setting by setting to 0.0
* Cancel step setting by setting to 0
*
* @param obj Pointer to gesture-layer.
* @param s new zoom step value.
* @param obj gesture-layer.
* @param step new zoom step value.
*
* @see elm_gesture_layer_zoom_step_get()
* @ingroup Elm_Gesture_Layer
*/
EAPI void elm_gesture_layer_zoom_step_set(Evas_Object *obj, double s);
EAPI void elm_gesture_layer_zoom_step_set(Evas_Object *obj, double step);
/**
* This function returns step-value for zoom action.
*
* @param obj gesture-layer.
* @return zoom step value.
*
* @see elm_gesture_layer_zoom_step_set()
* @ingroup Elm_Gesture_Layer
*/
EAPI double elm_gesture_layer_zoom_step_get(const Evas_Object *obj);
/**
* This function sets step-value for rotate action.
* Set step to any positive value.
* Cancel step setting by setting to 0.0
* Cancel step setting by setting to 0
*
* @param obj Pointer to gesture-layer.
* @param s new rotate step value.
* @param obj gesture-layer.
* @param step new rotate step value.
*
* @ingroup Elm_Gesture_Layer
*/
EAPI void elm_gesture_layer_rotate_step_set(Evas_Object *obj, double s);
EAPI void elm_gesture_layer_rotate_step_set(Evas_Object *obj, double step);
/**
* This function returns step-value for rotate action.
*
* @param obj gesture-layer.
* @return rotate step value.
*
* @ingroup Elm_Gesture_Layer
*/
EAPI double elm_gesture_layer_rotate_step_get(const Evas_Object *obj);
/**
* This function called to attach gesture-layer to an Evas_Object.
* @param obj Pointer to gesture-layer.
* @param t Pointer to underlying object (AKA Target)
* @param obj gesture-layer.
* @param target Pointer to underlying object (AKA Target)
*
* @return TRUE, FALSE on success, failure.
*
* @ingroup Elm_Gesture_Layer
*/
EAPI Eina_Bool elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *t);
EAPI Eina_Bool elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *target);
/**
* Call this function to construct a new gesture-layer object.
@ -304,7 +327,7 @@ EAPI Eina_Bool elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *t);
*
* @param parent the parent object.
*
* @return Pointer to new gesture-layer object.
* @return new gesture-layer object.
*
* @ingroup Elm_Gesture_Layer
*/