2019-01-25 00:41:24 -08:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "elementary_config.h"
|
|
|
|
#endif
|
|
|
|
#define EO_BETA_API
|
|
|
|
#define EFL_UI_WIDGET_PROTECTED
|
|
|
|
|
2019-03-07 07:39:06 -08:00
|
|
|
#include <Efl_Ui.h>
|
2019-01-25 00:41:24 -08:00
|
|
|
#include <Elementary.h>
|
|
|
|
|
|
|
|
|
|
|
|
#define PAGE_NUM 3
|
|
|
|
|
|
|
|
|
|
|
|
/** |----------panes----------|
|
|
|
|
* ||--left---| |---right---||
|
|
|
|
* || | | layout ||
|
|
|
|
* || | ||---------|||
|
|
|
|
* ||naviframe| || pager |||
|
|
|
|
* || | || |||
|
|
|
|
* || | ||---------|||
|
|
|
|
* ||---------| |-----------||
|
|
|
|
* |-------------------------|
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum _Page_Type {
|
|
|
|
LAYOUT,
|
|
|
|
LIST,
|
|
|
|
BUTTON
|
|
|
|
} Page_Type;
|
|
|
|
|
|
|
|
typedef enum _Pack_Type {
|
|
|
|
PACK_BEGIN,
|
|
|
|
PACK_END,
|
|
|
|
PACK_BEFORE,
|
|
|
|
PACK_AFTER,
|
|
|
|
PACK_AT,
|
2019-04-16 18:41:43 -07:00
|
|
|
UNPACK_AT,
|
|
|
|
CLEAR
|
2019-01-25 00:41:24 -08:00
|
|
|
} Pack_Type;
|
|
|
|
|
|
|
|
typedef struct _Params {
|
|
|
|
Evas_Object *navi;
|
|
|
|
Eo *pager;
|
|
|
|
Eo *transition;
|
|
|
|
Eo *indicator;
|
|
|
|
int w, h;
|
|
|
|
int padding;
|
|
|
|
int side_page_num;
|
|
|
|
int curr_page;
|
|
|
|
Eina_Bool prev_block, next_block;
|
|
|
|
Eina_Bool wfill, hfill;
|
|
|
|
} Params;
|
|
|
|
|
|
|
|
typedef struct _Page_Set_Params {
|
|
|
|
Eo *pager;
|
|
|
|
Eo *spinner;
|
|
|
|
} Page_Set_Params;
|
|
|
|
|
|
|
|
typedef struct _Pack_Params {
|
|
|
|
Pack_Type type;
|
|
|
|
Eo *pager;
|
|
|
|
Eo *pack_sp;
|
|
|
|
Eo *unpack_sp;
|
|
|
|
Eo *unpack_btn;
|
|
|
|
} Pack_Params;
|
|
|
|
|
|
|
|
typedef struct _Size_Params {
|
|
|
|
Eo *pager;
|
|
|
|
Eo *slider;
|
|
|
|
Params *params;
|
|
|
|
} Size_Params;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static Eo *page_add(Page_Type p, Eo *parent)
|
|
|
|
{
|
|
|
|
Eo *page;
|
|
|
|
char buf[PATH_MAX];
|
|
|
|
int i;
|
|
|
|
|
|
|
|
switch (p) {
|
|
|
|
case LAYOUT:
|
|
|
|
snprintf(buf, sizeof(buf), "%s/objects/test_pager.edj",
|
|
|
|
elm_app_data_dir_get());
|
|
|
|
page = efl_add(EFL_UI_LAYOUT_CLASS, parent,
|
2019-02-27 10:17:09 -08:00
|
|
|
efl_file_set(efl_added, buf),
|
|
|
|
efl_file_key_set(efl_added, "page"),
|
|
|
|
efl_file_load(efl_added),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_text_set(efl_part(efl_added, "text"), "Layout Page"));
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_fill_set(page, EINA_TRUE, EINA_TRUE);
|
2019-01-25 00:41:24 -08:00
|
|
|
break;
|
|
|
|
case LIST:
|
|
|
|
page = elm_list_add(parent);
|
|
|
|
elm_list_select_mode_set(page, ELM_OBJECT_SELECT_MODE_ALWAYS);
|
|
|
|
evas_object_show(page);
|
|
|
|
for (i = 0; i < 20; i++) {
|
|
|
|
snprintf(buf, sizeof(buf), "List Page - Item #%d", i);
|
|
|
|
elm_list_item_append(page, buf, NULL, NULL, NULL, NULL);
|
|
|
|
}
|
|
|
|
evas_object_size_hint_weight_set(page, EVAS_HINT_EXPAND,
|
|
|
|
EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(page, EVAS_HINT_FILL,
|
|
|
|
EVAS_HINT_FILL);
|
|
|
|
break;
|
|
|
|
case BUTTON:
|
|
|
|
page = efl_add(EFL_UI_BUTTON_CLASS, parent,
|
|
|
|
efl_text_set(efl_added, "Button Page"));
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_fill_set(page, EINA_TRUE, EINA_TRUE);
|
2019-01-25 00:41:24 -08:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
snprintf(buf, sizeof(buf), "%s/objects/test_pager.edj",
|
|
|
|
elm_app_data_dir_get());
|
|
|
|
page = efl_add(EFL_UI_LAYOUT_CLASS, parent,
|
2019-02-27 10:17:09 -08:00
|
|
|
efl_file_set(efl_added, buf),
|
|
|
|
efl_file_key_set(efl_added, "page"),
|
|
|
|
efl_file_load(efl_added),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_text_set(efl_part(efl_added, "text"), "Layout Page"));
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_fill_set(page, EINA_TRUE, EINA_TRUE);
|
2019-01-25 00:41:24 -08:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return page;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void prev_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Eo *pager = data;
|
|
|
|
int curr_page = efl_ui_pager_current_page_get(pager);
|
|
|
|
|
|
|
|
efl_ui_pager_current_page_set(pager, (curr_page - 1));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void next_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Eo *pager = data;
|
|
|
|
int curr_page = efl_ui_pager_current_page_get(pager);
|
|
|
|
|
|
|
|
efl_ui_pager_current_page_set(pager, (curr_page + 1));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void back_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
elm_naviframe_item_pop(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void list_del_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
free(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void width_slider_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Params *params = data;
|
|
|
|
int h;
|
|
|
|
|
|
|
|
if (params->hfill) h = -1;
|
|
|
|
else h = params->h;
|
|
|
|
|
|
|
|
params->w = efl_ui_range_value_get(ev->object);
|
|
|
|
efl_ui_pager_page_size_set(params->pager, EINA_SIZE2D(params->w, h));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void height_slider_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Params *params = data;
|
|
|
|
int w;
|
|
|
|
|
|
|
|
if (params->wfill) w = -1;
|
|
|
|
else w = params->w;
|
|
|
|
|
|
|
|
params->h = efl_ui_range_value_get(ev->object);
|
|
|
|
efl_ui_pager_page_size_set(params->pager, EINA_SIZE2D(w, params->h));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void width_check_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Size_Params *params = data;
|
|
|
|
Eina_Bool ck = elm_check_selected_get(ev->object);
|
|
|
|
int w, h;
|
|
|
|
|
|
|
|
elm_object_disabled_set(params->slider, ck);
|
|
|
|
|
|
|
|
params->params->wfill = ck;
|
|
|
|
|
|
|
|
if (params->params->wfill) w = -1;
|
|
|
|
else w = params->params->w;
|
|
|
|
|
|
|
|
if (params->params->hfill) h = -1;
|
|
|
|
else h = params->params->h;
|
|
|
|
|
|
|
|
efl_ui_pager_page_size_set(params->pager, EINA_SIZE2D(w, h));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void height_check_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Size_Params *params = data;
|
|
|
|
Eina_Bool ck = elm_check_selected_get(ev->object);
|
|
|
|
int w, h;
|
|
|
|
|
|
|
|
elm_object_disabled_set(params->slider, ck);
|
|
|
|
|
|
|
|
params->params->hfill = ck;
|
|
|
|
|
|
|
|
if (params->params->wfill) w = -1;
|
|
|
|
else w = params->params->w;
|
|
|
|
|
|
|
|
if (params->params->hfill) h = -1;
|
|
|
|
else h = params->params->h;
|
|
|
|
|
|
|
|
efl_ui_pager_page_size_set(params->pager, EINA_SIZE2D(w, h));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void check_del_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
free(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void padding_slider_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Params *params = (Params *) data;
|
|
|
|
|
|
|
|
params->padding = efl_ui_range_value_get(ev->object);
|
|
|
|
efl_ui_pager_padding_set(params->pager, params->padding);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void side_page_num_slider_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Params *params = (Params *) data;
|
|
|
|
|
|
|
|
params->side_page_num = efl_ui_range_value_get(ev->object);
|
|
|
|
efl_page_transition_scroll_side_page_num_set(params->transition,
|
|
|
|
params->side_page_num);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Pack_Params *param = data;
|
|
|
|
Eo *pager = param->pager;
|
2019-03-30 09:54:19 -07:00
|
|
|
Eo *page = NULL, *curr_page;
|
2019-01-25 00:41:24 -08:00
|
|
|
int index, cnt;
|
|
|
|
|
2019-04-16 18:41:43 -07:00
|
|
|
if ((param->type != UNPACK_AT) && (param->type != CLEAR)) {
|
2019-01-25 00:41:24 -08:00
|
|
|
index = efl_content_count(pager);
|
|
|
|
|
|
|
|
switch (index % 3) {
|
|
|
|
case 0:
|
|
|
|
page = page_add(LAYOUT, pager);
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
page = page_add(LIST, pager);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
page = page_add(BUTTON, pager);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
page = page_add(LAYOUT, pager);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (param->type) {
|
|
|
|
case PACK_BEGIN:
|
|
|
|
efl_pack_begin(pager, page);
|
|
|
|
break;
|
|
|
|
case PACK_END:
|
|
|
|
efl_pack_end(pager, page);
|
|
|
|
break;
|
|
|
|
case PACK_BEFORE:
|
|
|
|
index = efl_ui_pager_current_page_get(pager);
|
|
|
|
curr_page = efl_pack_content_get(pager, index);
|
|
|
|
efl_pack_before(pager, page, curr_page);
|
|
|
|
break;
|
|
|
|
case PACK_AFTER:
|
|
|
|
index = efl_ui_pager_current_page_get(pager);
|
|
|
|
curr_page = efl_pack_content_get(pager, index);
|
|
|
|
efl_pack_after(pager, page, curr_page);
|
|
|
|
break;
|
|
|
|
case PACK_AT:
|
|
|
|
index = efl_ui_range_value_get(param->pack_sp);
|
|
|
|
efl_pack_at(pager, page, index);
|
|
|
|
break;
|
|
|
|
case UNPACK_AT:
|
|
|
|
index = efl_ui_range_value_get(param->unpack_sp);
|
2019-04-16 18:41:43 -07:00
|
|
|
page = efl_pack_unpack_at(pager, index);
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_del(page);
|
|
|
|
break;
|
2019-04-16 18:41:43 -07:00
|
|
|
case CLEAR:
|
|
|
|
efl_pack_clear(pager);
|
|
|
|
break;
|
2019-01-25 00:41:24 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
cnt = efl_content_count(pager);
|
|
|
|
|
|
|
|
index = efl_ui_range_value_get(param->pack_sp);
|
|
|
|
if (index > cnt)
|
|
|
|
efl_ui_range_value_set(param->pack_sp, cnt);
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(param->pack_sp, 0, cnt);
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
if (cnt > 0)
|
|
|
|
{
|
|
|
|
elm_object_disabled_set(param->unpack_btn, EINA_FALSE);
|
|
|
|
elm_object_disabled_set(param->unpack_sp, EINA_FALSE);
|
|
|
|
|
|
|
|
cnt -= 1;
|
|
|
|
index = efl_ui_range_value_get(param->unpack_sp);
|
|
|
|
if (index > cnt)
|
|
|
|
efl_ui_range_value_set(param->unpack_sp, cnt);
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(param->unpack_sp, 0, cnt);
|
2019-01-25 00:41:24 -08:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
elm_object_disabled_set(param->unpack_btn, EINA_TRUE);
|
|
|
|
elm_object_disabled_set(param->unpack_sp, EINA_TRUE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void pack_btn_del_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
free(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void page_set_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Page_Set_Params *psp = data;
|
|
|
|
|
|
|
|
efl_ui_pager_current_page_set(psp->pager,
|
|
|
|
efl_ui_range_value_get(psp->spinner));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void page_set_btn_del_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
free(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void prev_block_check_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Eo *pager = data;
|
|
|
|
Eina_Bool prev, next;
|
|
|
|
|
2019-08-05 10:42:02 -07:00
|
|
|
prev = efl_ui_selectable_selected_get(ev->object);
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
efl_ui_pager_scroll_block_get(pager, NULL, &next);
|
|
|
|
efl_ui_pager_scroll_block_set(pager, prev, next);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void next_block_check_cb(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Eo *pager = data;
|
|
|
|
Eina_Bool prev, next;
|
|
|
|
|
2019-08-05 10:42:02 -07:00
|
|
|
next = efl_ui_selectable_selected_get(ev->object);
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
efl_ui_pager_scroll_block_get(pager, &prev, NULL);
|
|
|
|
efl_ui_pager_scroll_block_set(pager, prev, next);
|
|
|
|
}
|
|
|
|
|
2019-04-16 18:41:43 -07:00
|
|
|
static void loop_radio_cb(void *data, const Efl_Event *ev)
|
2019-01-25 00:41:24 -08:00
|
|
|
{
|
|
|
|
Eo *pager = data;
|
2019-05-29 11:06:25 -07:00
|
|
|
int state = efl_ui_radio_group_selected_value_get(efl_ui_widget_parent_get(ev->object));
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
efl_ui_pager_loop_mode_set(pager, state);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void indicator_icon_btn_cb(void *data,
|
|
|
|
const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = data;
|
|
|
|
|
|
|
|
params->indicator = efl_add(EFL_PAGE_INDICATOR_ICON_CLASS, params->pager);
|
|
|
|
efl_ui_pager_indicator_set(params->pager, params->indicator);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void indicator_none_btn_cb(void *data,
|
|
|
|
const Efl_Event *ev EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = data;
|
|
|
|
efl_ui_pager_indicator_set(params->pager, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void page_size_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = data;
|
|
|
|
Size_Params *size_params;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *btn, *box, *fr, *inbox, *ck, *sl;
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
|
|
|
elm_naviframe_item_push(navi, "Page Size", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
// Width
|
|
|
|
fr = elm_frame_add(box);
|
|
|
|
elm_object_text_set(fr, "Width");
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(fr, -1, -1);
|
|
|
|
efl_gfx_hint_weight_set(fr, 1, 1);
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_pack(box, fr);
|
|
|
|
efl_gfx_entity_visible_set(fr, 1);
|
|
|
|
|
|
|
|
inbox = efl_add(EFL_UI_BOX_CLASS, fr,
|
|
|
|
efl_content_set(fr, efl_added));
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
ck = efl_add(EFL_UI_CHECK_CLASS, inbox);
|
|
|
|
efl_text_set(ck, "Fill");
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_pack_end(inbox, ck);
|
|
|
|
efl_gfx_entity_visible_set(ck, 1);
|
|
|
|
|
|
|
|
sl = efl_add(EFL_UI_SLIDER_CLASS, inbox,
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(efl_added, 100, 200),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_ui_range_value_set(efl_added, params->w),
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(100, 0)),
|
2019-07-22 03:27:20 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,
|
2019-01-25 00:41:24 -08:00
|
|
|
width_slider_cb, params),
|
|
|
|
efl_pack_end(inbox, efl_added));
|
|
|
|
|
|
|
|
size_params = calloc(1, sizeof(Size_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!size_params) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
size_params->slider = sl;
|
|
|
|
size_params->pager = params->pager;
|
|
|
|
size_params->params = params;
|
|
|
|
|
2019-08-05 10:42:02 -07:00
|
|
|
efl_event_callback_add(ck, EFL_UI_EVENT_SELECTED_CHANGED, width_check_cb,
|
2019-01-25 00:41:24 -08:00
|
|
|
size_params);
|
|
|
|
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
|
|
|
|
|
|
|
|
if (params->wfill)
|
|
|
|
{
|
|
|
|
elm_check_state_set(ck, EINA_TRUE);
|
|
|
|
elm_object_disabled_set(sl, EINA_TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Height
|
|
|
|
fr = elm_frame_add(box);
|
|
|
|
elm_object_text_set(fr, "Height");
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(fr, -1, -1);
|
|
|
|
efl_gfx_hint_weight_set(fr, 1, 1);
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_pack(box, fr);
|
|
|
|
efl_gfx_entity_visible_set(fr, 1);
|
|
|
|
|
|
|
|
inbox = efl_add(EFL_UI_BOX_CLASS, fr,
|
|
|
|
efl_content_set(fr, efl_added));
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
ck = efl_add(EFL_UI_CHECK_CLASS, inbox);
|
|
|
|
efl_text_set(ck, "Fill");
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_pack_end(inbox, ck);
|
|
|
|
efl_gfx_entity_visible_set(ck, 1);
|
|
|
|
|
|
|
|
sl = efl_add(EFL_UI_SLIDER_CLASS, inbox,
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(efl_added, 100, 300),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_ui_range_value_set(efl_added, params->h),
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(100, 0)),
|
2019-07-22 03:27:20 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,
|
2019-01-25 00:41:24 -08:00
|
|
|
height_slider_cb, params),
|
|
|
|
efl_pack_end(inbox, efl_added));
|
|
|
|
|
|
|
|
size_params = calloc(1, sizeof(Size_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!size_params) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
size_params->slider = sl;
|
|
|
|
size_params->pager = params->pager;
|
|
|
|
size_params->params = params;
|
|
|
|
|
2019-08-05 10:42:02 -07:00
|
|
|
efl_event_callback_add(ck, EFL_UI_EVENT_SELECTED_CHANGED, height_check_cb,
|
2019-01-25 00:41:24 -08:00
|
|
|
size_params);
|
|
|
|
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
|
|
|
|
|
|
|
|
if (params->hfill)
|
|
|
|
{
|
|
|
|
elm_check_state_set(ck, EINA_TRUE);
|
|
|
|
elm_object_disabled_set(sl, EINA_TRUE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void padding_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *btn, *box;
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Padding Size", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
efl_add(EFL_UI_SLIDER_CLASS, box,
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(efl_added, 0, 50),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_ui_range_value_set(efl_added, params->padding),
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(100, 0)),
|
2019-07-22 03:27:20 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,
|
2019-01-25 00:41:24 -08:00
|
|
|
padding_slider_cb, params),
|
|
|
|
efl_pack_end(box, efl_added));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void side_page_num_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *btn, *box;
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Side Page Num", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
efl_add(EFL_UI_SLIDER_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "side page num"),
|
|
|
|
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.0f"),
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(efl_added, 0, 3),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_ui_range_value_set(efl_added, params->side_page_num),
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(efl_added, 1, 1),
|
|
|
|
efl_gfx_hint_align_set(efl_added, -1, -1),
|
2019-07-22 03:27:20 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,
|
2019-01-25 00:41:24 -08:00
|
|
|
side_page_num_slider_cb, params),
|
|
|
|
efl_pack_end(box, efl_added));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void pack_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *pager = params->pager;
|
|
|
|
Eo *btn, *box, *in_box1, *in_box2, *sp1, *sp2;
|
|
|
|
Pack_Params *pack_param;
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Pack", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
in_box1 = efl_add(EFL_UI_BOX_CLASS, box,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1,
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(efl_added, 0,
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_content_count(pager)),
|
|
|
|
efl_ui_range_value_set(efl_added,
|
|
|
|
efl_ui_pager_current_page_get(pager)));
|
|
|
|
|
|
|
|
in_box2 = efl_add(EFL_UI_BOX_CLASS, box,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2);
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, in_box2,
|
|
|
|
efl_text_set(efl_added, "Unpack At"));
|
|
|
|
|
|
|
|
// Pack Begin
|
|
|
|
pack_param = calloc(1, sizeof(Pack_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!pack_param) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_param->pager = pager;
|
|
|
|
pack_param->pack_sp = sp1;
|
|
|
|
pack_param->unpack_sp = sp2;
|
|
|
|
pack_param->unpack_btn = btn;
|
|
|
|
pack_param->type = PACK_BEGIN;
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "Pack Begin"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
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));
|
|
|
|
|
|
|
|
// Pack End
|
|
|
|
pack_param = calloc(1, sizeof(Pack_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!pack_param) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_param->pager = pager;
|
|
|
|
pack_param->pack_sp = sp1;
|
|
|
|
pack_param->unpack_sp = sp2;
|
|
|
|
pack_param->unpack_btn = btn;
|
|
|
|
pack_param->type = PACK_END;
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "Pack End"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
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));
|
|
|
|
|
|
|
|
// Pack Before
|
|
|
|
pack_param = calloc(1, sizeof(Pack_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!pack_param) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_param->pager = pager;
|
|
|
|
pack_param->pack_sp = sp1;
|
|
|
|
pack_param->unpack_sp = sp2;
|
|
|
|
pack_param->unpack_btn = btn;
|
|
|
|
pack_param->type = PACK_BEFORE;
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "Pack Before Current Page"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
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));
|
|
|
|
|
|
|
|
// Pack After
|
|
|
|
pack_param = calloc(1, sizeof(Pack_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!pack_param) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_param->pager = pager;
|
|
|
|
pack_param->pack_sp = sp1;
|
|
|
|
pack_param->unpack_sp = sp2;
|
|
|
|
pack_param->unpack_btn = btn;
|
|
|
|
pack_param->type = PACK_AFTER;
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "Pack After Current Page"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
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));
|
|
|
|
|
|
|
|
// Pack At
|
|
|
|
pack_param = calloc(1, sizeof(Pack_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!pack_param) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_param->pager = pager;
|
|
|
|
pack_param->pack_sp = sp1;
|
|
|
|
pack_param->unpack_sp = sp2;
|
|
|
|
pack_param->unpack_btn = btn;
|
|
|
|
pack_param->type = PACK_AT;
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, in_box1,
|
|
|
|
efl_text_set(efl_added, "Pack At"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_btn_cb, pack_param),
|
|
|
|
efl_event_callback_add(efl_added, EFL_EVENT_DEL,
|
|
|
|
pack_btn_del_cb, pack_param),
|
|
|
|
efl_pack_end(in_box1, efl_added));
|
|
|
|
|
|
|
|
efl_pack_end(box, in_box1);
|
|
|
|
efl_pack_end(in_box1, sp1);
|
|
|
|
|
|
|
|
// Unpack At
|
|
|
|
pack_param = calloc(1, sizeof(Pack_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!pack_param) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_param->pager = pager;
|
|
|
|
pack_param->pack_sp = sp1;
|
|
|
|
pack_param->unpack_sp = sp2;
|
|
|
|
pack_param->unpack_btn = btn;
|
|
|
|
pack_param->type = UNPACK_AT;
|
|
|
|
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(btn, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
pack_btn_cb, pack_param);
|
|
|
|
efl_event_callback_add(btn, EFL_EVENT_DEL,
|
|
|
|
pack_btn_del_cb, pack_param);
|
|
|
|
|
|
|
|
if (efl_content_count(pager) > 0)
|
|
|
|
{
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(sp2, 0,
|
2019-01-25 00:41:24 -08:00
|
|
|
(efl_content_count(pager) - 1));
|
|
|
|
efl_ui_range_value_set(sp2,
|
|
|
|
efl_ui_pager_current_page_get(pager));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
elm_object_disabled_set(btn, EINA_TRUE);
|
|
|
|
elm_object_disabled_set(sp2, EINA_TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
efl_pack_end(box, in_box2);
|
|
|
|
efl_pack_end(in_box2, btn);
|
|
|
|
efl_pack_end(in_box2, sp2);
|
2019-04-16 18:41:43 -07:00
|
|
|
|
|
|
|
// 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"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-04-16 18:41:43 -07:00
|
|
|
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));
|
2019-01-25 00:41:24 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void current_page_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *pager = params->pager;
|
|
|
|
Eo *btn, *box, *sp;
|
|
|
|
Page_Set_Params *psp = calloc(1, sizeof(Page_Set_Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!psp) return;
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Current Page", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "Set Current Page As"),
|
|
|
|
efl_pack_end(box, efl_added));
|
|
|
|
|
|
|
|
sp = efl_add(EFL_UI_SPIN_BUTTON_CLASS, box,
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(efl_added, -1, -1),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_pack_end(box, efl_added));
|
|
|
|
|
|
|
|
if (efl_content_count(pager) > 0)
|
|
|
|
{
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(sp, 0,
|
2019-01-25 00:41:24 -08:00
|
|
|
(efl_content_count(pager) - 1));
|
|
|
|
efl_ui_range_value_set(sp,
|
|
|
|
efl_ui_pager_current_page_get(pager));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
elm_object_disabled_set(btn, EINA_TRUE);
|
|
|
|
elm_object_disabled_set(sp, EINA_TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
psp->pager = pager;
|
|
|
|
psp->spinner = sp;
|
|
|
|
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(btn, EFL_INPUT_EVENT_CLICKED, page_set_btn_cb, psp);
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_event_callback_add(btn, EFL_EVENT_DEL, page_set_btn_del_cb, psp);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void scroll_block_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *pager = params->pager;
|
2019-05-29 11:06:25 -07:00
|
|
|
Eo *btn, *box, *c;
|
2019-01-25 00:41:24 -08:00
|
|
|
Eina_Bool prev, next;
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Scroll Block", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
efl_ui_pager_scroll_block_get(pager, &prev, &next);
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
c = efl_add(EFL_UI_CHECK_CLASS, box);
|
|
|
|
efl_ui_widget_style_set(c, "toggle");
|
|
|
|
efl_text_set(c, "Prev Block");
|
2019-08-05 10:42:02 -07:00
|
|
|
efl_ui_selectable_selected_set(c, prev);
|
|
|
|
efl_event_callback_add(c, EFL_UI_EVENT_SELECTED_CHANGED,
|
2019-05-29 11:06:25 -07:00
|
|
|
prev_block_check_cb, pager);
|
|
|
|
efl_pack_end(box, c);
|
|
|
|
|
|
|
|
c = efl_add(EFL_UI_CHECK_CLASS, box);
|
|
|
|
efl_ui_widget_style_set(c, "toggle");
|
|
|
|
efl_text_set(c, "Next Block");
|
2019-08-05 10:42:02 -07:00
|
|
|
efl_ui_selectable_selected_set(c, next);
|
|
|
|
efl_event_callback_add(c, EFL_UI_EVENT_SELECTED_CHANGED,
|
2019-05-29 11:06:25 -07:00
|
|
|
next_block_check_cb, pager);
|
|
|
|
efl_pack_end(box, c);
|
2019-01-25 00:41:24 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void loop_cb(void *data EINA_UNUSED,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *pager = params->pager;
|
2019-04-16 18:41:43 -07:00
|
|
|
Eo *btn, *box, *rd;
|
|
|
|
Efl_Ui_Pager_Loop loop;
|
2019-01-25 00:41:24 -08:00
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
box = efl_add(EFL_UI_RADIO_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Loop", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
rd = efl_add(EFL_UI_RADIO_CLASS, box);
|
|
|
|
efl_ui_radio_state_value_set(rd, EFL_UI_PAGER_LOOP_DISABLED);
|
|
|
|
efl_text_set(rd, "Disabled");
|
|
|
|
efl_gfx_hint_weight_set(rd, 1, 0);
|
2019-08-05 10:42:02 -07:00
|
|
|
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED,
|
2019-05-29 11:06:25 -07:00
|
|
|
loop_radio_cb, pager);
|
|
|
|
efl_pack(box, rd);
|
|
|
|
|
|
|
|
rd = efl_add(EFL_UI_RADIO_CLASS, box);
|
|
|
|
efl_ui_radio_state_value_set(rd, EFL_UI_PAGER_LOOP_ENABLED);
|
|
|
|
efl_text_set(rd, "Enabled");
|
|
|
|
efl_gfx_hint_weight_set(rd, 1, 0);
|
2019-08-05 10:42:02 -07:00
|
|
|
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED,
|
2019-05-29 11:06:25 -07:00
|
|
|
loop_radio_cb, pager);
|
|
|
|
efl_pack(box, rd);
|
2019-04-16 18:41:43 -07:00
|
|
|
|
|
|
|
loop = efl_ui_pager_loop_mode_get(pager);
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
efl_ui_radio_group_selected_value_set(efl_ui_radio_box_group_get(box), loop);
|
2019-04-16 18:41:43 -07:00
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
2019-01-25 00:41:24 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void indicator_cb(void *data EINA_UNUSED,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Params *params = (Params *)data;
|
|
|
|
Evas_Object *navi = params->navi;
|
|
|
|
Eo *btn, *box;
|
|
|
|
|
|
|
|
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
|
|
|
|
efl_text_set(efl_added, "Back"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
back_btn_cb, navi));
|
|
|
|
|
|
|
|
box = efl_add(EFL_UI_BOX_CLASS, navi,
|
2019-04-24 06:41:39 -07:00
|
|
|
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
|
2019-01-25 00:41:24 -08:00
|
|
|
elm_naviframe_item_push(navi, "Indicator", btn, NULL,
|
|
|
|
efl_added, NULL));
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "Icon Type"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
indicator_icon_btn_cb, params),
|
|
|
|
efl_pack_end(box, efl_added));
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, box,
|
|
|
|
efl_text_set(efl_added, "None"),
|
2019-07-29 02:42:34 -07:00
|
|
|
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED,
|
2019-01-25 00:41:24 -08:00
|
|
|
indicator_none_btn_cb, params),
|
|
|
|
efl_pack_end(box, efl_added));
|
|
|
|
}
|
|
|
|
|
|
|
|
void test_ui_pager_scroll(void *data EINA_UNUSED,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Eo *win, *panes, *navi, *list, *layout, *pager, *page, *tran;
|
|
|
|
Params *params = NULL;
|
|
|
|
char buf[PATH_MAX];
|
|
|
|
int i;
|
|
|
|
|
|
|
|
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
|
2019-03-04 10:37:24 -08:00
|
|
|
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_text_set(efl_added, "Pager"),
|
|
|
|
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
|
|
|
|
|
|
|
|
panes = efl_add(EFL_UI_PANES_CLASS, win,
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(efl_added, 1, 1),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_ui_panes_split_ratio_set(efl_added, 0.3),
|
|
|
|
efl_content_set(win, efl_added));
|
|
|
|
|
|
|
|
navi = elm_naviframe_add(panes);
|
|
|
|
evas_object_show(navi);
|
|
|
|
efl_content_set(efl_part(panes, "first"), navi);
|
|
|
|
|
|
|
|
list = elm_list_add(navi);
|
|
|
|
elm_list_horizontal_set(list, EINA_FALSE);
|
|
|
|
elm_list_select_mode_set(list, ELM_OBJECT_SELECT_MODE_ALWAYS);
|
|
|
|
elm_naviframe_item_push(navi, "Properties", NULL, NULL, list, NULL);
|
|
|
|
evas_object_show(list);
|
|
|
|
|
|
|
|
snprintf(buf, sizeof(buf), "%s/objects/test_pager.edj",
|
|
|
|
elm_app_data_dir_get());
|
|
|
|
layout = efl_add(EFL_UI_LAYOUT_CLASS, panes,
|
2019-02-27 10:17:09 -08:00
|
|
|
efl_file_set(efl_added, buf),
|
|
|
|
efl_file_key_set(efl_added, "pager"),
|
|
|
|
efl_file_load(efl_added),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_content_set(efl_part(panes, "second"), efl_added));
|
|
|
|
|
|
|
|
pager = efl_add(EFL_UI_PAGER_CLASS, layout,
|
|
|
|
efl_content_set(efl_part(layout, "pager"), efl_added),
|
|
|
|
efl_ui_pager_page_size_set(efl_added, EINA_SIZE2D(200, 300)),
|
|
|
|
efl_ui_pager_padding_set(efl_added, 20));
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, layout,
|
|
|
|
efl_text_set(efl_added, "Prev"),
|
|
|
|
efl_event_callback_add(efl_added,
|
2019-07-29 02:42:34 -07:00
|
|
|
EFL_INPUT_EVENT_CLICKED, prev_btn_cb, pager),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_content_set(efl_part(layout, "prev_btn"), efl_added));
|
|
|
|
|
|
|
|
efl_add(EFL_UI_BUTTON_CLASS, layout,
|
|
|
|
efl_text_set(efl_added, "Next"),
|
|
|
|
efl_event_callback_add(efl_added,
|
2019-07-29 02:42:34 -07:00
|
|
|
EFL_INPUT_EVENT_CLICKED, next_btn_cb, pager),
|
2019-01-25 00:41:24 -08:00
|
|
|
efl_content_set(efl_part(layout, "next_btn"), efl_added));
|
|
|
|
|
|
|
|
tran = efl_add(EFL_PAGE_TRANSITION_SCROLL_CLASS, pager,
|
|
|
|
efl_ui_pager_transition_set(pager, efl_added));
|
|
|
|
|
|
|
|
params = calloc(1, sizeof(Params));
|
2019-02-13 23:08:33 -08:00
|
|
|
if (!params) return;
|
|
|
|
|
2019-01-25 00:41:24 -08:00
|
|
|
params->navi = navi;
|
|
|
|
params->pager = pager;
|
|
|
|
params->transition = NULL;
|
|
|
|
params->indicator = NULL;
|
|
|
|
params->w = 200;
|
|
|
|
params->h = 300;
|
|
|
|
params->padding = 20;
|
|
|
|
params->side_page_num = efl_page_transition_scroll_side_page_num_get(tran);
|
|
|
|
params->curr_page = 0;
|
|
|
|
params->wfill = EINA_FALSE;
|
|
|
|
params->hfill = EINA_FALSE;
|
|
|
|
params->prev_block = EINA_FALSE;
|
|
|
|
params->next_block = EINA_FALSE;
|
|
|
|
params->transition = tran;
|
|
|
|
|
|
|
|
elm_list_item_append(list, "Page Size", NULL, NULL, page_size_cb, params);
|
|
|
|
elm_list_item_append(list, "Padding", NULL, NULL, padding_cb, params);
|
|
|
|
elm_list_item_append(list, "Side Page Num", NULL, NULL, side_page_num_cb, params);
|
|
|
|
elm_list_item_append(list, "Pack / Unpack", NULL, NULL, pack_cb, params);
|
|
|
|
elm_list_item_append(list, "Current Page", NULL, NULL, current_page_cb, params);
|
|
|
|
elm_list_item_append(list, "Scroll Block", NULL, NULL, scroll_block_cb, params);
|
|
|
|
elm_list_item_append(list, "Loop", NULL, NULL, loop_cb, params);
|
|
|
|
elm_list_item_append(list, "Indicator", NULL, NULL, indicator_cb, params);
|
|
|
|
|
|
|
|
elm_list_go(list);
|
|
|
|
|
|
|
|
efl_event_callback_add(list, EFL_EVENT_DEL, list_del_cb, params);
|
|
|
|
|
|
|
|
for (i = 0; i < PAGE_NUM; i++) {
|
|
|
|
switch (i % 3) {
|
|
|
|
case 0:
|
|
|
|
page = page_add(LAYOUT, pager);
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
page = page_add(LIST, pager);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
page = page_add(BUTTON, pager);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
page = page_add(LAYOUT, pager);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
efl_pack_end(pager, page);
|
|
|
|
}
|
|
|
|
|
|
|
|
efl_gfx_entity_size_set(win, EINA_SIZE2D(580, 320));
|
|
|
|
}
|