forked from enlightenment/efl
Elm test: Use momentum gesture in glayer test.
SVN revision: 64806
This commit is contained in:
parent
ee08b97b4d
commit
2d619d99ff
|
@ -173,9 +173,6 @@ zoom_start(void *_po, void *event_info)
|
|||
po->zoom_out = NULL;
|
||||
}
|
||||
|
||||
|
||||
po->dx = p->x - po->bx;
|
||||
po->dy = p->y - po->by;
|
||||
/* Give it a "lift" effect right from the start */
|
||||
po->base_zoom = BASE_ZOOM * LIFT_FACTOR;
|
||||
po->zoom = po->base_zoom;
|
||||
|
@ -192,8 +189,6 @@ zoom_move(void *_po, void *event_info)
|
|||
Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info;
|
||||
printf("zoom move <%d,%d> <%f>\n", p->x, p->y, p->zoom);
|
||||
po->zoom = po->base_zoom * p->zoom;
|
||||
po->bx = p->x - po->dx;
|
||||
po->by = p->y - po->dy;
|
||||
apply_changes(po);
|
||||
return EVAS_EVENT_FLAG_NONE;
|
||||
}
|
||||
|
@ -205,6 +200,52 @@ zoom_end(void *_po, void *event_info)
|
|||
Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info;
|
||||
printf("zoom end/abort <%d,%d> <%f>\n", p->x, p->y, p->zoom);
|
||||
|
||||
/* Apply the zoom out animator */
|
||||
po->shadow_zoom = 1.3;
|
||||
po->base_zoom = po->zoom;
|
||||
po->zoom_out = elm_transit_add();
|
||||
elm_transit_duration_set(po->zoom_out, zoom_out_animation_duration);
|
||||
elm_transit_effect_add(po->zoom_out, zoom_out_animation_operation, po, zoom_out_animation_end);
|
||||
elm_transit_go(po->zoom_out);
|
||||
return EVAS_EVENT_FLAG_NONE;
|
||||
}
|
||||
|
||||
static Evas_Event_Flags
|
||||
momentum_start(void *_po, void *event_info)
|
||||
{
|
||||
Photo_Object *po = (Photo_Object *) _po;
|
||||
Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info;
|
||||
printf("momentum_start <%d,%d>\n", p->x2, p->y2);
|
||||
|
||||
po->dx = p->x2 - po->bx;
|
||||
po->dy = p->y2 - po->by;
|
||||
apply_changes(po);
|
||||
|
||||
return EVAS_EVENT_FLAG_NONE;
|
||||
}
|
||||
|
||||
static Evas_Event_Flags
|
||||
momentum_move(void *_po, void *event_info)
|
||||
{
|
||||
Photo_Object *po = (Photo_Object *) _po;
|
||||
Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info;
|
||||
printf("momentum move <%d,%d>\n", p->x2, p->y2);
|
||||
|
||||
po->bx = p->x2 - po->dx;
|
||||
po->by = p->y2 - po->dy;
|
||||
apply_changes(po);
|
||||
|
||||
return EVAS_EVENT_FLAG_NONE;
|
||||
}
|
||||
|
||||
static Evas_Event_Flags
|
||||
momentum_end(void *_po, void *event_info)
|
||||
{
|
||||
Photo_Object *po = (Photo_Object *) _po;
|
||||
Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info;
|
||||
printf("momentum end/abort <%d,%d> <%d,%d>\n", p->x2, p->y2, p->mx, p->my);
|
||||
(void) po;
|
||||
(void) p;
|
||||
/* Make sure middle is in the screen, if not, fix it. */
|
||||
{
|
||||
/* FIXME: Use actual window sizes instead of the hardcoded
|
||||
|
@ -222,14 +263,8 @@ zoom_end(void *_po, void *event_info)
|
|||
else if (my > 800)
|
||||
po->by = 800 - (po->bh / 2);
|
||||
}
|
||||
apply_changes(po);
|
||||
|
||||
/* Apply the zoom out animator */
|
||||
po->shadow_zoom = 1.3;
|
||||
po->base_zoom = po->zoom;
|
||||
po->zoom_out = elm_transit_add();
|
||||
elm_transit_duration_set(po->zoom_out, zoom_out_animation_duration);
|
||||
elm_transit_effect_add(po->zoom_out, zoom_out_animation_operation, po, zoom_out_animation_end);
|
||||
elm_transit_go(po->zoom_out);
|
||||
return EVAS_EVENT_FLAG_NONE;
|
||||
}
|
||||
|
||||
|
@ -306,6 +341,10 @@ photo_object_add(Evas_Object *parent, Evas_Object *ic, const char *icon, Evas_Co
|
|||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_MOVE, zoom_move, po);
|
||||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_END, zoom_end, po);
|
||||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, zoom_end, po);
|
||||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_START, momentum_start, po);
|
||||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_MOVE, momentum_move, po);
|
||||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END, momentum_end, po);
|
||||
elm_gesture_layer_cb_set(po->gl, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT, momentum_end, po);
|
||||
|
||||
po->rotate = po->base_rotate = angle;
|
||||
po->shadow_zoom = 1.3;
|
||||
|
|
Loading…
Reference in New Issue