diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/elementary/efl_page_transition.c | 12 | ||||
-rw-r--r-- | src/lib/elementary/efl_page_transition_scroll.c | 16 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_pager.c | 10 | ||||
-rw-r--r-- | src/lib/elementary/elm_priv.h | 1 |
4 files changed, 34 insertions, 5 deletions
diff --git a/src/lib/elementary/efl_page_transition.c b/src/lib/elementary/efl_page_transition.c index 6c5c834d6e..3740a6996d 100644 --- a/src/lib/elementary/efl_page_transition.c +++ b/src/lib/elementary/efl_page_transition.c @@ -64,6 +64,14 @@ _efl_page_transition_update(Eo *obj EINA_UNUSED, } EOLIAN static void +_efl_page_transition_pack(Eo *obj EINA_UNUSED, + Efl_Page_Transition_Data *pd EINA_UNUSED, + int index EINA_UNUSED) +{ + +} + +EOLIAN static void _efl_page_transition_curr_page_change(Eo *obj EINA_UNUSED, Efl_Page_Transition_Data *pd EINA_UNUSED, int diff EINA_UNUSED) @@ -84,6 +92,8 @@ _efl_page_transition_loop_set(Eo *obj EINA_UNUSED, EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_update, EFL_FUNC_CALL(move), double move) +EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_pack, + EFL_FUNC_CALL(index), int index) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_curr_page_change, EFL_FUNC_CALL(diff), int diff) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_page_size_set, @@ -97,6 +107,8 @@ EOAPI EFL_FUNC_BODYV(efl_page_transition_loop_set, Eina_Bool, 0, #define EFL_PAGE_TRANSITION_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_page_transition_update, \ _efl_page_transition_update), \ + EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \ + _efl_page_transition_pack), \ EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \ _efl_page_transition_curr_page_change), \ EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \ diff --git a/src/lib/elementary/efl_page_transition_scroll.c b/src/lib/elementary/efl_page_transition_scroll.c index 4979206153..5c5cb9aa11 100644 --- a/src/lib/elementary/efl_page_transition_scroll.c +++ b/src/lib/elementary/efl_page_transition_scroll.c @@ -399,6 +399,20 @@ _efl_page_transition_scroll_update(Eo *obj, } EOLIAN static void +_efl_page_transition_scroll_pack(Eo *obj, + Efl_Page_Transition_Scroll_Data *pd, + int index) +{ + EFL_PAGE_TRANSITION_DATA_GET(obj, spd); + Eo *tmp; + + tmp = efl_pack_content_get(spd->pager.obj, index); + efl_canvas_object_clipper_set(tmp, pd->backclip); + + _efl_page_transition_scroll_update(obj, pd, 0.0); +} + +EOLIAN static void _efl_page_transition_scroll_curr_page_change(Eo *obj EINA_UNUSED, Efl_Page_Transition_Scroll_Data *pd, int diff) @@ -640,6 +654,8 @@ _efl_page_transition_scroll_efl_object_invalidate(Eo *obj, #define EFL_PAGE_TRANSITION_SCROLL_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_page_transition_update, \ _efl_page_transition_scroll_update), \ + EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \ + _efl_page_transition_scroll_pack), \ EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \ _efl_page_transition_scroll_curr_page_change), \ EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \ diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index e5f65c55d3..0511694249 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -397,7 +397,7 @@ _efl_ui_pager_efl_pack_linear_pack_begin(Eo *obj EINA_UNUSED, pd->curr.page++; if (pd->transition) - efl_page_transition_update(pd->transition, pd->curr.pos); + efl_page_transition_pack(pd->transition, 0); else { if (pd->cnt == 1) @@ -424,7 +424,7 @@ _efl_ui_pager_efl_pack_linear_pack_end(Eo *obj EINA_UNUSED, if (pd->curr.page == -1) pd->curr.page = 0; if (pd->transition) - efl_page_transition_update(pd->transition, pd->curr.pos); + efl_page_transition_pack(pd->transition, (pd->cnt - 1)); else { if (pd->cnt == 1) @@ -455,7 +455,7 @@ _efl_ui_pager_efl_pack_linear_pack_before(Eo *obj EINA_UNUSED, if (pd->curr.page >= index) pd->curr.page++; if (pd->transition) - efl_page_transition_update(pd->transition, pd->curr.pos); + efl_page_transition_pack(pd->transition, index); else efl_canvas_object_clipper_set(subobj, pd->backclip); if (pd->indicator) @@ -481,7 +481,7 @@ _efl_ui_pager_efl_pack_linear_pack_after(Eo *obj EINA_UNUSED, if (pd->curr.page > index) pd->curr.page++; if (pd->transition) - efl_page_transition_update(pd->transition, pd->curr.pos); + efl_page_transition_pack(pd->transition, (index + 1)); else efl_canvas_object_clipper_set(subobj, pd->backclip); if (pd->indicator) @@ -518,7 +518,7 @@ _efl_ui_pager_efl_pack_linear_pack_at(Eo *obj, if (pd->curr.page >= index) pd->curr.page++; if (pd->transition) - efl_page_transition_update(pd->transition, pd->curr.pos); + efl_page_transition_pack(pd->transition, index); else efl_canvas_object_clipper_set(subobj, pd->backclip); if (pd->indicator) diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index b504d47298..54c32cf9a6 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -874,6 +874,7 @@ void _elm_widget_full_eval_children(Eo *obj, Elm_Widget_Smart_Da EOAPI void efl_page_transition_page_size_set(Eo *obj, Eina_Size2D sz); EOAPI void efl_page_transition_padding_size_set(Eo *obj, int padding); EOAPI void efl_page_transition_update(Eo *obj, double pos); +EOAPI void efl_page_transition_pack(Eo *obj, int index); EOAPI void efl_page_transition_curr_page_change(Eo *obj, int diff); EOAPI Eina_Bool efl_page_transition_loop_set(Eo *obj, Efl_Ui_Pager_Loop loop); |