From 41b5521077578831a6c15c388f353b56954bd7cd Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Sun, 7 Sep 2014 17:49:04 +0900 Subject: [PATCH] test_genlist: Refactored internal codes. Created internal function _test_genlist_focus_option_panel_create() as it is getting too big. --- src/bin/test_genlist.c | 244 +++++++++++++++++++++++++------------------------ 1 file changed, 127 insertions(+), 117 deletions(-) diff --git a/src/bin/test_genlist.c b/src/bin/test_genlist.c index 82a97ce..64cf28d 100644 --- a/src/bin/test_genlist.c +++ b/src/bin/test_genlist.c @@ -4254,124 +4254,16 @@ _focus_autoscroll_mode_frame_create(Evas_Object *parent) return fr; } -void -test_genlist_focus(void *data EINA_UNUSED, - Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) +static void +_test_genlist_focus_option_panel_create(Evas_Object *win, Evas_Object *bx, + Evas_Object *gl, Elm_Object_Item *it_0, + Elm_Object_Item *it_2) { - Evas_Object *win, *bx, *bx2, *gl, *btn, *fr; - Evas_Object *bx_opt, *chk, *bx_btn, *btn_focus, *btn_sel, *btn_dis; - Evas_Object *bx_mv, *rd, *rdg; - unsigned lhand, rhand; - Elm_Object_Item *it = NULL, *it_0 = NULL, *it_2 = NULL; - - api_data *api = calloc(1, sizeof(api_data)); - win = elm_win_util_standard_add("genlist-focus", "Genlist Focus"); - elm_win_autodel_set(win, EINA_TRUE); - evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api); - evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, - _gl_focus_win_del_cb, NULL); - - elm_win_focus_highlight_enabled_set(win, EINA_TRUE); - elm_win_focus_highlight_animate_set(win, EINA_TRUE); - - bx = elm_box_add(win); - evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(win, bx); - evas_object_show(bx); - - btn = elm_button_add(bx); - elm_object_text_set(btn, "Up"); - elm_box_pack_end(bx, btn); - evas_object_smart_callback_add(btn, "clicked", - _focus_button_clicked_cb, "Up"); - evas_object_show(btn); - - bx2 = elm_box_add(bx); - elm_box_horizontal_set(bx2, EINA_TRUE); - evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx, bx2); - evas_object_show(bx2); - - btn = elm_button_add(bx2); - elm_object_text_set(btn, "Left"); - elm_box_pack_end(bx2, btn); - evas_object_smart_callback_add(btn, "clicked", - _focus_button_clicked_cb, "Left"); - evas_object_show(btn); - - gl = elm_genlist_add(bx); - 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_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_box_pack_end(bx2, gl); - api->gl = gl; - evas_object_show(gl); - evas_object_smart_callback_add(gl, "item,focused", _gl_focus_item_cb, "item,focused"); - evas_object_smart_callback_add(gl, "item,unfocused", _gl_focus_item_cb, "item,unfocused"); - evas_object_smart_callback_add(gl, "selected", _gl_focus_item_cb, "selected"); - evas_object_smart_callback_add(gl, "unselected", _gl_focus_item_cb, "unselected"); - evas_object_smart_callback_add(gl, "activated", _gl_focus_item_cb, "activated"); - evas_object_smart_callback_add(gl, "highlighted", _gl_focus_item_cb, "highlighted"); - evas_object_smart_callback_add(gl, "unhighlighted", _gl_focus_item_cb, "unhighlighted"); - evas_object_event_callback_add(gl, EVAS_CALLBACK_KEY_DOWN, _gl_focus_key_down_cb, NULL); - - btn = elm_button_add(bx2); - elm_object_text_set(btn, "Right"); - elm_box_pack_end(bx2, btn); - evas_object_smart_callback_add(btn, "clicked", - _focus_button_clicked_cb, "Right"); - evas_object_show(btn); - - btn = elm_button_add(bx); - elm_object_text_set(btn, "Down"); - elm_box_pack_end(bx, btn); - evas_object_smart_callback_add(btn, "clicked", - _focus_button_clicked_cb, "Down"); - evas_object_show(btn); - - api->itc1 = elm_genlist_item_class_new(); - api->itc1->item_style = "default"; - api->itc1->func.text_get = gl_focus_text_get; - api->itc1->func.content_get = gl_focus_content_get; - api->itc1->func.state_get = NULL; - api->itc1->func.del = NULL; - - api->itc2 = elm_genlist_item_class_new(); - api->itc2->item_style = "tree_effect"; - api->itc2->func.text_get = gl_focus_text_get; - api->itc2->func.content_get = gl_focus_content_get; - api->itc2->func.state_get = NULL; - api->itc2->func.del = NULL; + Evas_Object *fr = NULL, *bx_opt = NULL, *chk = NULL; + Evas_Object *bx_mv = NULL, *rd = NULL, *rdg = NULL; + Evas_Object *bx_btn = NULL, *btn_focus = NULL, *btn_sel = NULL, + *btn_dis = NULL; - for (lhand = 0; lhand < _gl_focus_objects; lhand++) - { - for (rhand = 0; rhand < _gl_focus_objects; rhand++) - { - unsigned digit1 = lhand * 10 + rhand; - it = elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)digit1, - NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - if (!it_0) it_0 = it; - - unsigned digit2 = (_gl_focus_objects - lhand -1) * 10 + - (_gl_focus_objects - rhand -1); - it = elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)digit2, - NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - if (!it_2) it_2 = it; - if (rhand == 4) - elm_object_item_disabled_set(it, EINA_TRUE); - - if (rhand == (_gl_focus_objects - 1)) - elm_genlist_item_append(gl, api->itc2, (void*)(uintptr_t)digit1, - NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); - } - } - - elm_genlist_item_class_free(api->itc1); - elm_genlist_item_class_free(api->itc2); - - // Options fr = elm_frame_add(bx); elm_object_text_set(fr, "Options"); evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); @@ -4440,7 +4332,6 @@ test_genlist_focus(void *data EINA_UNUSED, elm_box_pack_end(bx_opt, chk); evas_object_show(chk); - // Focus Autoscroll Mode fr = _focus_autoscroll_mode_frame_create(bx); elm_box_pack_end(bx, fr); @@ -4515,6 +4406,125 @@ test_genlist_focus(void *data EINA_UNUSED, evas_object_smart_callback_add(btn_focus, "clicked", _focus_btn_cb, it_2); evas_object_smart_callback_add(btn_sel, "clicked", _sel_btn_cb, it_2); evas_object_smart_callback_add(btn_dis, "clicked", _dis_btn_cb, it_0); +} + +void +test_genlist_focus(void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *win, *bx, *bx2, *gl, *btn; + unsigned lhand, rhand; + Elm_Object_Item *it = NULL, *it_0 = NULL, *it_2 = NULL; + + api_data *api = calloc(1, sizeof(api_data)); + win = elm_win_util_standard_add("genlist-focus", "Genlist Focus"); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, + _gl_focus_win_del_cb, NULL); + + elm_win_focus_highlight_enabled_set(win, EINA_TRUE); + elm_win_focus_highlight_animate_set(win, EINA_TRUE); + + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, bx); + evas_object_show(bx); + + btn = elm_button_add(bx); + elm_object_text_set(btn, "Up"); + elm_box_pack_end(bx, btn); + evas_object_smart_callback_add(btn, "clicked", + _focus_button_clicked_cb, "Up"); + evas_object_show(btn); + + bx2 = elm_box_add(bx); + elm_box_horizontal_set(bx2, EINA_TRUE); + evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, bx2); + evas_object_show(bx2); + + btn = elm_button_add(bx2); + elm_object_text_set(btn, "Left"); + elm_box_pack_end(bx2, btn); + evas_object_smart_callback_add(btn, "clicked", + _focus_button_clicked_cb, "Left"); + evas_object_show(btn); + + gl = elm_genlist_add(bx); + 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_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_box_pack_end(bx2, gl); + api->gl = gl; + evas_object_show(gl); + evas_object_smart_callback_add(gl, "item,focused", _gl_focus_item_cb, "item,focused"); + evas_object_smart_callback_add(gl, "item,unfocused", _gl_focus_item_cb, "item,unfocused"); + evas_object_smart_callback_add(gl, "selected", _gl_focus_item_cb, "selected"); + evas_object_smart_callback_add(gl, "unselected", _gl_focus_item_cb, "unselected"); + evas_object_smart_callback_add(gl, "activated", _gl_focus_item_cb, "activated"); + evas_object_smart_callback_add(gl, "highlighted", _gl_focus_item_cb, "highlighted"); + evas_object_smart_callback_add(gl, "unhighlighted", _gl_focus_item_cb, "unhighlighted"); + evas_object_event_callback_add(gl, EVAS_CALLBACK_KEY_DOWN, _gl_focus_key_down_cb, NULL); + + btn = elm_button_add(bx2); + elm_object_text_set(btn, "Right"); + elm_box_pack_end(bx2, btn); + evas_object_smart_callback_add(btn, "clicked", + _focus_button_clicked_cb, "Right"); + evas_object_show(btn); + + btn = elm_button_add(bx); + elm_object_text_set(btn, "Down"); + elm_box_pack_end(bx, btn); + evas_object_smart_callback_add(btn, "clicked", + _focus_button_clicked_cb, "Down"); + evas_object_show(btn); + + api->itc1 = elm_genlist_item_class_new(); + api->itc1->item_style = "default"; + api->itc1->func.text_get = gl_focus_text_get; + api->itc1->func.content_get = gl_focus_content_get; + api->itc1->func.state_get = NULL; + api->itc1->func.del = NULL; + + api->itc2 = elm_genlist_item_class_new(); + api->itc2->item_style = "tree_effect"; + api->itc2->func.text_get = gl_focus_text_get; + api->itc2->func.content_get = gl_focus_content_get; + api->itc2->func.state_get = NULL; + api->itc2->func.del = NULL; + + for (lhand = 0; lhand < _gl_focus_objects; lhand++) + { + for (rhand = 0; rhand < _gl_focus_objects; rhand++) + { + unsigned digit1 = lhand * 10 + rhand; + it = elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)digit1, + NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + if (!it_0) it_0 = it; + + unsigned digit2 = (_gl_focus_objects - lhand -1) * 10 + + (_gl_focus_objects - rhand -1); + it = elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)digit2, + NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + if (!it_2) it_2 = it; + if (rhand == 4) + elm_object_item_disabled_set(it, EINA_TRUE); + + if (rhand == (_gl_focus_objects - 1)) + elm_genlist_item_append(gl, api->itc2, (void*)(uintptr_t)digit1, + NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); + } + } + + elm_genlist_item_class_free(api->itc1); + elm_genlist_item_class_free(api->itc2); + + // Options + _test_genlist_focus_option_panel_create(win, bx, gl, it_0, it_2); evas_object_resize(win, 420, 600); evas_object_show(win); -- 2.7.4