efl_page_indicator: add unpack function

This commit is contained in:
Jaeun Choi 2019-01-24 18:42:24 +09:00
parent 5fcb50ebb0
commit bfce85d163
3 changed files with 47 additions and 2 deletions

View File

@ -29,6 +29,19 @@ _efl_page_indicator_pack(Eo *obj EINA_UNUSED,
if ((pd->curr_idx == -1) || (pd->curr_idx >= index)) pd->curr_idx++;
}
EOLIAN static void
_efl_page_indicator_unpack(Eo *obj EINA_UNUSED,
Efl_Page_Indicator_Data *pd,
int index)
{
pd->cnt--;
if ((pd->cnt == 0) ||
((index == pd->curr_idx) && (index != 0)) ||
(index < pd->curr_idx))
pd->curr_idx--;
}
EOLIAN static void
_efl_page_indicator_bind(Eo *obj EINA_UNUSED,
Efl_Page_Indicator_Data *pd,
@ -57,11 +70,15 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_update,
EFL_FUNC_CALL(pos), double pos)
EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack,
EFL_FUNC_CALL(index), int index)
EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack,
EFL_FUNC_CALL(index), int index)
#define EFL_PAGE_INDICATOR_EXTRA_OPS \
EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \
_efl_page_indicator_update), \
EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
_efl_page_indicator_pack)
_efl_page_indicator_pack), \
EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \
_efl_page_indicator_unpack)
#include "efl_page_indicator.eo.c"

View File

@ -79,6 +79,31 @@ _efl_page_indicator_icon_pack(Eo *obj,
}
}
EOLIAN static void
_efl_page_indicator_icon_unpack(Eo *obj,
Efl_Page_Indicator_Icon_Data *pd,
int index)
{
EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
Eo *item;
item = eina_list_nth(pd->items, index);
pd->items = eina_list_remove(pd->items, item);
efl_pack_unpack(spd->idbox, item);
efl_del(item);
if (index == spd->curr_idx) pd->curr = NULL;
efl_page_indicator_unpack(efl_super(obj, MY_CLASS), index);
if ((pd->curr == NULL) && (spd->curr_idx != -1))
{
pd->curr = eina_list_nth(pd->items, spd->curr_idx);
eina_value_set(pd->v, 1.0);
efl_layout_signal_message_send(pd->curr, 1, *(pd->v));
}
}
EOLIAN static void
_efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj,
Efl_Page_Indicator_Icon_Data *pd,
@ -135,6 +160,8 @@ _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj,
EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \
_efl_page_indicator_icon_update), \
EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
_efl_page_indicator_icon_pack)
_efl_page_indicator_icon_pack), \
EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \
_efl_page_indicator_icon_unpack)
#include "efl_page_indicator_icon.eo.c"

View File

@ -779,6 +779,7 @@ 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);
Eina_Bool _elm_config_accel_preference_parse(const char *pref, Eina_Stringshare **accel, int *gl_depth, int *gl_stencil, int *gl_msaa);