forked from enlightenment/efl
genlist: one more bug, relative insertion of subitems.
relative insertion of sub items does not work either, add test case. SVN revision: 66951
This commit is contained in:
parent
302c07c6cc
commit
9b860dffdd
|
@ -75,6 +75,7 @@ void test_genlist10(void *data, Evas_Object *obj, void *event_info);
|
|||
void test_genlist11(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_genlist12(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_genlist13(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_genlist14(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);
|
||||
|
@ -400,6 +401,7 @@ add_tests:
|
|||
#endif
|
||||
ADD_TEST(NULL, "Lists", "Genlist Textblock", test_genlist12);
|
||||
ADD_TEST(NULL, "Lists", "Genlist Tree, Insert Sorted", test_genlist13);
|
||||
ADD_TEST(NULL, "Lists", "Genlist Tree, Insert Relative", test_genlist14);
|
||||
ADD_TEST(NULL, "Lists", "GenGrid", test_gengrid);
|
||||
ADD_TEST(NULL, "Lists", "GenGrid 2", test_gengrid2);
|
||||
ADD_TEST(NULL, "Lists", "GenGrid Group", test_gengrid3);
|
||||
|
|
|
@ -1960,7 +1960,7 @@ test_genlist13(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
|
|||
{
|
||||
Elm_Genlist_Item *pi[6];
|
||||
Evas_Object *win, *bg, *bx, *gl;
|
||||
int i, base, idx[3] = {1, 10, 20};
|
||||
int i, base, idx[3] = {1, 10, 15};
|
||||
|
||||
win = elm_win_add(NULL, "genlist-tree-insert-sorted", ELM_WIN_BASIC);
|
||||
elm_win_title_set(win, "Genlist Tree, Insert Sorted");
|
||||
|
@ -2036,4 +2036,227 @@ test_genlist13(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
|
|||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
|
||||
static void
|
||||
my_gl_insert_before_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *gl = data;
|
||||
static int i = 1000;
|
||||
Elm_Genlist_Item *gli_selected;
|
||||
|
||||
itc1.item_style = "default";
|
||||
itc1.func.text_get = gl_text_get;
|
||||
itc1.func.content_get = NULL;
|
||||
itc1.func.state_get = NULL;
|
||||
itc1.func.del = NULL;
|
||||
|
||||
gli_selected = elm_genlist_selected_item_get(gl);
|
||||
if (!gli_selected)
|
||||
{
|
||||
printf("no item selected\n");
|
||||
return;
|
||||
}
|
||||
|
||||
elm_genlist_item_insert_before(gl, &itc1,
|
||||
(void *)(long)i/* item data */,
|
||||
elm_genlist_item_parent_get(gli_selected),
|
||||
gli_selected/* item before */,
|
||||
ELM_GENLIST_ITEM_NONE,
|
||||
NULL/* func */, NULL/* func data */);
|
||||
i++;
|
||||
}
|
||||
|
||||
static void
|
||||
my_gl_insert_after_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *gl = data;
|
||||
static int i = 0;
|
||||
Elm_Genlist_Item *gli_selected;
|
||||
|
||||
itc1.item_style = "default";
|
||||
itc1.func.text_get = gl_text_get;
|
||||
itc1.func.content_get = NULL;
|
||||
itc1.func.state_get = NULL;
|
||||
itc1.func.del = NULL;
|
||||
|
||||
gli_selected = elm_genlist_selected_item_get(gl);
|
||||
if (!gli_selected)
|
||||
{
|
||||
printf("no item selected\n");
|
||||
return;
|
||||
}
|
||||
|
||||
elm_genlist_item_insert_after(gl, &itc1,
|
||||
(void *)(long)i/* item data */,
|
||||
elm_genlist_item_parent_get(gli_selected),
|
||||
gli_selected/* item after */,
|
||||
ELM_GENLIST_ITEM_NONE,
|
||||
NULL/* func */, NULL/* func data */);
|
||||
i++;
|
||||
}
|
||||
|
||||
void
|
||||
test_genlist14(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Genlist_Item *pi[6];
|
||||
Evas_Object *win, *bg, *bx, *bx2, *bt, *gl;
|
||||
int i, base;
|
||||
/* index: 0, 1, 2, 3, 4, 5
|
||||
* items: 1, 15, 11, 2, 33, 21
|
||||
* final: 1, 2, 11, 15, 21, 33
|
||||
*/
|
||||
const int idx[6] = {1, 15, 11, 2, 33, 21};
|
||||
const int relative[6] = {
|
||||
0, /* item '1' - not used */
|
||||
0, /* item '15' - insert after pi[0], item '1' */
|
||||
-1, /* item '11' - insert before pi[1], item '15' */
|
||||
-2, /* item '2' - insert before pi[2], item '11' */
|
||||
1, /* item '33' - insert after pi[1], item '15' */
|
||||
-4 /* item '21' - insert before pi[4], item '33' */
|
||||
};
|
||||
|
||||
win = elm_win_add(NULL, "genlist-tree-insert-relative", ELM_WIN_BASIC);
|
||||
elm_win_title_set(win, "Genlist Tree, Insert Relative");
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
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);
|
||||
|
||||
gl = elm_genlist_add(win);
|
||||
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(gl);
|
||||
|
||||
itc4.item_style = "default";
|
||||
itc4.func.text_get = gl4_text_get;
|
||||
itc4.func.content_get = NULL;
|
||||
itc4.func.state_get = NULL;
|
||||
itc4.func.del = NULL;
|
||||
|
||||
/* mixed order to test insert sorted */
|
||||
|
||||
// BUG1: should be able to insert before=NULL, prepend
|
||||
// BUG2: should be able to insert after=NULL, append
|
||||
|
||||
pi[0] = elm_genlist_item_append
|
||||
(gl, &itc4, (void *)idx[0]/* item data */,
|
||||
NULL/* parent */,
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
|
||||
for (i = 1; i < 3; i++)
|
||||
{
|
||||
if (relative[i] < 0)
|
||||
pi[i] = elm_genlist_item_insert_before
|
||||
(gl, &itc4, (void *)idx[i]/* item data */,
|
||||
NULL/* parent */, pi[-relative[i]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
else
|
||||
pi[i] = elm_genlist_item_insert_after
|
||||
(gl, &itc4, (void *)idx[i]/* item data */,
|
||||
NULL/* parent */, pi[relative[i]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
Elm_Genlist_Item *sub[6];
|
||||
int j;
|
||||
|
||||
base = 1000 * (long)elm_genlist_item_data_get(pi[i]);
|
||||
|
||||
sub[0] = elm_genlist_item_append
|
||||
(gl, &itc4, (void *)(idx[0] + base)/* item data */, pi[i]/* parent */,
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
|
||||
for (j = 1; j < 6; j++) {
|
||||
if (relative[j] < 0)
|
||||
sub[j] = elm_genlist_item_insert_before
|
||||
(gl, &itc4, (void *)(idx[j] + base)/* item data */,
|
||||
pi[i]/* parent */, sub[-relative[j]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
else
|
||||
sub[j] = elm_genlist_item_insert_after
|
||||
(gl, &itc4, (void *)(idx[j] + base)/* item data */,
|
||||
pi[i]/* parent */, sub[relative[j]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 3; i < 6; i++)
|
||||
{
|
||||
if (relative[i] < 0)
|
||||
pi[i] = elm_genlist_item_insert_before
|
||||
(gl, &itc4, (void *)idx[i]/* item data */,
|
||||
NULL/* parent */, pi[-relative[i]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
else
|
||||
pi[i] = elm_genlist_item_insert_after
|
||||
(gl, &itc4, (void *)idx[i]/* item data */,
|
||||
NULL/* parent */, pi[relative[i]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
}
|
||||
|
||||
for (i = 3; i < 6; i++)
|
||||
{
|
||||
Elm_Genlist_Item *sub[6];
|
||||
int j;
|
||||
|
||||
base = 1000 * (long)elm_genlist_item_data_get(pi[i]);
|
||||
|
||||
sub[0] = elm_genlist_item_append
|
||||
(gl, &itc4, (void *)(idx[0] + base)/* item data */, pi[i]/* parent */,
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
|
||||
for (j = 1; j < 6; j++) {
|
||||
if (relative[j] < 0)
|
||||
sub[j] = elm_genlist_item_insert_before
|
||||
(gl, &itc4, (void *)(idx[j] + base)/* item data */,
|
||||
pi[i]/* parent */, sub[-relative[j]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
else
|
||||
sub[j] = elm_genlist_item_insert_after
|
||||
(gl, &itc4, (void *)(idx[j] + base)/* item data */,
|
||||
pi[i]/* parent */, sub[relative[j]],
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
|
||||
}
|
||||
}
|
||||
|
||||
elm_box_pack_end(bx, gl);
|
||||
evas_object_show(bx);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
elm_box_homogeneous_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "+ before");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before_rel, gl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "+ after");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after_rel, gl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
elm_box_pack_end(bx, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue