summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorJaehyun Cho <jae_hyun.cho@samsung.com>2019-04-17 10:41:43 +0900
committerJaehyun Cho <jae_hyun.cho@samsung.com>2019-04-17 15:21:49 +0900
commit561764b97213698297646dc61753381388219aaa (patch)
tree80a4cb1ec887142a59de79e3c3899de957c9ad12 /src/bin
parentb5c078bebbdc29126fcf6ea5f279912f2077829c (diff)
downloadefl-561764b97213698297646dc61753381388219aaa.tar.gz
Revert "Revert "test/efl_ui_pager_scroll: fix demo""
This reverts commit 5742caa6016bf0ea852059546ded493c2d52b1a7. To restore 30bd541bf264d369e2a96d27fa3ff5139c360e26 which implements features during feature freeze period, the revert commit is reverted.
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/elementary/test_ui_pager_scroll.c72
1 files changed, 57 insertions, 15 deletions
diff --git a/src/bin/elementary/test_ui_pager_scroll.c b/src/bin/elementary/test_ui_pager_scroll.c
index 30a4306f63..8df58c6570 100644
--- a/src/bin/elementary/test_ui_pager_scroll.c
+++ b/src/bin/elementary/test_ui_pager_scroll.c
@@ -36,7 +36,8 @@ typedef enum _Pack_Type {
PACK_BEFORE,
PACK_AFTER,
PACK_AT,
- UNPACK_AT
+ UNPACK_AT,
+ CLEAR
} Pack_Type;
typedef struct _Params {
@@ -240,7 +241,7 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
Eo *page = NULL, *curr_page;
int index, cnt;
- if (param->type != UNPACK_AT) {
+ if ((param->type != UNPACK_AT) && (param->type != CLEAR)) {
index = efl_content_count(pager);
switch (index % 3) {
@@ -282,10 +283,12 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
break;
case UNPACK_AT:
index = efl_ui_range_value_get(param->unpack_sp);
- page = efl_pack_content_get(pager, index);
- efl_pack_unpack(pager, page);
+ page = efl_pack_unpack_at(pager, index);
efl_del(page);
break;
+ case CLEAR:
+ efl_pack_clear(pager);
+ break;
}
cnt = efl_content_count(pager);
@@ -353,13 +356,11 @@ static void next_block_check_cb(void *data, const Efl_Event *ev)
efl_ui_pager_scroll_block_set(pager, prev, next);
}
-static void loop_check_cb(void *data, const Efl_Event *ev)
+static void loop_radio_cb(void *data, const Efl_Event *ev)
{
Eo *pager = data;
int state = efl_ui_nstate_value_get(ev->object);
- //FIXME use other widget (i.e. radio) than check
- // since loop might not be enabled according to the number of items
efl_ui_pager_loop_mode_set(pager, state);
}
@@ -701,6 +702,24 @@ static void pack_cb(void *data,
efl_pack_end(box, in_box2);
efl_pack_end(in_box2, btn);
efl_pack_end(in_box2, sp2);
+
+ // Clear
+ pack_param = calloc(1, sizeof(Pack_Params));
+ if (!pack_param) return;
+
+ pack_param->pager = pager;
+ pack_param->pack_sp = sp1;
+ pack_param->unpack_sp = sp2;
+ pack_param->unpack_btn = btn;
+ pack_param->type = CLEAR;
+
+ efl_add(EFL_UI_BUTTON_CLASS, box,
+ efl_text_set(efl_added, "Clear"),
+ efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
+ pack_btn_cb, pack_param),
+ efl_event_callback_add(efl_added, EFL_EVENT_DEL,
+ pack_btn_del_cb, pack_param),
+ efl_pack_end(box, efl_added));
}
static void current_page_cb(void *data,
@@ -798,7 +817,8 @@ static void loop_cb(void *data EINA_UNUSED,
Params *params = (Params *)data;
Evas_Object *navi = params->navi;
Eo *pager = params->pager;
- Eo *btn, *box;
+ Eo *btn, *box, *rd;
+ Efl_Ui_Pager_Loop loop;
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
efl_text_set(efl_added, "Back"),
@@ -810,13 +830,35 @@ static void loop_cb(void *data EINA_UNUSED,
elm_naviframe_item_push(navi, "Loop", btn, NULL,
efl_added, NULL));
- efl_add(EFL_UI_CHECK_CLASS, box,
- efl_ui_widget_style_set(efl_added, "toggle"),
- efl_text_set(efl_added, "Loop"),
- efl_ui_nstate_value_set(efl_added, efl_ui_pager_loop_mode_get(pager)),
- efl_event_callback_add(efl_added, EFL_UI_CHECK_EVENT_CHANGED,
- loop_check_cb, pager),
- efl_pack_end(box, efl_added));
+ rd = efl_add(EFL_UI_RADIO_CLASS, box,
+ efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_DISABLED),
+ efl_text_set(efl_added, "Disabled"),
+ efl_gfx_hint_weight_set(efl_added, 1, 0),
+ efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED,
+ loop_radio_cb, pager),
+ efl_pack(box, efl_added));
+
+ rd = efl_add(EFL_UI_RADIO_CLASS, box,
+ efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_ENABLED),
+ efl_ui_radio_group_add(efl_added, rd),
+ efl_text_set(efl_added, "Enabled"),
+ efl_gfx_hint_weight_set(efl_added, 1, 0),
+ efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED,
+ loop_radio_cb, pager),
+ efl_pack(box, efl_added));
+
+ loop = efl_ui_pager_loop_mode_get(pager);
+
+ efl_ui_nstate_value_set(rd, loop);
+
+ if (loop == EFL_UI_PAGER_LOOP_DISABLED)
+ {
+ Eina_Bool ret = efl_ui_pager_loop_mode_set(pager, EFL_UI_PAGER_LOOP_ENABLED);
+ if (!ret)
+ elm_object_disabled_set(rd, EINA_TRUE);
+ else
+ efl_ui_pager_loop_mode_set(pager, EFL_UI_PAGER_LOOP_DISABLED);
+ }
}
static void indicator_cb(void *data EINA_UNUSED,