int move_effect_mode;
int pinchzoom_effect_mode;
int pinch_it;
- int max_num;
+ int max_git_num;
Ecore_Animator *item_moving_effect_timer;
Eina_Bool mouse_down : 1;
Eina_Bool expanded_effect : 1;
Evas_Object *point_rect;
Elm_Genlist_Item *expand_item;
int expand_item_cnt;
+ int contract_pan_y;
Eina_Bool queue_exception : 1;
};
Evas_Event_Multi_Down *ev = event_info;
Evas_Coord dx, dy, adx, ady;
+ elm_smart_scroller_freeze_bounce_animator_set(it->wd->scr, 1);
if (it->long_timer)
{
ecore_timer_del(it->long_timer);
it->wd->td2_x = ev->canvas.x;
it->wd->td2_y = ev->canvas.y;
- if( it->wd->effect_mode && it->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH && it->w == 480)
+ if( it->wd->effect_mode && it->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH )
{
evas_object_move(it->wd->point_rect, 2, (it->wd->td1_y + it->wd->td2_y) / 2);
evas_object_raise(it->wd->point_rect);
if(it->wd->effect_mode == EINA_TRUE)
{
multi_y_avg= (it->wd->td1_y + it->wd->td2_y) / 2;
- it->wd->pinch_it = ((multi_y_avg-96) / it->group_item->h) + 2;
- fprintf(stderr," pinch,in!! it ================ it->y = %d it->old\_y = %d it = %d it->wd->td1_y = %d it->wd->td2_y = %d pinch_it = %d \n", it->y, it->old_scrl_y, it->old_scrl_y / 30, it->wd->td1_y, it->wd->td2_y, it->wd->pinch_it);
- if(it->w == 480)
+ it->wd->pinch_it = multi_y_avg / it->group_item->h + it->wd->contract_pan_y / it->group_item->h;
+ fprintf(stderr," pinch,in!! it ================ it->y = %d it->old\_y = %d it = %d it->wd->td1_y = %d it->wd->td2_y = %d pinch_it = %d it->wd->contract_pan_y = %d\n", it->y, it->old_scrl_y, it->old_scrl_y / 30, it->wd->td1_y, it->wd->td2_y, it->wd->pinch_it, it->wd->contract_pan_y);
elm_genlist_pinch_zoom_mode_set(it->wd->obj, 0);
}
}
Evas_Event_Mouse_Down *ev = event_info;
Evas_Coord x, y;
+ elm_smart_scroller_freeze_bounce_animator_set(it->wd->scr, 0);
it->wd->mouse_down = 1;
it->wd->td1_x = ev->canvas.x;
it->wd->td1_y = ev->canvas.y;
- if( it->wd->effect_mode && it->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH) return;
+ if( it->wd->effect_mode && it->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH)
+ {
+ elm_smart_scroller_bounce_allow_set(it->wd->scr, EINA_FALSE, EINA_TRUE);
+ return;
+ }
if( it->wd->edit_mode != ELM_GENLIST_EDIT_MODE_NONE )
(void)_edit_mode_reset( it->wd );
if(it->wd->effect_mode == EINA_TRUE)
{
multi_y_avg= (it->wd->td1_y + it->wd->td2_y) / 2;
- it->wd->pinch_it = multi_y_avg / it->group_item->h;
- fprintf(stderr,"mouse up pinch,in!! it ================ it->y = %d it->old\_y = %d it = %d it->wd->td1_y = %d it->wd->td2_y = %d pinch_it = %d \n", it->y, it->old_scrl_y, it->old_scrl_y / 30, it->wd->td1_y, it->wd->td2_y, it->wd->pinch_it);
- if(it->w == 480)
+ it->wd->pinch_it = multi_y_avg / it->group_item->h + it->wd->contract_pan_y / it->group_item->h;
+ fprintf(stderr,"mouse up pinch,in!! it ================ it->y = %d it->old\_y = %d it = %d it->wd->td1_y = %d it->wd->td2_y = %d pinch_it = %d it->wd->contract_pan_y = %d \n", it->y, it->old_scrl_y, it->old_scrl_y / 30, it->wd->td1_y, it->wd->td2_y, it->wd->pinch_it, it->wd->contract_pan_y);
elm_genlist_pinch_zoom_mode_set(it->wd->obj, 0);
}
}
}
}
}
- itb->wd->max_num = count;
+ itb->wd->max_git_num = count;
itb->minw = minw;
itb->minh = minh;
itb->changed = EINA_FALSE;
fprintf(stderr,"ELM_GENLIST_ITEM_MOVE_EFFECT_EXPAND FINISH \n");
elm_smart_scroller_hold_set(wd->scr, 0);
elm_smart_scroller_freeze_set(wd->scr, 0);
+ elm_smart_scroller_freeze_momentum_animator_set(wd->scr, 0);
+ elm_smart_scroller_freeze_bounce_animator_set(wd->scr, 0);
}
}
Elm_Genlist_GroupItem *git;
Evas_Coord ox, oy, ow, oh, cvx, cvy, cvw, cvh;
int in = 0;
- static int old_minw = 0;
- int git_cnt = 0, git_h = 0;
evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
if (sd->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_EXPAND) return;
- if (sd->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH &&
- ((old_minw != sd->wd->minw) || (sd->wd->mouse_down == 1)) && sd->wd->pan_y < oh+oy)
- {
- old_minw = sd->wd->minw;
- EINA_INLIST_FOREACH(sd->wd->group_items, git)
- {
- git_cnt++;
- git_h = git->h;
- }
+ if( sd->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH && !sd->wd->multi_down)
+ {
+ sd->wd->contract_pan_y = sd->wd->pan_y;
EINA_INLIST_FOREACH(sd->wd->group_items, git)
{
if (git->visible)
&minw, &minh);
evas_object_size_hint_min_set(obj, minw, minh);
+ elm_genlist_effect_set(obj, 1);
+ elm_genlist_pinch_zoom_set(obj, 1);
+
_sizing_eval(obj);
return obj;
}
int merge_git_start_num = 0;
static int merge_git_start_y = 0;
- int base_git = 0;
+ int base_git = 0, tmp_y = 0;
Evas_Coord ox, oy, ow, oh;
if(!itb->wd)
else
{
if (git->y > base_git)
- git->y -= (added_gy + (git->num - move_git_cnt - 1)*7);
+ git->y -= (added_gy + (git->num - 1)*7);
if (git->y < base_git)
git->y = base_git;
}
{
if (it->group_item->old_y)
it->old_scrl_y -= (it->group_item->old_y - it->group_item->y);
- if (itb->wd->max_num == it->group_item->num)
+ if (itb->wd->max_git_num == it->group_item->num)
{
it->old_scrl_y -= added_gy;
+ if(it->group_item->y < it->old_scrl_y)
+ evas_object_color_set(it->base, 0,0,0,0);
}
_move_edit_controls(it,it->scrl_x, it->scrl_y);
evas_object_resize(it->base, itb->wd->minw-(it->pad_left+it->pad_right), it->h);
EINA_LIST_FOREACH(itb->items, l, it)
{
_move_edit_controls( it,it->scrl_x, it->scrl_y );
- evas_object_resize(it->base, it->w-(it->pad_left+it->pad_right), 0);
- evas_object_lower(it->base);
+ evas_object_move(it->base, it->scrl_x+it->pad_left, tmp_y);
+ tmp_y += it->h;
+ evas_object_color_set(it->base, 0,0,0,0);
}
}
itb->wd->pan_y = 0;
+ itb->wd->contract_pan_y = 0;
itb->wd->pinchzoom_effect_mode = ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH;
+ elm_smart_scroller_freeze_momentum_animator_set(itb->wd->scr, 0);
return ECORE_CALLBACK_CANCEL;
}
evas_object_geometry_get(itb->wd->pan_smart, &ox, &oy, &ow, &oh);
+ int top_git = itb->wd->pinch_it - 2;
if (itb->wd->pinch_it < 1)
itb->wd->pinch_it = 1;
- int top_git = itb->wd->pinch_it - 1;
- if (top_git == 24)
- top_git = 23;
+ if (top_git >= itb->wd->max_git_num)
+ top_git = itb->wd->max_git_num - 1;
+
// calculate git count and srcroll move position
EINA_INLIST_FOREACH(itb->wd->group_items, git)
{
git_count = 0;
EINA_INLIST_FOREACH(itb->wd->group_items, tmp_git)
{
- if (tmp_git->y == tmp_git->finish_y && tmp_git->y > oy && tmp_git->y < oy+oh + oh)
+ if (tmp_git->y == tmp_git->finish_y && tmp_git->y > oy && tmp_git->y < oy + oh)
git_count++;
}
}
_move_edit_controls( it,it->scrl_x, it->scrl_y );
evas_object_resize(it->base, itb->wd->minw-(it->pad_left+it->pad_right), it->h);
evas_object_move(it->base, it->scrl_x+it->pad_left, it->old_scrl_y);
+ evas_object_color_set(it->base, 255,255,255,255);
evas_object_raise(it->group_item->base);
-
+
if (it->old_scrl_y < last_git_y-50)
evas_object_show(it->base);
else
// fprintf(stderr,"git->num = %d git->y = %d show_git_cnt = %d git_count = %d\n", git->num, git->y, show_git_cnt, git_count);
cnt++;
- if ((itb->wd->minw == 480 && git_count -1 == show_git_cnt) || (itb->wd->minw == 800 && git_count == show_git_cnt)
- || (top_git == 24 && git_count == show_git_cnt) || (top_git > 24 && git_count == 1))
+ if(git_count + 1 == show_git_cnt)
{
added_gy = 10;
last_git_y = 0;
if(itb->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_EXPAND)
return EINA_FALSE;
- if(itb->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH)
- {
- elm_smart_scroller_hold_set(itb->wd->scr, 1);
- elm_smart_scroller_freeze_set(itb->wd->scr, 1);
- }
itb->num = in;
evas_object_geometry_get(itb->wd->pan_smart, &ox, &oy, &ow, &oh);
{
itb->wd->pinchzoom_effect_mode = ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT;
itb->wd->mouse_down = 0;
+ elm_smart_scroller_freeze_momentum_animator_set(itb->wd->scr, 1);
itb->wd->item_moving_effect_timer = ecore_animator_add(_group_item_contract_moving_effect_timer_cb, itb);
}
}
else if (itb->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH)
{
itb->wd->pinchzoom_effect_mode = ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_EXPAND;
- elm_smart_scroller_bounce_allow_set(itb->wd->scr, EINA_FALSE, EINA_TRUE);
+ elm_smart_scroller_freeze_momentum_animator_set(itb->wd->scr, 1);
EINA_LIST_FOREACH(itb->items, l, it)
{
_move_edit_controls( it,it->scrl_x, it->scrl_y );