seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=bcd128149457dac68c0646ca17158f2187be42e6
commit bcd128149457dac68c0646ca17158f2187be42e6 Author: Daniel Juyung Seo <[email protected]> Date: Sun Mar 23 00:13:58 2014 +0900 test_genlist: Merged 'Genlist Focus' and 'Genlist Item Focus' test. There is no reason to have two different focus example for genlist. --- src/bin/test.c | 2 - src/bin/test_genlist.c | 295 +++++++++++++++++++------------------------------ 2 files changed, 113 insertions(+), 184 deletions(-) diff --git a/src/bin/test.c b/src/bin/test.c index 31349b6..9cdeff4 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -112,7 +112,6 @@ void test_genlist17(void *data, Evas_Object *obj, void *event_info); void test_genlist18(void *data, Evas_Object *obj, void *event_info); void test_genlist19(void *data, Evas_Object *obj, void *event_info); void test_genlist_focus(void *data, Evas_Object *obj, void *event_info); -void test_genlist_item_focus(void *data, Evas_Object *obj, void *event_info); void test_genlist_item_styles(void *data, Evas_Object *obj, void *event_info); void test_genlist_multi_select(void *data, Evas_Object *obj, void *event_info); void test_genlist_del(void *data, Evas_Object *obj, void *event_info); @@ -651,7 +650,6 @@ add_tests: ADD_TEST(NULL, "Lists - Genlist", "Genlist Tree and Decorate All Mode", test_genlist18); ADD_TEST(NULL, "Lists - Genlist", "Genlist Full Widget", test_genlist19); ADD_TEST(NULL, "Lists - Genlist", "Genlist Focus", test_genlist_focus); - ADD_TEST(NULL, "Lists - Genlist", "Genlist Item Focus", test_genlist_item_focus); ADD_TEST(NULL, "Lists - Genlist", "Genlist Item Styles", test_genlist_item_styles); ADD_TEST(NULL, "Lists - Genlist", "Genlist Multi Select", test_genlist_multi_select); ADD_TEST(NULL, "Lists - Genlist", "Genlist Del", test_genlist_del); diff --git a/src/bin/test_genlist.c b/src/bin/test_genlist.c index 44bdd03..ca28d7c 100644 --- a/src/bin/test_genlist.c +++ b/src/bin/test_genlist.c @@ -3226,174 +3226,6 @@ test_genlist19(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event /*************/ -static unsigned _gl_focus_objects = 5; -static const char *_gl_focus_object_names[] = {"None", "Square", "Button", "Check", "Box"}; - -static char * -gl_focus_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) -{ - char buf[256]; - unsigned char op = (uintptr_t)data % 100; - unsigned char v1, v2; - - v1 = op / 10; - if (v1 > 4) v1 = 4; - v2 = op % 10; - if (v2 > 4) v2 = 4; - snprintf(buf, sizeof(buf), " %s / %s ", - _gl_focus_object_names[v1], _gl_focus_object_names[v2]); - return strdup(buf); -} - -static Evas_Object * -gl_focus_content_get(void *data, Evas_Object *obj, const char *part) -{ - Evas_Object *cnt = NULL; - - char op = (uintptr_t)data % 100; - char type = (!strcmp(part,"elm.swallow.icon")) ? op / 10 : op % 10; - - switch(type) - { - case 1: - cnt = elm_bg_add(obj); - evas_object_color_set(cnt, 128, 18, 128, 255); - break; - case 2: - cnt = elm_button_add(obj); - break; - case 3: - cnt = elm_check_add(obj); - break; - case 4: - cnt = elm_box_add(obj); - evas_object_size_hint_align_set(cnt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_horizontal_set(cnt, EINA_TRUE); - elm_box_pack_end(cnt, gl_focus_content_get((void *)2, obj, "")); - elm_box_pack_end(cnt, gl_focus_content_get((void *)3, obj, "")); - elm_box_pack_end(cnt, gl_focus_content_get((void *)2, obj, "")); - break; - default: - break; - - } - if (cnt) - { - evas_object_size_hint_weight_set(cnt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(cnt); - } - return cnt; -} - -static void -gl_focus_focus_on_selection_set(Evas_Object *gl, Evas_Object *chk, Eina_Bool focus) -{ - elm_genlist_focus_on_selection_set(gl, focus); - elm_check_state_set(chk, focus); - printf("genlist_focus_on_selection = %s\n", (focus) ? "true" : "false"); -} - -static void -gl_focus_focus_check_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Eina_Bool nextstate = !elm_genlist_focus_on_selection_get(data); - gl_focus_focus_on_selection_set(data, obj, nextstate); -} - -static void -gl_focus_focus_animate_check_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - elm_win_focus_highlight_animate_set((Evas_Object *)data, - elm_check_state_get(obj)); -} - -void -test_genlist_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Evas_Object *win, *gl, *bx, *bxx, *chk; - unsigned lhand, rhand; - - win = elm_win_util_standard_add("genlist-focus", "Genlist Focus"); - elm_win_autodel_set(win, EINA_TRUE); - elm_win_focus_highlight_enabled_set(win, EINA_TRUE); - elm_win_focus_highlight_animate_set(win, EINA_TRUE); - - bxx = elm_box_add(win); - evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(win, bxx); - evas_object_show(bxx); - - gl = elm_genlist_add(win); - evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bxx, gl); - evas_object_show(gl); - - bx = elm_box_add(win); - evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_horizontal_set(bx, EINA_TRUE); - evas_object_show(bx); - - chk = elm_check_add(win); - elm_object_text_set(chk, "Focus on selection"); - evas_object_size_hint_weight_set(chk, EVAS_HINT_EXPAND, 0.0); - evas_object_smart_callback_add(chk, "changed", gl_focus_focus_check_changed, gl); - elm_box_pack_end(bx, chk); - evas_object_show(chk); - - gl_focus_focus_on_selection_set(gl, chk, EINA_TRUE); - - chk = elm_check_add(win); - elm_object_text_set(chk, "Focus Animation"); - elm_check_state_set(chk, EINA_TRUE); - evas_object_size_hint_weight_set(chk, EVAS_HINT_EXPAND, 0.0); - evas_object_smart_callback_add(chk, "changed", - gl_focus_focus_animate_check_changed, win); - elm_box_pack_end(bx, chk); - evas_object_show(chk); - - elm_box_pack_end(bxx, bx); - - itc1 = elm_genlist_item_class_new(); - itc1->item_style = "default"; - itc1->func.text_get = gl_focus_text_get; - itc1->func.content_get = gl_focus_content_get; - itc1->func.state_get = NULL; - itc1->func.del = NULL; - - itc4 = elm_genlist_item_class_new(); - itc4->item_style = "tree_effect"; - itc4->func.text_get = gl_focus_text_get; - itc4->func.content_get = gl_focus_content_get; - itc4->func.state_get = NULL; - itc4->func.del = NULL; - - for (lhand = 0; lhand < _gl_focus_objects; lhand++) - { - for (rhand = 0; rhand < _gl_focus_objects; rhand++) - { - unsigned digit1 = lhand * 10 + rhand; - elm_genlist_item_append(gl, itc1, (void*)(uintptr_t)digit1, - NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - unsigned digit2 = (_gl_focus_objects - lhand -1) * 10 + - (_gl_focus_objects - rhand -1); - elm_genlist_item_append(gl, itc1, (void*)(uintptr_t)digit2, - NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - if (rhand == (_gl_focus_objects - 1)) - elm_genlist_item_append(gl, itc4, (void*)(uintptr_t)digit1, - NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); - } - } - - elm_genlist_item_class_free(itc1); - elm_genlist_item_class_free(itc4); - - evas_object_resize(win, 300, 500); - evas_object_show(win); -} - - /* test genlist item styles */ const char *_genlist_styles[] = { @@ -3782,13 +3614,96 @@ test_genlist_del(void *data EINA_UNUSED, evas_object_show(win); } +/*************/ +static unsigned _gl_focus_objects = 5; +static const char *_gl_focus_object_names[] = {"None", "Square", "Button", "Check", "Box"}; + +static char * +gl_focus_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) +{ + char buf[256]; + unsigned char op = (uintptr_t)data % 100; + unsigned char v1, v2; + + v1 = op / 10; + if (v1 > 4) v1 = 4; + v2 = op % 10; + if (v2 > 4) v2 = 4; + snprintf(buf, sizeof(buf), " %s / %s ", + _gl_focus_object_names[v1], _gl_focus_object_names[v2]); + return strdup(buf); +} + +static Evas_Object * +gl_focus_content_get(void *data, Evas_Object *obj, const char *part) +{ + Evas_Object *cnt = NULL; + + char op = (uintptr_t)data % 100; + char type = (!strcmp(part,"elm.swallow.icon")) ? op / 10 : op % 10; + + switch(type) + { + case 1: + cnt = elm_bg_add(obj); + evas_object_color_set(cnt, 128, 18, 128, 255); + break; + case 2: + cnt = elm_button_add(obj); + break; + case 3: + cnt = elm_check_add(obj); + break; + case 4: + cnt = elm_box_add(obj); + evas_object_size_hint_align_set(cnt, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_horizontal_set(cnt, EINA_TRUE); + elm_box_pack_end(cnt, gl_focus_content_get((void *)2, obj, "")); + elm_box_pack_end(cnt, gl_focus_content_get((void *)3, obj, "")); + elm_box_pack_end(cnt, gl_focus_content_get((void *)2, obj, "")); + break; + default: + break; + + } + if (cnt) + { + evas_object_size_hint_weight_set(cnt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(cnt); + } + return cnt; +} + +static void +gl_focus_focus_on_selection_set(Evas_Object *gl, Evas_Object *chk, Eina_Bool focus) +{ + elm_genlist_focus_on_selection_set(gl, focus); + elm_check_state_set(chk, focus); + printf("genlist_focus_on_selection = %s\n", (focus) ? "true" : "false"); +} + +static void +gl_focus_focus_check_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Eina_Bool nextstate = !elm_genlist_focus_on_selection_get(data); + gl_focus_focus_on_selection_set(data, obj, nextstate); +} + +static void +gl_focus_focus_animate_check_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + elm_win_focus_highlight_animate_set((Evas_Object *)data, + elm_check_state_get(obj)); +} + + void -test_genlist_item_focus(void *data EINA_UNUSED, - Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) +test_genlist_focus(void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx_horiz, *gl, *btn, *fr, *lb; - int i; + unsigned lhand, rhand; win = elm_win_util_standard_add("genlist-item-focus", "Genlist Item Focus"); elm_win_focus_highlight_enabled_set(win, EINA_TRUE); @@ -3851,21 +3766,37 @@ test_genlist_item_focus(void *data EINA_UNUSED, itc1 = elm_genlist_item_class_new(); itc1->item_style = "default"; - itc1->func.text_get = gl_text_get; - itc1->func.content_get = gl_content_get; - itc1->func.state_get = gl_state_get; + itc1->func.text_get = gl_focus_text_get; + itc1->func.content_get = gl_focus_content_get; + itc1->func.state_get = NULL; itc1->func.del = NULL; - for (i = 0; i < 50; i++) + itc4 = elm_genlist_item_class_new(); + itc4->item_style = "tree_effect"; + itc4->func.text_get = gl_focus_text_get; + itc4->func.content_get = gl_focus_content_get; + itc4->func.state_get = NULL; + itc4->func.del = NULL; + + for (lhand = 0; lhand < _gl_focus_objects; lhand++) { - elm_genlist_item_append(gl, itc1, - (void *)(uintptr_t)i/* item data */, - NULL/* parent */, - ELM_GENLIST_ITEM_NONE, - gl_sel/* func */, - (void *)(uintptr_t)(i * 10)/* func data */); + for (rhand = 0; rhand < _gl_focus_objects; rhand++) + { + unsigned digit1 = lhand * 10 + rhand; + elm_genlist_item_append(gl, itc1, (void*)(uintptr_t)digit1, + NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + unsigned digit2 = (_gl_focus_objects - lhand -1) * 10 + + (_gl_focus_objects - rhand -1); + elm_genlist_item_append(gl, itc1, (void*)(uintptr_t)digit2, + NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + if (rhand == (_gl_focus_objects - 1)) + elm_genlist_item_append(gl, itc4, (void*)(uintptr_t)digit1, + NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); + } } + elm_genlist_item_class_free(itc1); + elm_genlist_item_class_free(itc4); evas_object_resize(win, 320, 450); evas_object_show(win); --
