diff options
-rw-r--r-- | data/Makefile.am | 6 | ||||
-rw-r--r-- | data/elementary/objects/test_pager.edc | 81 | ||||
-rw-r--r-- | src/Makefile_Elementary.am | 1 | ||||
-rw-r--r-- | src/bin/elementary/test.c | 5 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_ui_pager.c | 274 |
5 files changed, 367 insertions, 0 deletions
diff --git a/data/Makefile.am b/data/Makefile.am index 19c056f789..5b94d6232e 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -226,6 +226,7 @@ elementary/objects/test_prefs.edj \ elementary/objects/test_prefs.epb \ elementary/objects/test_focus_style.edj \ elementary/objects/test_tooltip.edj \ +elementary/objects/test_pager.edj \ $(NULL) CLEANFILES += $(elementaryobjects_DATA) @@ -287,6 +288,11 @@ elementary/objects/test_tooltip.edj: elementary/objects/test_tooltip.edc $(MKDIR_P) elementary/objects/; \ $(EDJE_CC) $(EDJE_CC_FLAGS) -id $(top_srcdir)/data/elementary/themes/img $< $@ +elementary/objects/test_pager.edj: elementary/objects/test_pager.edc + $(AM_V_EDJ) \ + $(MKDIR_P) elementary/objects/; \ + $(EDJE_CC) $(EDJE_CC_FLAGS) $< $@ + elementary/objects/test_prefs.epb: elementary/objects/test_prefs.epc $(AM_V_EPB) \ $(MKDIR_P) elementary/objects/; \ diff --git a/data/elementary/objects/test_pager.edc b/data/elementary/objects/test_pager.edc new file mode 100644 index 0000000000..b90b7e91e7 --- /dev/null +++ b/data/elementary/objects/test_pager.edc @@ -0,0 +1,81 @@ +collections { + group { + name: "pagecontrol_example"; + parts { + rect { "bg"; + desc { "default"; + color: 0 0 0 255; + } + } + swallow { "pagecontrol"; + desc { "default"; + } + } + swallow { "pageindicator"; + desc { "default"; + rel2.relative: 1.0 0.1; + } + } + } + } + group { + name: "page"; + parts { + rect { "bg"; + desc { "default"; + } + } + text { "tl"; + desc { "default"; + rel1.relative: 0 0; + rel2.relative: 0 0; + align: 0 0; + color: 0 0 0 255; + text { size: 10; + min: 1 1; + } + } + } + text { "tr"; + desc { "default"; + rel1.relative: 1 0; + rel2.relative: 1 0; + align: 1 0; + color: 0 0 0 255; + text { size: 10; + min: 1 1; + } + } + } + text { "bl"; + desc { "default"; + rel1.relative: 0 1; + rel2.relative: 0 1; + align: 0 1; + color: 0 0 0 255; + text { size: 10; + min: 1 1; + } + } + } + text { "br"; + desc { "default"; + rel1.relative: 1 1; + rel2.relative: 1 1; + align: 1 1; + color: 0 0 0 255; + text { size: 10; + min: 1 1; + } + } + } + text { "text"; + desc { "default"; + color: 0 0 0 255; + text { size: 20; + } + } + } + } + } +} diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 7a600a21c7..6b4279db0a 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -1025,6 +1025,7 @@ bin/elementary/test_efl_ui_text.c \ bin/elementary/test_win_stack.c \ bin/elementary/test_win_indicator.c \ bin/elementary/test_gesture_framework.c \ +bin/elementary/test_efl_ui_pager.c \ bin/elementary/test.h bin_elementary_elementary_test_LDADD = @USE_ELEMENTARY_LIBS@ diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 4ef1ac78d6..48517f2d4e 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -363,6 +363,8 @@ void test_efl_anim_interpolator(void *data, Evas_Object *obj, void *event_info); void test_gesture_framework(void *data, Evas_Object *obj, void *event_info); +void test_efl_ui_pager(void *data, Evas_Object *obj, void *event_info); + static void _list_udpate(void); static Evas_Object *win, *tbx, *entry; // TODO: refactoring @@ -1057,6 +1059,9 @@ add_tests: ADD_TEST(NULL, "Booleans", "Check Toggle", test_check_toggle); //------------------------------// + ADD_TEST(NULL, "Page Control", "Pager", test_efl_ui_pager); + + //------------------------------// ADD_TEST(NULL, "Popups", "Ctxpopup", test_ctxpopup); ADD_TEST(NULL, "Popups", "Hover", test_hover); ADD_TEST(NULL, "Popups", "Hover 2", test_hover2); diff --git a/src/bin/elementary/test_efl_ui_pager.c b/src/bin/elementary/test_efl_ui_pager.c new file mode 100644 index 0000000000..cf7ea7a8fa --- /dev/null +++ b/src/bin/elementary/test_efl_ui_pager.c @@ -0,0 +1,274 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif +#define EO_BETA_API +#include <Elementary.h> + + +#define PAGE_NUM 10 + +/** --------box-------- + * |--box-- ----box---| + * || | | || + * || | | || + * ||navi | | pager || + * ||frame| | || + * || | | || + * |------ -----------| + * -------------------- + * + */ + +typedef struct _Params { + Evas_Object *navi; + Evas_Object *pager; + int w, h; + int padding; + int side_page_num; +} Params; + +static void page_size_cb(void *data, Evas_Object *obj, void *event_info); +static void padding_cb(void *data, Evas_Object *obj, void *event_info); +static void side_page_num_cb(void *data, Evas_Object *obj, void *event_info); +static void transition_cb(void *data, Evas_Object *obj, void *event_info); +static void current_page_cb(void *data, Evas_Object *obj, void *event_info); +static void scroll_block_cb(void *data, Evas_Object *obj, void *event_info); +static void loop_cb(void *data, Evas_Object *obj, void *event_info); + +void +test_efl_ui_pager(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *box, *box2, *box3, *navi, *list, *pager, *page; + Efl_Page_Transition *tran; + int i; + char buf[64]; + + win = elm_win_util_standard_add("pager", "Pager"); + elm_win_autodel_set(win, EINA_TRUE); + + box = elm_box_add(win); + elm_box_horizontal_set(box, EINA_TRUE); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, box); + evas_object_show(box); + + box2 = elm_box_add(box); + evas_object_size_hint_weight_set(box2, 0.3, 0.0); + evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box2); + elm_box_pack_end(box, box2); + + box3 = elm_box_add(box); + elm_box_horizontal_set(box3, EINA_TRUE); + evas_object_size_hint_weight_set(box3, 0.7, 0.0); + evas_object_size_hint_align_set(box3, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box3); + elm_box_pack_end(box, box3); + + navi = elm_naviframe_add(box2); + evas_object_size_hint_weight_set(navi, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(navi, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(box2, navi); + evas_object_show(navi); + + list = elm_list_add(navi); + evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); + 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); + + pager = efl_add(EFL_UI_PAGER_CLASS, win); + evas_object_size_hint_weight_set(pager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(pager, EVAS_HINT_FILL, EVAS_HINT_FILL); + tran = efl_add(EFL_PAGE_TRANSITION_SCROLL_CLASS, NULL); + efl_ui_pager_transition_set(pager, tran); + elm_box_pack_end(box3, pager); + efl_ui_pager_page_size_set(pager, 200, 300); + efl_ui_pager_padding_set(pager, 20); + + Params *params = (Params *)malloc(sizeof(Params)); + params->navi = navi; + params->pager = pager; + params->w = 200; + params->h = 300; + params->padding = 20; + params->side_page_num = efl_ui_pager_side_page_num_get(pager); + + 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, "Transition", NULL, NULL, transition_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_go(list); + + for (i = 1; i <= PAGE_NUM; i++) { + page = efl_add(EFL_UI_LAYOUT_CLASS, pager); + snprintf(buf, sizeof(buf), "%s/objects/test_pager.edj", elm_app_data_dir_get()); + efl_file_set(page, buf, "page"); + snprintf(buf, 16, "Page %d", i); + efl_text_set(efl_part(page, "text"), buf); + efl_pack_end(pager, page); + } + + evas_object_resize(win, 580, 320); + evas_object_show(win); +} + +static void btn_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + elm_naviframe_item_pop(data); +} + +static void width_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Params *params = (Params *) data; + + params->w = (int) elm_slider_value_get(obj); + efl_ui_pager_page_size_set(params->pager, params->w, params->h); +} + +static void height_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Params *params = (Params *) data; + + params->h = (int) elm_slider_value_get(obj); + efl_ui_pager_page_size_set(params->pager, params->w, params->h); +} + +static void padding_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Params *params = (Params *) data; + + params->padding = (int) elm_slider_value_get(obj); + efl_ui_pager_padding_set(params->pager, params->padding); +} + +static void side_page_num_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Params *params = (Params *) data; + + params->side_page_num = (int) elm_slider_value_get(obj); + efl_ui_pager_side_page_num_set(params->pager, params->side_page_num); +} + +static void page_size_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Params *params = (Params *)data; + Evas_Object *navi = params->navi; + Evas_Object *btn, *box, *slider; + + btn = elm_button_add(navi); + elm_object_text_set(btn, "Back"); + evas_object_smart_callback_add(btn, "clicked", btn_cb, navi); + + box = elm_box_add(navi); + elm_box_padding_set(box, 10, 10); + evas_object_show(box); + elm_naviframe_item_push(navi, "Page Size", btn, NULL, box, NULL); + + slider = elm_slider_add(box); + elm_slider_indicator_format_set(slider, "%1.0f"); + elm_slider_min_max_set(slider, 100, 200); + elm_object_text_set(slider, "width"); + elm_slider_horizontal_set(slider, EINA_FALSE); + elm_slider_value_set(slider, params->w); + evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(slider, "changed", width_slider_cb, params); + elm_box_pack_end(box, slider); + evas_object_show(slider); + + slider = elm_slider_add(box); + elm_slider_indicator_format_set(slider, "%1.0f"); + elm_slider_min_max_set(slider, 100, 300); + elm_object_text_set(slider, "height"); + elm_slider_horizontal_set(slider, EINA_FALSE); + elm_slider_value_set(slider, params->h); + evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(slider, "changed", height_slider_cb, params); + elm_box_pack_end(box, slider); + evas_object_show(slider); +} + +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; + Evas_Object *btn, *box, *slider; + + btn = elm_button_add(navi); + elm_object_text_set(btn, "Back"); + evas_object_smart_callback_add(btn, "clicked", btn_cb, navi); + + box = elm_box_add(navi); + elm_box_padding_set(box, 10, 10); + evas_object_show(box); + elm_naviframe_item_push(navi, "Page Size", btn, NULL, box, NULL); + + slider = elm_slider_add(box); + elm_slider_indicator_format_set(slider, "%1.0f"); + elm_slider_min_max_set(slider, 0, 50); + elm_object_text_set(slider, "padding"); + elm_slider_horizontal_set(slider, EINA_FALSE); + elm_slider_value_set(slider, params->padding); + evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(slider, "changed", padding_slider_cb, params); + elm_box_pack_end(box, slider); + evas_object_show(slider); +} + +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; + Evas_Object *btn, *box, *slider; + + btn = elm_button_add(navi); + elm_object_text_set(btn, "Back"); + evas_object_smart_callback_add(btn, "clicked", btn_cb, navi); + + box = elm_box_add(navi); + elm_box_padding_set(box, 10, 10); + evas_object_show(box); + elm_naviframe_item_push(navi, "Side Page", btn, NULL, box, NULL); + + slider = elm_slider_add(box); + elm_slider_indicator_format_set(slider, "%1.0f"); + elm_slider_min_max_set(slider, 0, 3); + elm_object_text_set(slider, "side page num"); + elm_slider_horizontal_set(slider, EINA_FALSE); + elm_slider_value_set(slider, params->side_page_num); + evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(slider, "changed", side_page_num_slider_cb, params); + elm_box_pack_end(box, slider); + evas_object_show(slider); + +} + +static void transition_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + +} + +static void current_page_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + +} + +static void scroll_block_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + +} + +static void loop_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + +} + |