summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaeun Choi <jaeun12.choi@samsung.com>2018-03-22 16:10:58 +0900
committerJaeun Choi <jaeun12.choi@samsung.com>2018-04-23 16:28:41 +0900
commitc24c1434766d859ca41021245ef89ca21ce66215 (patch)
treed93fbca5d8b30eed36a7ad42b4f713a44fcbd86f
parent859d183c875e518c006763ae96ed68156a5476a9 (diff)
downloadefl-c24c1434766d859ca41021245ef89ca21ce66215.tar.gz
efl_page_indicator
-rw-r--r--src/lib/elementary/efl_page_indicator.c46
-rw-r--r--src/lib/elementary/efl_page_indicator_icon.c133
-rw-r--r--src/lib/elementary/efl_ui_pager.c10
-rw-r--r--src/lib/elementary/elm_priv.h5
4 files changed, 47 insertions, 147 deletions
diff --git a/src/lib/elementary/efl_page_indicator.c b/src/lib/elementary/efl_page_indicator.c
index 0262027784..7f5456af11 100644
--- a/src/lib/elementary/efl_page_indicator.c
+++ b/src/lib/elementary/efl_page_indicator.c
@@ -21,32 +21,11 @@ _efl_page_indicator_update(Eo *obj EINA_UNUSED,
}
EOLIAN static void
-_efl_page_indicator_pack_begin(Eo *obj EINA_UNUSED,
- Efl_Page_Indicator_Data *pd)
-{
- pd->cnt++;
-}
-
-EOLIAN static void
-_efl_page_indicator_pack_end(Eo *obj EINA_UNUSED,
- Efl_Page_Indicator_Data *pd)
-{
- pd->cnt++;
-}
-
-EOLIAN static void
-_efl_page_indicator_pack_before(Eo *obj EINA_UNUSED,
- Efl_Page_Indicator_Data *pd,
- int index EINA_UNUSED)
-{
- pd->cnt++;
-}
-
-EOLIAN static void
-_efl_page_indicator_pack_after(Eo *obj EINA_UNUSED,
- Efl_Page_Indicator_Data *pd,
- int index EINA_UNUSED)
+_efl_page_indicator_pack(Eo *obj EINA_UNUSED,
+ Efl_Page_Indicator_Data *pd,
+ int index EINA_UNUSED)
{
+ ERR("called");
pd->cnt++;
}
@@ -68,24 +47,13 @@ _efl_page_indicator_efl_object_constructor(Eo *obj,
EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_update,
EFL_FUNC_CALL(pos), double pos)
-EOAPI EFL_VOID_FUNC_BODY(efl_page_indicator_pack_begin)
-EOAPI EFL_VOID_FUNC_BODY(efl_page_indicator_pack_end)
-EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack_before,
+EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack,
EFL_FUNC_CALL(index), int index)
-EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack_after,
- 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_begin, \
- _efl_page_indicator_pack_begin), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_end, \
- _efl_page_indicator_pack_end), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_before, \
- _efl_page_indicator_pack_before), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_after, \
- _efl_page_indicator_pack_after)
+ EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
+ _efl_page_indicator_pack)
#include "efl_page_indicator.eo.c"
diff --git a/src/lib/elementary/efl_page_indicator_icon.c b/src/lib/elementary/efl_page_indicator_icon.c
index 14dda4211e..31fe53e2b8 100644
--- a/src/lib/elementary/efl_page_indicator_icon.c
+++ b/src/lib/elementary/efl_page_indicator_icon.c
@@ -21,119 +21,60 @@ _efl_page_indicator_icon_update(Eo *obj,
EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
Eo *item;
int page = efl_ui_pager_current_page_get(spd->pager.obj);
+ double delta = fabs(pos);
- if (pos < 0)
- {
- item = eina_list_nth(pd->items, page);
- eina_value_set(pd->v, (1.0 + pos));
- efl_layout_signal_message_send(item, 1, *(pd->v));
+ item = eina_list_nth(pd->items, page);
+ eina_value_set(pd->v, (1.0 - delta));
+ efl_layout_signal_message_send(item, 1, *(pd->v));
- item = eina_list_nth(pd->items,
- (page - 1 + spd->cnt) % spd->cnt);
- eina_value_set(pd->v, (pos * -1.0));
- efl_layout_signal_message_send(item, 1, *(pd->v));
- }
+ if (pos < 0)
+ item = eina_list_nth(pd->items, (page - 1 + spd->cnt) % spd->cnt);
else
- {
- item = eina_list_nth(pd->items, page);
- eina_value_set(pd->v, (1.0 - pos));
- efl_layout_signal_message_send(item, 1, *(pd->v));
+ item = eina_list_nth(pd->items, (page + 1 + spd->cnt) % spd->cnt);
- item = eina_list_nth(pd->items,
- (page + 1 + spd->cnt) % spd->cnt);
- eina_value_set(pd->v, pos);
- efl_layout_signal_message_send(item, 1, *(pd->v));
- }
+ eina_value_set(pd->v, delta);
+ efl_layout_signal_message_send(item, 1, *(pd->v));
}
EOLIAN static void
-_efl_page_indicator_icon_pack_begin(Eo *obj,
- Efl_Page_Indicator_Icon_Data *pd)
-{
- EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
- Eo *item;
-
- efl_page_indicator_pack_begin(efl_super(obj, MY_CLASS));
-
- item = efl_add(EFL_CANVAS_LAYOUT_CLASS, spd->idbox);
- pd->items = eina_list_prepend(pd->items, item);
-
- elm_widget_theme_object_set(spd->idbox, item,
- "pager", "indicator", "default");
- efl_gfx_size_hint_align_set(item, 0.5, 0.5);
- efl_gfx_size_hint_weight_set(item, 0, 0);
- efl_pack_begin(spd->idbox, item);
-}
-
-EOLIAN static void
-_efl_page_indicator_icon_pack_end(Eo *obj,
- Efl_Page_Indicator_Icon_Data *pd)
-{
- EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
- Eo *item;
-
- efl_page_indicator_pack_end(efl_super(obj, MY_CLASS));
-
- item = efl_add(EFL_CANVAS_LAYOUT_CLASS, spd->idbox);
- pd->items = eina_list_append(pd->items, item);
-
- elm_widget_theme_object_set(spd->idbox, item,
- "pager", "indicator", "default");
- efl_gfx_size_hint_align_set(item, 0.5, 0.5);
- efl_gfx_size_hint_weight_set(item, 0, 0);
- efl_pack_end(spd->idbox, item);
-}
-
-EOLIAN static void
-_efl_page_indicator_icon_pack_before(Eo *obj,
- Efl_Page_Indicator_Icon_Data *pd,
- int index)
-{
- EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
- Eo *item, *existing;
-
- efl_page_indicator_pack_before(efl_super(obj, MY_CLASS), index);
-
- existing = eina_list_nth(pd->items, index);
-
- item = efl_add(EFL_CANVAS_LAYOUT_CLASS, spd->idbox);
- pd->items = eina_list_prepend_relative(pd->items, item, existing);
-
- elm_widget_theme_object_set(spd->idbox, item,
- "pager", "indicator", "default");
- efl_gfx_size_hint_align_set(item, 0.5, 0.5);
- efl_gfx_size_hint_weight_set(item, 0, 0);
-
- efl_pack_before(spd->idbox, item, existing);
-}
-
-EOLIAN static void
-_efl_page_indicator_icon_pack_after(Eo *obj,
- Efl_Page_Indicator_Icon_Data *pd,
- int index)
+_efl_page_indicator_icon_pack(Eo *obj,
+ Efl_Page_Indicator_Icon_Data *pd,
+ int index)
{
EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
Eo *item, *existing;
- efl_page_indicator_pack_after(efl_super(obj, MY_CLASS), index);
-
- existing = eina_list_nth(pd->items, index);
+ efl_page_indicator_pack(efl_super(obj, MY_CLASS), index);
item = efl_add(EFL_CANVAS_LAYOUT_CLASS, spd->idbox);
- pd->items = eina_list_append_relative(pd->items, item, existing);
-
elm_widget_theme_object_set(spd->idbox, item,
"pager", "indicator", "default");
efl_gfx_size_hint_align_set(item, 0.5, 0.5);
efl_gfx_size_hint_weight_set(item, 0, 0);
- efl_pack_after(spd->idbox, item, existing);
+ if (index == 0)
+ {
+ pd->items = eina_list_prepend(pd->items, item);
+ efl_pack_begin(spd->idbox, item);
+ }
+ else if (index == (spd->cnt - 1))
+ {
+ pd->items = eina_list_append(pd->items, item);
+ efl_pack_end(spd->idbox, item);
+ }
+ else
+ {
+ existing = eina_list_nth(pd->items, index);
+ pd->items = eina_list_prepend_relative(pd->items, item, existing);
+ efl_pack_before(spd->idbox, item, existing);
+ }
}
EOLIAN static Eo *
_efl_page_indicator_icon_efl_object_constructor(Eo *obj,
Efl_Page_Indicator_Icon_Data *pd)
{
+ ERR("call");
EFL_PAGE_INDICATOR_DATA_GET(obj, spd);
Eo *item;
int i, page;
@@ -174,23 +115,17 @@ _efl_page_indicator_icon_efl_object_destructor(Eo *obj,
{
Eo *item;
- efl_destructor(efl_super(obj, MY_CLASS));
-
EINA_LIST_FREE(pd->items, item)
efl_del(item);
+
+ efl_destructor(efl_super(obj, MY_CLASS));
}
#define EFL_PAGE_INDICATOR_ICON_EXTRA_OPS \
EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \
_efl_page_indicator_icon_update), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_begin, \
- _efl_page_indicator_icon_pack_begin), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_end, \
- _efl_page_indicator_icon_pack_end), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_before, \
- _efl_page_indicator_icon_pack_before), \
- EFL_OBJECT_OP_FUNC(efl_page_indicator_pack_after, \
- _efl_page_indicator_icon_pack_after)
+ EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
+ _efl_page_indicator_icon_pack)
#include "efl_page_indicator_icon.eo.c"
diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c
index 88873fd834..2b6e2d90a8 100644
--- a/src/lib/elementary/efl_ui_pager.c
+++ b/src/lib/elementary/efl_ui_pager.c
@@ -347,7 +347,7 @@ _efl_ui_pager_efl_pack_linear_pack_begin(Eo *obj,
if (pd->indicator)
{
- efl_page_indicator_pack_begin(pd->indicator);
+ efl_page_indicator_pack(pd->indicator, 0);
efl_page_indicator_update(pd->indicator, pd->curr.pos);
}
@@ -370,7 +370,7 @@ _efl_ui_pager_efl_pack_linear_pack_end(Eo *obj,
if (pd->indicator)
{
- efl_page_indicator_pack_end(pd->indicator);
+ efl_page_indicator_pack(pd->indicator, (pd->cnt - 1));
efl_page_indicator_update(pd->indicator, pd->curr.pos);
}
@@ -398,7 +398,7 @@ _efl_ui_pager_efl_pack_linear_pack_before(Eo *obj,
if (pd->indicator)
{
- efl_page_indicator_pack_before(pd->indicator, index);
+ efl_page_indicator_pack(pd->indicator, index);
efl_page_indicator_update(pd->indicator, pd->curr.pos);
}
@@ -426,7 +426,7 @@ _efl_ui_pager_efl_pack_linear_pack_after(Eo *obj,
if (pd->indicator)
{
- efl_page_indicator_pack_after(pd->indicator, index);
+ efl_page_indicator_pack(pd->indicator, (index + 1));
efl_page_indicator_update(pd->indicator, pd->curr.pos);
}
@@ -454,7 +454,7 @@ _efl_ui_pager_efl_pack_linear_pack_at(Eo *obj,
if (pd->indicator)
{
- efl_page_indicator_pack_before(pd->indicator, index);
+ efl_page_indicator_pack(pd->indicator, index);
efl_page_indicator_update(pd->indicator, pd->curr.pos);
}
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index d07b433334..faf1e52a0d 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -739,10 +739,7 @@ EOAPI void efl_page_transition_pack_end(Eo *obj, Efl_Gfx *subobj);
EOAPI void 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_begin(Eo *obj);
-EOAPI void efl_page_indicator_pack_end(Eo *obj);
-EOAPI void efl_page_indicator_pack_before(Eo *obj, int index);
-EOAPI void efl_page_indicator_pack_after(Eo *obj, int index);
+EOAPI void efl_page_indicator_pack(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);