efl_ui_pager: fix pack function
authorJaeun Choi <jaeun12.choi@samsung.com>
Fri, 22 Mar 2019 02:30:34 +0000 (11:30 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Tue, 2 Apr 2019 04:21:10 +0000 (13:21 +0900)
src/lib/elementary/efl_page_transition.c
src/lib/elementary/efl_page_transition_scroll.c
src/lib/elementary/efl_ui_pager.c
src/lib/elementary/elm_priv.h

index 6c5c834..3740a69 100644 (file)
@@ -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, \
index 4979206..5c5cb9a 100644 (file)
@@ -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, \
index e5f65c5..0511694 100644 (file)
@@ -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)
index d72b86c..149916c 100644 (file)
@@ -905,6 +905,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);