forked from enlightenment/efl
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
This commit is contained in:
parent
4d62d59978
commit
e72cf7b0a4
|
@ -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);
|
||||
|
||||
//------------------------------//
|
||||
|
||||
|
|
|
@ -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 *
|
||||
|
|
Loading…
Reference in New Issue