diff options
author | Godly T.Alias <godlytalias@yahoo.co.in> | 2018-05-02 19:16:49 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2018-05-02 19:16:50 -0400 |
commit | e72cf7b0a496a3e948d0367ce286f7cafc334a7f (patch) | |
tree | b327393940d594b3727156be8e490091dd7d520f | |
parent | 4d62d59978e92fc8f78c62ea498e5e9cad23bf63 (diff) | |
download | efl-e72cf7b0a496a3e948d0367ce286f7cafc334a7f.tar.gz |
Genlist: Test Cases for Genlist Item Show on Launch
Summary:
This includes test cases for the Genlist Item Show Changes ( D5428 )
Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>
Test Plan: Elementary Test -> Genlist Item Show
Reviewers: SanghyeonLee, cedric, raster, prince.dubey
Subscribers: shilpasingh, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5499
-rw-r--r-- | src/bin/elementary/test.c | 2 | ||||
-rw-r--r-- | src/bin/elementary/test_genlist.c | 281 |
2 files changed, 282 insertions, 1 deletions
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index f34be34e71..0408d37341 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -141,6 +141,7 @@ void test_genlist_filter(void *data, Evas_Object *obj, void *event_info); void test_genlist_show_bring(void *data, Evas_Object *obj, void *event_info); void test_genlist_cache(void *data, Evas_Object *obj, void *event_info); void test_genlist_reusable(void *data, Evas_Object *obj, void *event_info); +void test_genlist_item_show(void *data, Evas_Object *obj, void *event_info); void test_gesture_layer(void *data, Evas_Object *obj, void *event_info); void test_gesture_layer2(void *data, Evas_Object *obj, void *event_info); void test_gesture_layer3(void *data, Evas_Object *obj, void *event_info); @@ -967,6 +968,7 @@ add_tests: ADD_TEST(NULL, "Lists - Genlist", "Genlist Show/Bring", test_genlist_show_bring); ADD_TEST(NULL, "Lists - Genlist", "Genlist Cache", test_genlist_cache); ADD_TEST(NULL, "Lists - Genlist", "Genlist Reusable Contents", test_genlist_reusable); + ADD_TEST(NULL, "Lists - Genlist", "Genlist Item Show", test_genlist_item_show); //------------------------------// diff --git a/src/bin/elementary/test_genlist.c b/src/bin/elementary/test_genlist.c index 98ffb221c2..66d0ffb835 100644 --- a/src/bin/elementary/test_genlist.c +++ b/src/bin/elementary/test_genlist.c @@ -21,6 +21,9 @@ struct _api_data void *gl; void *filter_data; /* The data used for filtering */ + Elm_Genlist_Item_Scrollto_Type type; + Elm_List_Mode mode; + int max_items, show_item; int scrollto; }; typedef struct _api_data api_data; @@ -5467,7 +5470,6 @@ test_genlist_show_bring(void *data EINA_UNUSED, elm_genlist_item_class_free(api->itc1); gli = elm_genlist_nth_item_get(gl, 1340); - elm_genlist_item_selected_set(gli, EINA_TRUE); elm_genlist_item_show(gli, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); evas_object_resize(win, 480, 400); @@ -5475,6 +5477,283 @@ test_genlist_show_bring(void *data EINA_UNUSED, evas_object_show(win); } +static Eina_Bool +_late_item_prepender(void *data) +{ + api_data *api = (api_data*)data; + int i; + Elm_Object_Item *it = elm_genlist_nth_item_get(api->gl, api->show_item); + for (i = 0; i <= 100; i++) + elm_genlist_item_prepend(api->gl, api->itc1, (void*)(uintptr_t)i, it, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_class_free(api->itc1); + return ECORE_CALLBACK_CANCEL; +} + +static void +test_genlist_show_item(void *data, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *win, *gl; + Elm_Object_Item *gli = NULL; + int i, max; + api_data *api = calloc(1, sizeof(api_data)); + api_data *g_data = (api_data*)data; + + win = elm_win_util_standard_add("genlist", "Genlist Show Last Item"); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, api); + + 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); + evas_object_show(gl); + if (g_data) + elm_genlist_mode_set(gl, g_data->mode); + else + elm_genlist_mode_set(gl, ELM_LIST_COMPRESS); + api->gl = gl; + elm_win_resize_object_add(win, gl); + + api->itc1 = elm_genlist_item_class_new(); + api->itc1->item_style = "default"; + api->itc1->func.text_get = gl_text_get1; + api->itc1->func.content_get = gl_content_get; + api->itc1->func.state_get = NULL; + api->itc1->func.del = NULL; + + g_data->gl = gl; + g_data->itc1 = api->itc1; + + if (g_data) + max = g_data->max_items; + else max = 20000; + for (i = 0; i <= max; i++) + elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)i, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + + if (g_data) + gli = elm_genlist_nth_item_get(gl, g_data->show_item); + if (!gli) gli = elm_genlist_last_item_get(gl); + elm_genlist_item_show(gli, g_data->type); + + //prepends item while queue processing is happening + ecore_timer_add(0.1, _late_item_prepender, g_data); + + evas_object_resize(win, 480, 400); + explode_win_enable(win); + evas_object_show(win); +} + +static void +test_genlist_show_tree(void *data, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *win, *gl; + Elm_Object_Item *gli = NULL, *show = NULL; + int i, max; + api_data *api = calloc(1, sizeof(api_data)); + api_data *g_data = (api_data*)data; + + win = elm_win_util_standard_add("genlist", "Genlist Show Tree"); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, api); + + 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); + evas_object_show(gl); + api->gl = gl; + elm_win_resize_object_add(win, gl); + if (g_data) + elm_genlist_mode_set(gl, g_data->mode); + else + elm_genlist_mode_set(gl, ELM_LIST_COMPRESS); + + api->itc1 = elm_genlist_item_class_new(); + api->itc1->item_style = "default"; + api->itc1->func.text_get = gl_text_get1; + api->itc1->func.content_get = gl_content_get; + api->itc1->func.state_get = NULL; + api->itc1->func.del = NULL; + + if (g_data) + max = g_data->max_items; + else max = 2000; + for (i = 0; i <= max; i++) + { + if (i % (max / 20) == 0) + gli = elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)i, gli, ELM_GENLIST_ITEM_TREE, NULL, NULL); + else + elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)i, gli, ELM_GENLIST_ITEM_NONE, NULL, NULL); + } + + if (g_data) + show = elm_genlist_nth_item_get(gl, g_data->show_item); + else show = gli; + elm_genlist_item_class_free(api->itc1); + elm_genlist_item_show(show, g_data->type); + + evas_object_resize(win, 480, 400); + explode_win_enable(win); + evas_object_show(win); +} + +static void +_entry_changed_cb(void *data, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + int *val = (int*) data; + *val = atoi(elm_entry_entry_get(obj)); +} + +static void +_radio_changed_type_cb(void *data, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + int val = elm_radio_state_value_get(obj); + api_data *api = (api_data*)data; + api->type = val; +} + +static void +_radio_changed_mode_cb(void *data, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + int val = elm_radio_state_value_get(obj); + api_data *api = (api_data*)data; + api->mode = val; +} + +void +test_genlist_item_show(void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + + Evas_Object *win, *bt_show, *bt_bring, *bx, *max_items, *show_item, *bxx, *rd1, *rd2, *rd3; + static Elm_Entry_Filter_Accept_Set digits_filter_data; + api_data *api = calloc(1, sizeof(api_data)); + + win = elm_win_util_standard_add("genlist", "Genlist Item Show"); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, api); + + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(bx); + elm_win_resize_object_add(win, bx); + + digits_filter_data.accepted = "0123456789"; + digits_filter_data.rejected = NULL; + + max_items = elm_entry_add(win); + elm_entry_single_line_set(max_items, EINA_TRUE); + elm_entry_scrollable_set(max_items, EINA_TRUE); + evas_object_size_hint_weight_set(max_items, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(max_items, EVAS_HINT_FILL, 0.5); + elm_object_part_text_set(max_items, "guide", "Enter the maximum number of items needed"); + evas_object_smart_callback_add(max_items, "changed", _entry_changed_cb, (void*)(&(api->max_items))); + elm_entry_markup_filter_append(max_items, elm_entry_filter_accept_set, &digits_filter_data); + evas_object_show(max_items); + elm_box_pack_end(bx, max_items); + + show_item = elm_entry_add(win); + elm_entry_single_line_set(show_item, EINA_TRUE); + elm_entry_scrollable_set(show_item, EINA_TRUE); + evas_object_size_hint_weight_set(show_item, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(show_item, EVAS_HINT_FILL, 0.5); + elm_object_part_text_set(show_item, "guide", "Enter the number of item to be shown"); + evas_object_smart_callback_add(show_item, "changed", _entry_changed_cb, (void*)(&(api->show_item))); + elm_entry_markup_filter_append(show_item, elm_entry_filter_accept_set, &digits_filter_data); + evas_object_show(show_item); + elm_box_pack_end(bx, show_item); + + bxx = elm_box_add(win); + elm_box_horizontal_set(bxx, EINA_TRUE); + evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(bxx, EVAS_HINT_FILL, 0.5); + + rd1 = elm_radio_add(win); + elm_object_text_set(rd1, "Top"); + elm_radio_state_value_set(rd1, ELM_GENLIST_ITEM_SCROLLTO_TOP); + evas_object_smart_callback_add(rd1, "changed", _radio_changed_type_cb, api); + evas_object_show(rd1); + elm_box_pack_end(bxx, rd1); + + rd2 = elm_radio_add(win); + elm_object_text_set(rd2, "Middle"); + evas_object_smart_callback_add(rd2, "changed", _radio_changed_type_cb, api); + elm_radio_state_value_set(rd2, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); + elm_radio_group_add(rd2, rd1); + evas_object_show(rd2); + elm_box_pack_end(bxx, rd2); + + rd3 = elm_radio_add(win); + elm_object_text_set(rd3, "Bottom"); + evas_object_smart_callback_add(rd3, "changed", _radio_changed_type_cb, api); + elm_radio_state_value_set(rd3, ELM_GENLIST_ITEM_SCROLLTO_BOTTOM); + elm_radio_group_add(rd3, rd1); + evas_object_show(rd3); + elm_box_pack_end(bxx, rd3); + evas_object_show(bxx); + elm_box_pack_end(bx, bxx); + elm_radio_value_set(rd1, ELM_GENLIST_ITEM_SCROLLTO_TOP); + api->type = ELM_GENLIST_ITEM_SCROLLTO_TOP; + + bxx = elm_box_add(win); + elm_box_horizontal_set(bxx, EINA_TRUE); + evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(bxx, EVAS_HINT_FILL, 0.5); + + rd1 = elm_radio_add(win); + elm_object_text_set(rd1, "ELM_LIST_SCROLL"); + elm_radio_state_value_set(rd1, ELM_LIST_SCROLL); + evas_object_smart_callback_add(rd1, "changed", _radio_changed_mode_cb, api); + evas_object_show(rd1); + elm_box_pack_end(bxx, rd1); + + rd2 = elm_radio_add(win); + elm_object_text_set(rd2, "ELM_LIST_LIMIT"); + evas_object_smart_callback_add(rd2, "changed", _radio_changed_mode_cb, api); + elm_radio_state_value_set(rd2, ELM_LIST_LIMIT); + elm_radio_group_add(rd2, rd1); + evas_object_show(rd2); + elm_box_pack_end(bxx, rd2); + + rd3 = elm_radio_add(win); + elm_object_text_set(rd3, "ELM_LIST_COMPRESS"); + evas_object_smart_callback_add(rd3, "changed", _radio_changed_mode_cb, api); + elm_radio_state_value_set(rd3, ELM_LIST_COMPRESS); + elm_radio_group_add(rd3, rd1); + evas_object_show(rd3); + elm_box_pack_end(bxx, rd3); + evas_object_show(bxx); + elm_box_pack_end(bx, bxx); + elm_radio_value_set(rd1, ELM_LIST_SCROLL); + api->mode = ELM_LIST_SCROLL; + + bt_show = elm_button_add(win); + elm_object_text_set(bt_show, "Plain Genlist"); + evas_object_smart_callback_add(bt_show, "clicked", test_genlist_show_item, api); + evas_object_show(bt_show); + elm_box_pack_end(bx, bt_show); + + bt_bring = elm_button_add(win); + elm_object_text_set(bt_bring, "Genlist Tree"); + evas_object_smart_callback_add(bt_bring, "clicked", test_genlist_show_tree, api); + evas_object_show(bt_bring); + elm_box_pack_end(bx, bt_bring); + + evas_object_resize(win, 480, 400); + explode_win_enable(win); + evas_object_show(win); +} + /*** Genlist Cache *********************************************************/ static char * |