test/efl_ui_pager_scroll: fix demo
- use radio than check for loop mode - use unpack_at function than unpack function - add CLEAR option
This commit is contained in:
parent
74c48f0296
commit
30bd541bf2
|
@ -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, *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,
|
||||
|
|
Loading…
Reference in New Issue