}
EOLIAN static void
+_efl_page_indicator_unpack_all(Eo *obj EINA_UNUSED,
+ Efl_Page_Indicator_Data *pd)
+{
+ pd->cnt = 0;
+ pd->curr_idx = -1;
+}
+
+EOLIAN static void
_efl_page_indicator_bind(Eo *obj EINA_UNUSED,
Efl_Page_Indicator_Data *pd,
Eo *pager,
EFL_FUNC_CALL(index), int index)
EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack,
EFL_FUNC_CALL(index), int index)
+EOAPI EFL_VOID_FUNC_BODY(efl_page_indicator_unpack_all)
#define EFL_PAGE_INDICATOR_EXTRA_OPS \
EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \
EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
_efl_page_indicator_pack), \
EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \
- _efl_page_indicator_unpack)
+ _efl_page_indicator_unpack), \
+ EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \
+ _efl_page_indicator_unpack_all)
#include "efl_page_indicator.eo.c"
}
EOLIAN static void
+_efl_page_indicator_icon_unpack_all(Eo *obj,
+ Efl_Page_Indicator_Icon_Data *pd)
+{
+ Eo *item;
+
+ EINA_LIST_FREE(pd->items, item)
+ {
+ efl_del(item);
+ }
+
+ pd->curr = NULL;
+
+ efl_page_indicator_unpack_all(efl_super(obj, MY_CLASS));
+}
+
+EOLIAN static void
_efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj,
Efl_Page_Indicator_Icon_Data *pd,
Eo *pager,
EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
_efl_page_indicator_icon_pack), \
EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \
- _efl_page_indicator_icon_unpack)
+ _efl_page_indicator_icon_unpack), \
+ EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \
+ _efl_page_indicator_icon_unpack_all)
#include "efl_page_indicator_icon.eo.c"
}
EOLIAN static void
+_efl_page_transition_unpack_all(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)
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_BODY(efl_page_transition_unpack_all)
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,
_efl_page_transition_update), \
EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \
_efl_page_transition_pack), \
+ EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \
+ _efl_page_transition_unpack_all), \
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, \
}
EOLIAN static void
+_efl_page_transition_scroll_unpack_all(Eo *obj EINA_UNUSED,
+ Efl_Page_Transition_Scroll_Data *pd)
+{
+ Eina_List *list;
+ Page_Info *pi;
+
+ EINA_LIST_FOREACH(pd->page_infos, list, pi)
+ {
+ efl_pack_unpack(pi->obj, pi->content);
+
+ pi->content_num = -1;
+ pi->content = NULL;
+ pi->visible = EINA_FALSE;
+ }
+ return EINA_TRUE;
+}
+
+EOLIAN static void
_efl_page_transition_scroll_curr_page_change(Eo *obj EINA_UNUSED,
Efl_Page_Transition_Scroll_Data *pd,
int diff)
_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_unpack_all, \
+ _efl_page_transition_scroll_unpack_all), \
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, \
return pd->loop;
}
+static void
+_unpack_all(Efl_Ui_Pager_Data *pd,
+ Eina_Bool clear)
+{
+ Eo *subobj;
+
+ pd->cnt = 0;
+ pd->curr.page = -1;
+ pd->curr.pos = 0.0;
+
+ if (pd->transition)
+ {
+ efl_page_transition_unpack_all(pd->transition);
+ }
+ else
+ {
+ subobj = eina_list_nth(pd->content_list, pd->curr.page);
+ efl_pack_unpack(pd->page_box, subobj);
+ }
+
+ if (clear)
+ {
+ EINA_LIST_FREE(pd->content_list, subobj)
+ evas_object_del(subobj);
+ }
+ else
+ {
+ EINA_LIST_FREE(pd->content_list, subobj)
+ efl_canvas_object_clipper_set(subobj, NULL);
+ }
+
+ if (pd->indicator)
+ {
+ efl_page_indicator_unpack_all(pd->indicator);
+ }
+}
+
EOLIAN static Eina_Bool
_efl_ui_pager_efl_pack_pack_clear(Eo *obj EINA_UNUSED,
- Efl_Ui_Pager_Data *pd EINA_UNUSED)
+ Efl_Ui_Pager_Data *pd)
{
- ERR("Soon to be implemented");
- return EINA_FALSE;
+ _unpack_all(pd, EINA_TRUE);
+
+ return EINA_TRUE;
}
EOLIAN static Eina_Bool
_efl_ui_pager_efl_pack_unpack_all(Eo *obj EINA_UNUSED,
- Efl_Ui_Pager_Data *pd EINA_UNUSED)
+ Efl_Ui_Pager_Data *pd)
{
- ERR("Soon to be implemented");
- return EINA_FALSE;
+ _unpack_all(pd, EINA_FALSE);
+
+ return EINA_TRUE;
}
static void
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_unpack_all(Eo *obj);
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);
EOAPI void efl_page_indicator_update(Eo *obj, double pos);
EOAPI void efl_page_indicator_pack(Eo *obj, int index);
EOAPI void efl_page_indicator_unpack(Eo *obj, int index);
+EOAPI void efl_page_indicator_unpack_all(Eo *obj);
Eina_Bool _elm_config_accel_preference_parse(const char *pref, Eina_Stringshare **accel, int *gl_depth, int *gl_stencil, int *gl_msaa);