1 #include <Elementary.h>
3 # include "elementary_config.h"
5 #ifndef ELM_LIB_QUICKLAUNCH
8 * In this example some calls to elm_genlist_item_append() are used which give the
9 * value of an int as 'item data' and 'func data' after casting into (void*). For
10 * sure this works only on architectures where sizeof(int)==sizeof(void*).
11 * For real world usage you should hold a data structure or value in your
12 * application and then give only a pointer to this data as data pointer.
15 typedef struct _Testitem
17 Elm_Object_Item *item;
23 static Elm_Genlist_Item_Class *itc1;
24 static Elm_Genlist_Item_Class *itc15;
25 char *gl_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
28 snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data);
32 Evas_Object *gl_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
35 Evas_Object *ic = elm_icon_add(obj);
36 if (!strcmp(part, "elm.swallow.end"))
37 snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
39 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
40 elm_icon_file_set(ic, buf, NULL);
41 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
45 Eina_Bool gl_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
51 gl_sel(void *data, Evas_Object *obj, void *event_info)
53 printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n", data, obj, event_info);
57 _move(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
59 Evas_Object *gl = data;
60 Evas_Event_Mouse_Move *ev = event_info;
63 gli = elm_genlist_at_xy_item_get(gl, ev->cur.canvas.x, ev->cur.canvas.y, &where);
65 printf("over %p, where %i\n", elm_object_item_data_get(gli), where);
67 printf("over none, where %i\n", where);
71 _bt50_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
73 elm_genlist_item_bring_in(data);
77 _bt1500_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
79 elm_genlist_item_middle_bring_in(data);
83 _gl_selected(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
85 printf("selected: %p\n", event_info);
89 _gl_double_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
91 printf("double clicked: %p\n", event_info);
95 _gl_longpress(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
97 printf("longpress %p\n", event_info);
101 test_genlist(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
103 Evas_Object *win, *gl, *bt_50, *bt_1500, *bx;
105 Elm_Object_Item *gli;
108 win = elm_win_util_standard_add("genlist", "Genlist");
109 elm_win_autodel_set(win, EINA_TRUE);
111 bx = elm_box_add(win);
112 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
113 elm_win_resize_object_add(win, bx);
114 evas_object_show(bx);
116 gl = elm_genlist_add(win);
117 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
118 evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
119 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
120 // FIXME: This causes genlist to resize the horiz axis very slowly :(
121 // Reenable this and resize the window horizontally, then try to resize it back
122 //elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
123 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
124 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
125 elm_box_pack_end(bx, gl);
126 evas_object_show(gl);
128 over = evas_object_rectangle_add(evas_object_evas_get(win));
129 evas_object_color_set(over, 0, 0, 0, 0);
130 evas_object_event_callback_add(over, EVAS_CALLBACK_MOUSE_MOVE, _move, gl);
131 evas_object_repeat_events_set(over, 1);
132 evas_object_show(over);
133 evas_object_size_hint_weight_set(over, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
134 elm_win_resize_object_add(win, over);
136 itc1 = elm_genlist_item_class_new();
137 itc1->item_style = "default";
138 itc1->func.text_get = gl_text_get;
139 itc1->func.content_get = gl_content_get;
140 itc1->func.state_get = gl_state_get;
141 itc1->func.del = NULL;
143 bt_50 = elm_button_add(win);
144 elm_object_text_set(bt_50, "Go to 50");
145 evas_object_show(bt_50);
146 elm_box_pack_end(bx, bt_50);
148 bt_1500 = elm_button_add(win);
149 elm_object_text_set(bt_1500, "Go to 1500");
150 evas_object_show(bt_1500);
151 elm_box_pack_end(bx, bt_1500);
153 for (i = 0; i < 2000; i++)
155 gli = elm_genlist_item_append(gl, itc1,
156 (void *)(long)i/* item data */,
158 ELM_GENLIST_ITEM_NONE,
160 (void *)(long)(i * 10)/* func data */);
162 evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
164 evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
166 elm_genlist_item_class_free(itc1);
168 evas_object_resize(win, 480, 800);
169 evas_object_show(win);
175 my_gl_clear(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
177 Evas_Object *gl = data;
178 elm_genlist_clear(gl);
182 my_gl_add(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
184 Evas_Object *gl = data;
187 itc1->item_style = "default";
188 itc1->func.text_get = gl_text_get;
189 itc1->func.content_get = gl_content_get;
190 itc1->func.state_get = gl_state_get;
191 itc1->func.del = NULL;
193 elm_genlist_item_append(gl, itc1,
194 (void *)(long)i/* item data */,
196 ELM_GENLIST_ITEM_NONE,
198 (void *)(long)(i * 10)/* func data */);
203 my_gl_insert_before(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
205 Evas_Object *gl = data;
207 Elm_Object_Item *gli_selected;
209 itc1->item_style = "default";
210 itc1->func.text_get = gl_text_get;
211 itc1->func.content_get = gl_content_get;
212 itc1->func.state_get = gl_state_get;
213 itc1->func.del = NULL;
215 gli_selected = elm_genlist_selected_item_get(gl);
218 printf("no item selected\n");
222 elm_genlist_item_insert_before(gl, itc1,
223 (void *)(long)i/* item data */,
225 gli_selected /* item before */,
226 ELM_GENLIST_ITEM_NONE,
228 (void *)(long)(i * 10)/* func data */);
233 my_gl_insert_after(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
235 Evas_Object *gl = data;
237 Elm_Object_Item *gli_selected;
239 itc1->item_style = "default";
240 itc1->func.text_get = gl_text_get;
241 itc1->func.content_get = gl_content_get;
242 itc1->func.state_get = gl_state_get;
243 itc1->func.del = NULL;
245 gli_selected = elm_genlist_selected_item_get(gl);
248 printf("no item selected\n");
252 elm_genlist_item_insert_after(gl, itc1,
253 (void *)(long)i/* item data */,
255 gli_selected /* item after */,
256 ELM_GENLIST_ITEM_NONE,
258 (void *)(long)(i * 10)/* func data */);
263 my_gl_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
265 Evas_Object *gl = data;
266 Elm_Object_Item *gli = elm_genlist_selected_item_get(gl);
269 printf("no item selected\n");
272 elm_object_item_del(gli);
276 my_gl_disable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
278 Evas_Object *gl = data;
279 Elm_Object_Item *gli = elm_genlist_selected_item_get(gl);
282 printf("no item selected\n");
285 elm_object_item_disabled_set(gli, EINA_TRUE);
286 elm_genlist_item_selected_set(gli, EINA_FALSE);
287 elm_genlist_item_update(gli);
291 my_gl_update_all(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
293 Evas_Object *gl = data;
295 Elm_Object_Item *it = elm_genlist_first_item_get(gl);
298 elm_genlist_item_update(it);
301 it = elm_genlist_item_next_get(it);
306 my_gl_first(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
308 Evas_Object *gl = data;
309 Elm_Object_Item *gli = elm_genlist_first_item_get(gl);
311 elm_genlist_item_show(gli);
312 elm_genlist_item_selected_set(gli, 1);
316 my_gl_last(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
318 Evas_Object *gl = data;
319 Elm_Object_Item *gli = elm_genlist_last_item_get(gl);
321 elm_genlist_item_show(gli);
322 elm_genlist_item_selected_set(gli, 1);
326 my_gl_flush_delay(void *data __UNUSED__)
328 elm_cache_all_flush();
329 return ECORE_CALLBACK_CANCEL;
333 my_gl_flush(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
335 ecore_timer_add(1.2, my_gl_flush_delay, NULL);
339 test_genlist2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
341 Evas_Object *win, *bg, *gl, *bx, *bx2, *bx3, *bt;
342 Elm_Object_Item *gli[10];
345 win = elm_win_add(NULL, "genlist2", ELM_WIN_BASIC);
346 elm_win_title_set(win, "Genlist 2");
347 elm_win_autodel_set(win, EINA_TRUE);
349 bg = elm_bg_add(win);
350 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
351 elm_bg_file_set(bg, buf, NULL);
352 elm_win_resize_object_add(win, bg);
353 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
354 evas_object_show(bg);
356 bx = elm_box_add(win);
357 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
358 elm_win_resize_object_add(win, bx);
359 evas_object_show(bx);
361 gl = elm_genlist_add(win);
362 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
363 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
364 evas_object_show(gl);
366 itc1 = elm_genlist_item_class_new();
367 itc1->item_style = "default";
368 itc1->func.text_get = gl_text_get;
369 itc1->func.content_get = gl_content_get;
370 itc1->func.state_get = gl_state_get;
371 itc1->func.del = NULL;
373 gli[0] = elm_genlist_item_append(gl, itc1,
374 (void *)1001/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
375 (void *)1001/* func data */);
376 gli[1] = elm_genlist_item_append(gl, itc1,
377 (void *)1002/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
378 (void *)1002/* func data */);
379 gli[2] = elm_genlist_item_append(gl, itc1,
380 (void *)1003/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
381 (void *)1003/* func data */);
382 gli[3] = elm_genlist_item_prepend(gl, itc1,
383 (void *)1004/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
384 (void *)1004/* func data */);
385 gli[4] = elm_genlist_item_prepend(gl, itc1,
386 (void *)1005/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
387 (void *)1005/* func data */);
388 gli[5] = elm_genlist_item_insert_before(gl, itc1,
389 (void *)1006/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
390 gl_sel/* func */, (void *)1006/* func data */);
391 gli[6] = elm_genlist_item_insert_after(gl, itc1,
392 (void *)1007/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
393 gl_sel/* func */, (void *)1007/* func data */);
394 elm_box_pack_end(bx, gl);
396 bx2 = elm_box_add(win);
397 elm_box_horizontal_set(bx2, EINA_TRUE);
398 elm_box_homogeneous_set(bx2, EINA_TRUE);
399 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
400 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
402 bt = elm_button_add(win);
403 elm_object_text_set(bt, "/\\");
404 evas_object_smart_callback_add(bt, "clicked", my_gl_first, gl);
405 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
406 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
407 elm_box_pack_end(bx2, bt);
408 evas_object_show(bt);
410 bt = elm_button_add(win);
411 elm_object_text_set(bt, "\\/");
412 evas_object_smart_callback_add(bt, "clicked", my_gl_last, gl);
413 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
414 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
415 elm_box_pack_end(bx2, bt);
416 evas_object_show(bt);
418 bt = elm_button_add(win);
419 elm_object_text_set(bt, "#");
420 evas_object_smart_callback_add(bt, "clicked", my_gl_disable, gl);
421 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
422 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
423 elm_box_pack_end(bx2, bt);
424 evas_object_show(bt);
426 bt = elm_button_add(win);
427 elm_object_text_set(bt, "U");
428 evas_object_smart_callback_add(bt, "clicked", my_gl_update_all, gl);
429 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
430 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
431 elm_box_pack_end(bx2, bt);
432 evas_object_show(bt);
434 elm_box_pack_end(bx, bx2);
435 evas_object_show(bx2);
437 bx2 = elm_box_add(win);
438 elm_box_horizontal_set(bx2, EINA_TRUE);
439 elm_box_homogeneous_set(bx2, EINA_TRUE);
440 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
441 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
443 bt = elm_button_add(win);
444 elm_object_text_set(bt, "X");
445 evas_object_smart_callback_add(bt, "clicked", my_gl_clear, gl);
446 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
447 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
448 elm_box_pack_end(bx2, bt);
449 evas_object_show(bt);
451 bt = elm_button_add(win);
452 elm_object_text_set(bt, "+");
453 evas_object_smart_callback_add(bt, "clicked", my_gl_add, gl);
454 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
455 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
456 elm_box_pack_end(bx2, bt);
457 evas_object_show(bt);
459 bt = elm_button_add(win);
460 elm_object_text_set(bt, "-");
461 evas_object_smart_callback_add(bt, "clicked", my_gl_del, gl);
462 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
463 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
464 elm_box_pack_end(bx2, bt);
465 evas_object_show(bt);
467 elm_box_pack_end(bx, bx2);
468 evas_object_show(bx2);
470 bx3 = elm_box_add(win);
471 elm_box_horizontal_set(bx3, EINA_TRUE);
472 elm_box_homogeneous_set(bx3, EINA_TRUE);
473 evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
474 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
476 bt = elm_button_add(win);
477 elm_object_text_set(bt, "+ before");
478 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before, gl);
479 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
480 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
481 elm_box_pack_end(bx3, bt);
482 evas_object_show(bt);
484 bt = elm_button_add(win);
485 elm_object_text_set(bt, "+ after");
486 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after, gl);
487 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
488 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
489 elm_box_pack_end(bx3, bt);
490 evas_object_show(bt);
492 bt = elm_button_add(win);
493 elm_object_text_set(bt, "Flush");
494 evas_object_smart_callback_add(bt, "clicked", my_gl_flush, gl);
495 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
496 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
497 elm_box_pack_end(bx3, bt);
498 evas_object_show(bt);
500 elm_box_pack_end(bx, bx3);
501 evas_object_show(bx3);
503 /* item_class_ref is needed for itc1. some items can be added in callbacks */
504 elm_genlist_item_class_ref(itc1);
505 elm_genlist_item_class_free(itc1);
507 evas_object_resize(win, 320, 320);
508 evas_object_show(win);
513 static Elm_Genlist_Item_Class itc2;
515 char *gl2_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
517 const Testitem *tit = data;
519 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
523 Evas_Object *gl2_content_get(void *data, Evas_Object *obj, const char *part)
525 const Testitem *tit = data;
527 Evas_Object *ic = elm_icon_add(obj);
528 if (!strcmp(part, "elm.swallow.icon"))
530 if (!(tit->mode & 0x3))
531 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
532 else if ((tit->mode & 0x3) == 1)
533 snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
534 else if ((tit->mode & 0x3) == 2)
535 snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", elm_app_data_dir_get());
536 else if ((tit->mode & 0x3) == 3)
537 snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
538 elm_icon_file_set(ic, buf, NULL);
540 else if (!strcmp(part, "elm.swallow.end"))
542 if (!(tit->mode & 0x3))
543 snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
544 else if ((tit->mode & 0x3) == 1)
545 snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
546 else if ((tit->mode & 0x3) == 2)
547 snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
548 else if ((tit->mode & 0x3) == 3)
549 snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
550 elm_icon_file_set(ic, buf, NULL);
552 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
556 Eina_Bool gl2_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
562 my_gl_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
564 Testitem *tit = data;
566 elm_genlist_item_update(tit->item);
570 my_gl_labels_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
572 Testitem *tit = data;
574 elm_genlist_item_fields_update(tit->item, "*", ELM_GENLIST_ITEM_FIELD_LABEL);
578 my_gl_contents_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
580 Testitem *tit = data;
582 elm_genlist_item_fields_update(tit->item, "*", ELM_GENLIST_ITEM_FIELD_CONTENT);
586 test_genlist3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
588 Evas_Object *win, *gl, *bx, *bx2, *bt;
589 static Testitem tit[3];
591 win = elm_win_util_standard_add("genlist3", "Genlist 3");
592 elm_win_autodel_set(win, EINA_TRUE);
594 bx = elm_box_add(win);
595 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
596 elm_win_resize_object_add(win, bx);
597 evas_object_show(bx);
599 gl = elm_genlist_add(win);
600 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
601 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
602 evas_object_show(gl);
604 itc2.item_style = "default";
605 itc2.func.text_get = gl2_text_get;
606 itc2.func.content_get = gl2_content_get;
607 itc2.func.state_get = gl2_state_get;
608 itc2.func.del = NULL;
611 tit[0].item = elm_genlist_item_append(gl, &itc2,
612 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
613 NULL/* func data */);
615 tit[1].item = elm_genlist_item_append(gl, &itc2,
616 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
617 NULL/* func data */);
619 tit[2].item = elm_genlist_item_append(gl, &itc2,
620 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
621 NULL/* func data */);
623 elm_box_pack_end(bx, gl);
624 evas_object_show(bx);
626 bx2 = elm_box_add(win);
627 elm_box_horizontal_set(bx2, EINA_TRUE);
628 elm_box_homogeneous_set(bx2, EINA_TRUE);
629 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
630 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
632 bt = elm_button_add(win);
633 elm_object_text_set(bt, "[1]");
634 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
635 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
636 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
637 elm_box_pack_end(bx2, bt);
638 evas_object_show(bt);
640 bt = elm_button_add(win);
641 elm_object_text_set(bt, "labels");
642 evas_object_smart_callback_add(bt, "clicked", my_gl_labels_update, &(tit[1]));
643 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
644 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
645 elm_box_pack_end(bx2, bt);
646 evas_object_show(bt);
648 bt = elm_button_add(win);
649 elm_object_text_set(bt, "contents");
650 evas_object_smart_callback_add(bt, "clicked", my_gl_contents_update, &(tit[2]));
651 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
652 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
653 elm_box_pack_end(bx2, bt);
654 evas_object_show(bt);
656 elm_box_pack_end(bx, bx2);
657 evas_object_show(bx2);
659 evas_object_resize(win, 320, 320);
660 evas_object_show(win);
666 my_gl_item_check_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
668 Testitem *tit = data;
669 tit->onoff = elm_check_state_get(obj);
670 printf("item %p onoff = %i\n", tit, tit->onoff);
673 static Elm_Genlist_Item_Class itc3;
675 char *gl3_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
677 const Testitem *tit = data;
679 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
683 Evas_Object *gl3_content_get(void *data, Evas_Object *obj, const char *part)
685 const Testitem *tit = data;
686 if (!strcmp(part, "elm.swallow.icon"))
690 lb = elm_label_add(obj);
691 elm_label_line_wrap_set(lb, ELM_WRAP_CHAR);
692 elm_label_wrap_width_set(lb, 201);
693 elm_object_text_set(lb, "ashj ascjscjh n asjkl hcjlh ls hzshnn zjh sh zxjcjsnd h dfw sdv edev efe fwefvv vsd cvs ws wf fvwf wd fwe f we wef we wfe rfwewef wfv wswf wefg sdfws w wsdcfwcf wsc vdv sdsd sdcd cv wsc sdcv wsc d sdcdcsd sdcdsc wdvd sdcsd wscxcv wssvd sd");
696 else if (!strcmp(part, "elm.swallow.end"))
699 ck = elm_check_add(obj);
700 evas_object_propagate_events_set(ck, EINA_FALSE);
701 elm_check_state_set(ck, tit->onoff);
702 evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed, data);
708 Eina_Bool gl3_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
714 test_genlist4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
716 Evas_Object *win, *gl, *bx, *bx2, *bt;
717 static Testitem tit[3];
719 win = elm_win_util_standard_add("genlist4", "Genlist 4");
720 elm_win_autodel_set(win, EINA_TRUE);
722 bx = elm_box_add(win);
723 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
724 elm_win_resize_object_add(win, bx);
725 evas_object_show(bx);
727 gl = elm_genlist_add(win);
728 elm_genlist_height_for_width_mode_set(gl, EINA_TRUE);
729 elm_genlist_multi_select_set(gl, 1);
730 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
731 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
732 evas_object_show(gl);
734 itc3.item_style = "default";
735 itc3.func.text_get = gl3_text_get;
736 itc3.func.content_get = gl3_content_get;
737 itc3.func.state_get = gl3_state_get;
738 itc3.func.del = NULL;
741 tit[0].item = elm_genlist_item_append(gl, &itc3,
742 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
743 NULL/* func data */);
745 tit[1].item = elm_genlist_item_append(gl, &itc3,
746 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
747 NULL/* func data */);
749 tit[2].item = elm_genlist_item_append(gl, &itc3,
750 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
751 NULL/* func data */);
753 elm_box_pack_end(bx, gl);
754 evas_object_show(bx);
756 bx2 = elm_box_add(win);
757 elm_box_horizontal_set(bx2, EINA_TRUE);
758 elm_box_homogeneous_set(bx2, EINA_TRUE);
759 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
760 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
762 bt = elm_button_add(win);
763 elm_object_text_set(bt, "[1]");
764 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
765 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
766 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
767 elm_box_pack_end(bx2, bt);
768 evas_object_show(bt);
770 bt = elm_button_add(win);
771 elm_object_text_set(bt, "[2]");
772 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
773 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
774 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
775 elm_box_pack_end(bx2, bt);
776 evas_object_show(bt);
778 bt = elm_button_add(win);
779 elm_object_text_set(bt, "[3]");
780 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
781 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
782 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
783 elm_box_pack_end(bx2, bt);
784 evas_object_show(bt);
786 elm_box_pack_end(bx, bx2);
787 evas_object_show(bx2);
789 evas_object_resize(win, 320, 320);
790 evas_object_show(win);
796 my_gl_item_check_changed2(void *data, Evas_Object *obj, void *event_info __UNUSED__)
798 Testitem *tit = data;
799 tit->onoff = elm_check_state_get(obj);
800 printf("item %p onoff = %i\n", tit, tit->onoff);
803 static Elm_Genlist_Item_Class itc5;
805 char *gl5_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
807 const Testitem *tit = data;
809 if (!strcmp(part, "elm.text"))
811 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
813 else if (!strcmp(part, "elm.text.sub"))
815 snprintf(buf, sizeof(buf), "%i bottles on the wall", tit->mode);
820 Evas_Object *gl5_content_get(void *data, Evas_Object *obj, const char *part)
822 const Testitem *tit = data;
824 if (!strcmp(part, "elm.swallow.icon"))
826 Evas_Object *bx = elm_box_add(obj);
828 elm_box_horizontal_set(bx, EINA_TRUE);
829 ic = elm_icon_add(obj);
830 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
831 elm_icon_file_set(ic, buf, NULL);
832 elm_icon_scale_set(ic, 0, 0);
833 evas_object_show(ic);
834 elm_box_pack_end(bx, ic);
835 ic = elm_icon_add(obj);
836 elm_icon_file_set(ic, buf, NULL);
837 elm_icon_scale_set(ic, 0, 0);
838 evas_object_show(ic);
839 elm_box_pack_end(bx, ic);
840 elm_box_horizontal_set(bx, EINA_TRUE);
841 evas_object_show(bx);
844 else if (!strcmp(part, "elm.swallow.end"))
847 ck = elm_check_add(obj);
848 evas_object_propagate_events_set(ck, EINA_FALSE);
849 elm_check_state_set(ck, tit->onoff);
850 evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed2, data);
851 evas_object_show(ck);
857 Eina_Bool gl5_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
863 item_drag_up(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
869 item_drag_down(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
871 printf("drag down\n");
875 item_drag_left(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
877 printf("drag left\n");
881 item_drag_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
883 printf("drag right\n");
887 scroll_top(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
889 printf("Top edge!\n");
893 scroll_bottom(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
895 printf("Bottom edge!\n");
899 scroll_left(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
901 printf("Left edge!\n");
905 scroll_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
907 printf("Right edge!\n");
911 item_drag(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
917 item_drag_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
919 printf("drag stop\n");
923 item_longpress(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
925 printf("longpress\n");
929 test_genlist5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
931 Evas_Object *win, *gl, *bx, *bx2, *bt;
932 static Testitem tit[3];
934 win = elm_win_util_standard_add("genlist5", "Genlist 5");
935 elm_win_autodel_set(win, EINA_TRUE);
937 bx = elm_box_add(win);
938 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
939 elm_win_resize_object_add(win, bx);
940 evas_object_show(bx);
942 gl = elm_genlist_add(win);
943 elm_genlist_always_select_mode_set(gl, 1);
944 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
945 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
946 evas_object_show(gl);
947 itc5.item_style = "double_label";
948 itc5.func.text_get = gl5_text_get;
949 itc5.func.content_get = gl5_content_get;
950 itc5.func.state_get = gl5_state_get;
951 itc5.func.del = NULL;
954 tit[0].item = elm_genlist_item_append(gl, &itc5,
955 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
956 NULL/* func data */);
958 tit[1].item = elm_genlist_item_append(gl, &itc5,
959 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
960 NULL/* func data */);
962 tit[2].item = elm_genlist_item_append(gl, &itc5,
963 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
964 NULL/* func data */);
966 elm_box_pack_end(bx, gl);
967 evas_object_show(bx);
969 evas_object_smart_callback_add(gl, "drag,start,up", item_drag_up, NULL);
970 evas_object_smart_callback_add(gl, "drag,start,down", item_drag_down, NULL);
971 evas_object_smart_callback_add(gl, "drag,start,left", item_drag_left, NULL);
972 evas_object_smart_callback_add(gl, "drag,start,right", item_drag_right, NULL);
973 evas_object_smart_callback_add(gl, "scroll,edge,top", scroll_top, NULL);
974 evas_object_smart_callback_add(gl, "scroll,edge,bottom", scroll_bottom, NULL);
975 evas_object_smart_callback_add(gl, "scroll,edge,left", scroll_left, NULL);
976 evas_object_smart_callback_add(gl, "scroll,edge,right", scroll_right, NULL);
977 evas_object_smart_callback_add(gl, "drag", item_drag, NULL);
978 evas_object_smart_callback_add(gl, "drag,stop", item_drag_stop, NULL);
979 evas_object_smart_callback_add(gl, "longpressed", item_longpress, NULL);
981 bx2 = elm_box_add(win);
982 elm_box_horizontal_set(bx2, EINA_TRUE);
983 elm_box_homogeneous_set(bx2, EINA_TRUE);
984 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
985 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
987 bt = elm_button_add(win);
988 elm_object_text_set(bt, "[1]");
989 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
990 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
991 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
992 elm_box_pack_end(bx2, bt);
993 evas_object_show(bt);
995 bt = elm_button_add(win);
996 elm_object_text_set(bt, "[2]");
997 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
998 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
999 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1000 elm_box_pack_end(bx2, bt);
1001 evas_object_show(bt);
1003 bt = elm_button_add(win);
1004 elm_object_text_set(bt, "[3]");
1005 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1006 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1007 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1008 elm_box_pack_end(bx2, bt);
1009 evas_object_show(bt);
1011 elm_box_pack_end(bx, bx2);
1012 evas_object_show(bx2);
1014 evas_object_resize(win, 320, 320);
1015 evas_object_show(win);
1020 static Elm_Genlist_Item_Class itc4;
1023 gl4_sel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1025 Elm_Object_Item *glit = event_info;
1026 int depth = elm_genlist_item_expanded_depth_get(glit);
1027 printf("expanded depth for selected item is %d\n", depth);
1031 gl4_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1033 Elm_Object_Item *glit = event_info;
1034 Evas_Object *gl = elm_object_item_widget_get(glit);
1035 int val = (int)(long) elm_object_item_data_get(glit);
1037 elm_genlist_item_append(gl, &itc4,
1038 (void *)(long) (val + 1)/* item data */,
1039 glit/* parent */, ELM_GENLIST_ITEM_NONE,
1041 NULL/* func data */);
1042 elm_genlist_item_append(gl, &itc4,
1043 (void *)(long) (val + 2)/* item data */,
1044 glit/* parent */, ELM_GENLIST_ITEM_NONE,
1046 NULL/* func data */);
1047 elm_genlist_item_append(gl, &itc4,
1048 (void *)(long) (val + 3)/* item data */,
1050 ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1051 NULL/* func data */);
1054 gl4_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1056 Elm_Object_Item *glit = event_info;
1057 elm_genlist_item_subitems_clear(glit);
1061 gl4_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1063 Elm_Object_Item *glit = event_info;
1064 elm_genlist_item_expanded_set(glit, EINA_TRUE);
1068 gl4_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1070 Elm_Object_Item *glit = event_info;
1071 elm_genlist_item_expanded_set(glit, EINA_FALSE);
1074 char *gl4_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1077 snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
1081 Evas_Object *gl4_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
1084 if (!strcmp(part, "elm.swallow.icon"))
1086 Evas_Object *ic = elm_icon_add(obj);
1087 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1088 elm_icon_file_set(ic, buf, NULL);
1089 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
1090 evas_object_show(ic);
1093 else if (!strcmp(part, "elm.swallow.end"))
1096 ck = elm_check_add(obj);
1097 evas_object_propagate_events_set(ck, EINA_FALSE);
1098 evas_object_show(ck);
1104 Eina_Bool gl4_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1109 void gl4_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
1111 printf("item deleted.\n");
1115 test_genlist6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1117 Evas_Object *win, *gl, *bx, *bx2, *bt;
1119 win = elm_win_util_standard_add("genlist-tree", "Genlist Tree");
1120 elm_win_autodel_set(win, EINA_TRUE);
1122 bx = elm_box_add(win);
1123 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1124 elm_win_resize_object_add(win, bx);
1125 evas_object_show(bx);
1127 gl = elm_genlist_add(win);
1128 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1129 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1130 evas_object_show(gl);
1132 itc4.item_style = "default";
1133 itc4.func.text_get = gl4_text_get;
1134 itc4.func.content_get = gl4_content_get;
1135 itc4.func.state_get = gl4_state_get;
1136 itc4.func.del = gl4_del;
1138 elm_genlist_item_append(gl, &itc4,
1139 (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1140 NULL/* func data */);
1141 elm_genlist_item_append(gl, &itc4,
1142 (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1143 NULL/* func data */);
1144 elm_genlist_item_append(gl, &itc4,
1145 (void *)3/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1146 NULL/* func data */);
1148 evas_object_smart_callback_add(gl, "expand,request", gl4_exp_req, gl);
1149 evas_object_smart_callback_add(gl, "contract,request", gl4_con_req, gl);
1150 evas_object_smart_callback_add(gl, "expanded", gl4_exp, gl);
1151 evas_object_smart_callback_add(gl, "contracted", gl4_con, gl);
1153 elm_box_pack_end(bx, gl);
1154 evas_object_show(bx);
1156 bx2 = elm_box_add(win);
1157 elm_box_horizontal_set(bx2, EINA_TRUE);
1158 elm_box_homogeneous_set(bx2, EINA_TRUE);
1159 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1160 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1162 bt = elm_button_add(win);
1163 elm_object_text_set(bt, "[1]");
1164 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
1165 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1166 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1167 elm_box_pack_end(bx2, bt);
1168 evas_object_show(bt);
1170 bt = elm_button_add(win);
1171 elm_object_text_set(bt, "[2]");
1172 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
1173 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1174 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1175 elm_box_pack_end(bx2, bt);
1176 evas_object_show(bt);
1178 bt = elm_button_add(win);
1179 elm_object_text_set(bt, "[3]");
1180 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1181 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1182 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1183 elm_box_pack_end(bx2, bt);
1184 evas_object_show(bt);
1186 elm_box_pack_end(bx, bx2);
1187 evas_object_show(bx2);
1189 evas_object_resize(win, 320, 320);
1190 evas_object_show(win);
1195 struct genlist7_data
1197 Evas_Object *win, *naviframe;
1200 static Elm_Genlist_Item_Class itc7;
1203 gl_sel7(void *data, Evas_Object *obj, void *event_info)
1205 if (!event_info) return;
1206 elm_genlist_item_item_class_update(event_info, &itc7);
1207 printf("sel item data [%p] on genlist obj [%p], item pointer [%p], new item style [%s] \n", data, obj, event_info, itc7.item_style);
1211 test_genlist7_back_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1213 struct genlist7_data *info = data;
1216 elm_naviframe_item_pop(info->naviframe);
1220 test_genlist7_swipe(void *data, Evas_Object *obj __UNUSED__, void *event_info)
1222 struct genlist7_data *info = data;
1223 Evas_Object *box, *entry, *button;
1224 char item_data[] = "Just a simple test";
1226 if ((!event_info) || (!data)) return;
1228 box = elm_box_add(info->win);
1229 elm_box_homogeneous_set(box, EINA_FALSE);
1230 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1231 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
1232 evas_object_show(box);
1234 entry = elm_entry_add(info->win);
1235 elm_entry_scrollable_set(entry, EINA_TRUE);
1236 elm_entry_editable_set(entry, EINA_FALSE);
1237 elm_object_text_set(entry, item_data);
1238 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1239 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
1240 evas_object_show(entry);
1242 button = elm_button_add(info->win);
1243 elm_object_text_set(button, "back");
1244 evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
1245 evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
1246 evas_object_smart_callback_add(button, "clicked", test_genlist7_back_cb,
1248 evas_object_show(button);
1250 elm_box_pack_start(box, entry);
1251 elm_box_pack_end(box, button);
1253 elm_naviframe_item_simple_push(info->naviframe, box);
1257 test_genlist7(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1259 Evas_Object *win, *gl, *naviframe;
1260 static struct genlist7_data info;
1261 static Testitem tit[3];
1263 win = elm_win_util_standard_add("genlist7", "Genlist 7");
1264 elm_win_autodel_set(win, EINA_TRUE);
1267 naviframe = elm_naviframe_add(win);
1268 elm_win_resize_object_add(win, naviframe);
1269 evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1270 evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
1271 evas_object_show(naviframe);
1272 info.naviframe = naviframe;
1274 gl = elm_genlist_add(win);
1275 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1276 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1277 evas_object_smart_callback_add(gl, "swipe", test_genlist7_swipe, &info);
1278 evas_object_show(gl);
1279 elm_naviframe_item_simple_push(naviframe, gl);
1281 itc2.item_style = "default";
1282 itc2.func.text_get = gl2_text_get;
1283 itc2.func.content_get = gl2_content_get;
1284 itc2.func.state_get = gl2_state_get;
1285 itc2.func.del = NULL;
1287 itc7.item_style = "double_label";
1288 itc7.func.text_get = gl5_text_get;
1289 itc7.func.content_get = gl5_content_get;
1290 itc7.func.state_get = gl5_state_get;
1291 itc7.func.del = NULL;
1294 tit[0].item = elm_genlist_item_append(gl, &itc2,
1295 &(tit[0])/* item data */, NULL/* parent */,
1296 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1297 NULL/* func data */);
1299 tit[1].item = elm_genlist_item_append(gl, &itc2,
1300 &(tit[1])/* item data */, NULL/* parent */,
1301 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1302 NULL/* func data */);
1304 tit[2].item = elm_genlist_item_append(gl, &itc2,
1305 &(tit[2])/* item data */, NULL/* parent */,
1306 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1307 NULL/* func data */);
1309 evas_object_resize(win, 320, 320);
1310 evas_object_show(win);
1315 static Elm_Genlist_Item_Class itc_group;
1317 char *gl8_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1320 snprintf(buf, sizeof(buf), "Group Index # %i (Item # %i)", (int)((long)data / 10), (int)(long)data);
1325 _bt_show_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1327 elm_genlist_item_top_show(data);
1328 //elm_genlist_item_show(data);
1329 //elm_genlist_item_middle_show(data);
1333 _bt_bring_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1335 elm_genlist_item_top_bring_in(data);
1336 //elm_genlist_item_bring_in(data);
1337 //elm_genlist_item_middle_bring_in(data);
1341 test_genlist8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1343 Evas_Object *win, *gl, *bt[8], *bx, *bx2, *bx3;
1344 Elm_Object_Item *gli = NULL, *git = NULL;
1347 win = elm_win_util_standard_add("genlist-group", "Genlist Group");
1348 elm_win_autodel_set(win, EINA_TRUE);
1350 bx = elm_box_add(win);
1351 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1352 elm_win_resize_object_add(win, bx);
1353 evas_object_show(bx);
1355 gl = elm_genlist_add(win);
1356 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
1357 evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
1358 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
1359 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1360 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1361 elm_box_pack_end(bx, gl);
1362 evas_object_show(gl);
1364 itc1 = elm_genlist_item_class_new();
1365 itc1->item_style = "default";
1366 itc1->func.text_get = gl_text_get;
1367 itc1->func.content_get = gl_content_get;
1368 itc1->func.state_get = gl_state_get;
1369 itc1->func.del = NULL;
1371 itc_group.item_style = "group_index";
1372 itc_group.func.text_get = gl8_text_get;
1373 itc_group.func.content_get = NULL;
1374 itc_group.func.state_get = NULL;
1375 itc_group.func.del = NULL;
1377 bx2 = elm_box_add(win);
1378 elm_box_horizontal_set(bx2, EINA_TRUE);
1379 elm_box_homogeneous_set(bx2, EINA_TRUE);
1380 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1381 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1384 bt[bt_num] = elm_button_add(win);
1385 elm_object_text_set(bt[bt_num], "Show 0");
1386 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1387 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1388 evas_object_show(bt[bt_num]);
1389 elm_box_pack_end(bx2, bt[bt_num]);
1391 bt[++bt_num] = elm_button_add(win);
1392 elm_object_text_set(bt[bt_num], "Show 26");
1393 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1394 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1395 evas_object_show(bt[bt_num]);
1396 elm_box_pack_end(bx2, bt[bt_num]);
1398 bt[++bt_num] = elm_button_add(win);
1399 elm_object_text_set(bt[bt_num], "Show 101");
1400 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1401 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1402 evas_object_show(bt[bt_num]);
1403 elm_box_pack_end(bx2, bt[bt_num]);
1405 bt[++bt_num] = elm_button_add(win);
1406 elm_object_text_set(bt[bt_num], "Show 480");
1407 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1408 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1409 evas_object_show(bt[bt_num]);
1410 elm_box_pack_end(bx2, bt[bt_num]);
1412 elm_box_pack_end(bx, bx2);
1413 evas_object_show(bx2);
1415 bx3 = elm_box_add(win);
1416 elm_box_horizontal_set(bx3, EINA_TRUE);
1417 elm_box_homogeneous_set(bx3, EINA_TRUE);
1418 evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
1419 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
1421 bt[++bt_num] = elm_button_add(win);
1422 elm_object_text_set(bt[bt_num], "Bring top 0");
1423 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1424 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1425 evas_object_show(bt[bt_num]);
1426 elm_box_pack_end(bx3, bt[bt_num]);
1428 bt[++bt_num] = elm_button_add(win);
1429 elm_object_text_set(bt[bt_num], "Bring top 31");
1430 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1431 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1432 evas_object_show(bt[bt_num]);
1433 elm_box_pack_end(bx3, bt[bt_num]);
1435 bt[++bt_num] = elm_button_add(win);
1436 elm_object_text_set(bt[bt_num], "Bring top 239");
1437 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1438 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1439 evas_object_show(bt[bt_num]);
1440 elm_box_pack_end(bx3, bt[bt_num]);
1442 bt[++bt_num] = elm_button_add(win);
1443 elm_object_text_set(bt[bt_num], "Bring top 477");
1444 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1445 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1446 evas_object_show(bt[bt_num]);
1447 elm_box_pack_end(bx3, bt[bt_num]);
1449 elm_box_pack_end(bx, bx3);
1450 evas_object_show(bx3);
1452 for (i = 0; i < 500; i++)
1456 gli = git = elm_genlist_item_append(gl, &itc_group,
1457 (void *)(long)i/* item data */,
1459 ELM_GENLIST_ITEM_GROUP,
1461 (void *)(long)(i * 10)/* func data */);
1462 elm_genlist_item_display_only_set(git, EINA_TRUE);
1466 gli = elm_genlist_item_append(gl, itc1,
1467 (void *)(long)i/* item data */,
1469 ELM_GENLIST_ITEM_NONE,
1471 (void *)(long)(i * 10)/* func data */);
1476 evas_object_smart_callback_add(bt[0], "clicked", _bt_show_cb, gli);
1477 evas_object_smart_callback_add(bt[4], "clicked", _bt_bring_cb, gli);
1480 evas_object_smart_callback_add(bt[1], "clicked", _bt_show_cb, gli);
1483 evas_object_smart_callback_add(bt[5], "clicked", _bt_bring_cb, gli);
1486 evas_object_smart_callback_add(bt[2], "clicked", _bt_show_cb, gli);
1489 evas_object_smart_callback_add(bt[6], "clicked", _bt_bring_cb, gli);
1492 evas_object_smart_callback_add(bt[7], "clicked", _bt_bring_cb, gli);
1495 evas_object_smart_callback_add(bt[3], "clicked", _bt_show_cb, gli);
1499 elm_genlist_item_class_free(itc1);
1501 evas_object_resize(win, 480, 800);
1502 evas_object_show(win);
1508 gl9_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1510 Elm_Object_Item *glit = event_info;
1511 Evas_Object *gl = elm_object_item_widget_get(glit);
1512 int val = (int)(long) elm_object_item_data_get(glit);
1514 elm_genlist_item_append(gl, itc1,
1515 (void *)(long) (val + 1)/* item data */,
1517 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1518 NULL/* func data */);
1519 elm_genlist_item_append(gl, itc1,
1520 (void *)(long) (val + 2)/* item data */,
1522 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1523 NULL/* func data */);
1524 elm_genlist_item_append(gl, itc1,
1525 (void *)(long) (val + 3)/* item data */,
1527 ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1528 NULL/* func data */);
1532 gl9_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1534 Elm_Object_Item *glit = event_info;
1535 elm_genlist_item_subitems_clear(glit);
1539 gl9_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1541 Elm_Object_Item *glit = event_info;
1542 elm_genlist_item_expanded_set(glit, EINA_TRUE);
1546 gl9_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1548 Elm_Object_Item *glit = event_info;
1549 elm_genlist_item_expanded_set(glit, EINA_FALSE);
1553 test_genlist9(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1555 Evas_Object *win, *gl, *bx;
1556 Elm_Object_Item *git;
1558 win = elm_win_util_standard_add("genlist-group-tree", "Genlist Group Tree");
1559 elm_win_autodel_set(win, EINA_TRUE);
1561 bx = elm_box_add(win);
1562 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1563 elm_win_resize_object_add(win, bx);
1564 evas_object_show(bx);
1566 gl = elm_genlist_add(win);
1567 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
1568 evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
1569 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
1570 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1571 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1572 elm_box_pack_end(bx, gl);
1573 evas_object_show(gl);
1575 itc1 = elm_genlist_item_class_new();
1576 itc1->item_style = "default";
1577 itc1->func.text_get = gl_text_get;
1578 itc1->func.content_get = gl_content_get;
1579 itc1->func.state_get = gl_state_get;
1580 itc1->func.del = NULL;
1582 itc_group.item_style = "group_index";
1583 itc_group.func.text_get = gl8_text_get;
1584 itc_group.func.content_get = NULL;
1585 itc_group.func.state_get = NULL;
1586 itc_group.func.del = NULL;
1588 git = elm_genlist_item_append(gl, &itc_group,
1589 (void *)0/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_GROUP, gl4_sel/* func */,
1590 NULL/* func data */);
1591 elm_genlist_item_display_only_set(git, EINA_TRUE);
1592 elm_genlist_item_append(gl, itc1,
1593 (void *)1/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1594 NULL/* func data */);
1595 elm_genlist_item_append(gl, itc1,
1596 (void *)2/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1597 NULL/* func data */);
1598 elm_genlist_item_append(gl, itc1,
1599 (void *)3/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1600 NULL/* func data */);
1601 git = elm_genlist_item_append(gl, &itc_group,
1602 (void *)4/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_GROUP, gl4_sel/* func */,
1603 NULL/* func data */);
1604 elm_genlist_item_display_only_set(git, EINA_TRUE);
1605 elm_genlist_item_append(gl, itc1,
1606 (void *)5/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1607 NULL/* func data */);
1608 elm_genlist_item_append(gl, itc1,
1609 (void *)6/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1610 NULL/* func data */);
1611 elm_genlist_item_append(gl, itc1,
1612 (void *)7/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1613 NULL/* func data */);
1614 elm_genlist_item_class_free(itc1);
1616 evas_object_smart_callback_add(gl, "expand,request", gl9_exp_req, gl);
1617 evas_object_smart_callback_add(gl, "contract,request", gl9_con_req, gl);
1618 evas_object_smart_callback_add(gl, "expanded", gl9_exp, gl);
1619 evas_object_smart_callback_add(gl, "contracted", gl9_con, gl);
1621 evas_object_resize(win, 480, 800);
1622 evas_object_show(win);
1627 static Elm_Genlist_Item_Class itc10;
1628 static char *mode_type[] = { "slide", "rotate" };
1630 char *gl10_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
1633 if (!strcmp(part, "elm.text.mode"))
1634 snprintf(buf, sizeof(buf), "Mode # %i", (int)(long)data);
1636 snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data);
1640 Evas_Object *gl10_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
1643 Evas_Object *ic = elm_icon_add(obj);
1644 if (!strcmp(part, "elm.swallow.end"))
1645 snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
1647 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1648 elm_icon_file_set(ic, buf, NULL);
1649 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
1654 _gl_sel10(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1657 int v = elm_radio_value_get(data);
1659 elm_genlist_item_mode_set(event_info, mode_type[v], EINA_TRUE);
1663 _my_gl_mode_right(void *data, Evas_Object *obj __UNUSED__, void *event_info)
1666 int v = elm_radio_value_get(data);
1668 elm_genlist_item_mode_set(event_info, mode_type[v], EINA_TRUE);
1672 _my_gl_mode_left(void *data, Evas_Object *obj __UNUSED__, void *event_info)
1675 int v = elm_radio_value_get(data);
1677 elm_genlist_item_mode_set(event_info, mode_type[v], EINA_FALSE);
1681 _my_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1683 fprintf(stderr, "drag\n");
1685 int v = elm_radio_value_get(data);
1686 Elm_Object_Item *glit = (Elm_Object_Item *) elm_genlist_mode_item_get(obj);
1687 if (glit) elm_genlist_item_mode_set(glit, mode_type[v], EINA_FALSE);
1691 test_genlist10(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1693 Evas_Object *win, *fr, *lb, *bx, *bx2, *bx3, *rd, *rdg, *gl;
1696 win = elm_win_util_standard_add("genlist10", "Genlist Mode");
1697 elm_win_autodel_set(win, EINA_TRUE);
1699 bx = elm_box_add(win);
1700 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1701 elm_win_resize_object_add(win, bx);
1702 evas_object_show(bx);
1704 fr = elm_frame_add(win);
1705 elm_object_text_set(fr, "Mode Type");
1706 elm_box_pack_end(bx, fr);
1707 evas_object_show(fr);
1709 bx2 = elm_box_add(win);
1710 elm_object_content_set(fr, bx2);
1711 evas_object_show(bx2);
1713 lb = elm_label_add(win);
1714 elm_object_text_set(lb,
1715 "Sweep genlist items to the right.<br/>"
1716 "Test this by changing Mode Type to Slide or Rotate.");
1717 elm_box_pack_end(bx2, lb);
1718 evas_object_show(lb);
1720 bx3 = elm_box_add(win);
1721 elm_box_horizontal_set(bx3, EINA_TRUE);
1722 elm_box_pack_end(bx2, bx3);
1723 evas_object_show(bx3);
1725 rd = elm_radio_add(win);
1726 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1727 elm_radio_state_value_set(rd, 0);
1728 elm_object_text_set(rd, "Slide ");
1729 evas_object_show(rd);
1730 elm_box_pack_end(bx3, rd);
1733 rd = elm_radio_add(win);
1734 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1735 elm_radio_state_value_set(rd, 1);
1736 elm_object_text_set(rd, "Rotate");
1737 elm_radio_group_add(rd, rdg);
1738 evas_object_show(rd);
1739 elm_box_pack_end(bx3, rd);
1741 gl = elm_genlist_add(win);
1742 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1743 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1744 evas_object_smart_callback_add(gl, "drag,start,right", _my_gl_mode_right, rdg);
1745 evas_object_smart_callback_add(gl, "drag,start,left", _my_gl_mode_left, rdg);
1746 evas_object_smart_callback_add(gl, "drag,start,up", _my_gl_mode_cancel, rdg);
1747 evas_object_smart_callback_add(gl, "drag,start,down", _my_gl_mode_cancel, rdg);
1748 evas_object_show(gl);
1750 itc10.item_style = "default";
1751 itc10.mode_item_style = "mode";
1752 itc10.func.text_get = gl10_text_get;
1753 itc10.func.content_get = gl10_content_get;
1754 itc10.func.state_get = gl_state_get;
1755 itc10.func.del = NULL;
1757 for (i = 0; i < 50; i++)
1758 elm_genlist_item_append(gl,
1760 (void *)(1000 + i)/* item data */,
1762 ELM_GENLIST_ITEM_NONE/* flags */,
1763 _gl_sel10/* func */,
1764 rdg/* func data */);
1766 elm_box_pack_end(bx, gl);
1768 evas_object_resize(win, 520, 520);
1769 evas_object_show(win);
1775 _reorder_tg_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1777 elm_genlist_reorder_mode_set(data, elm_check_state_get(obj));
1781 * gl_moved is called after an item was reordered.
1782 * This is only called when reorder mode is enabled.
1784 * @param data : the genlist object passed as data.
1785 * @param obj : the genlist object.
1786 * @param item : the moved item.
1788 * If the move_after is true,
1789 * the item(*item) had been moved after the given relative item(*rel_item) in list.
1790 * If the move_after is false,
1791 * the item(*item) had been moved before the given relative item(*rel_item) in list.
1794 static void gl_moved(Evas_Object *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Object_Item *item __UNUSED__)
1796 // if needed, add application logic.
1800 test_genlist11(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1802 Evas_Object *win, *fr, *lb, *bx, *tg, *gl;
1805 win = elm_win_util_standard_add("genlist-reorder-mode", "Genlist Reorder Mode");
1806 elm_win_autodel_set(win, EINA_TRUE);
1808 bx = elm_box_add(win);
1809 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1810 elm_win_resize_object_add(win, bx);
1811 evas_object_show(bx);
1813 fr = elm_frame_add(win);
1815 elm_object_text_set(fr, "Reorder Mode");
1816 elm_box_pack_end(bx, fr);
1817 evas_object_show(fr);
1819 lb = elm_label_add(win);
1820 elm_object_text_set(lb,
1821 "Enable reorder mode if you want to move item.<br/>"
1822 "Then long press and drag item.");
1823 elm_object_content_set(fr, lb);
1824 evas_object_show(lb);
1826 gl = elm_genlist_add(win);
1827 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1828 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1829 evas_object_show(gl);
1831 tg = elm_check_add(win);
1832 elm_object_style_set(tg, "toggle");
1833 elm_object_text_set(tg, "Reorder Mode:");
1834 elm_check_state_set(tg, elm_mirrored_get());
1835 evas_object_smart_callback_add(tg, "changed", _reorder_tg_changed_cb, gl);
1836 elm_box_pack_end(bx, tg);
1837 evas_object_show(tg);
1839 itc1 = elm_genlist_item_class_new();
1840 itc1->item_style = "default";
1841 itc1->func.text_get = gl_text_get;
1842 itc1->func.content_get = gl_content_get;
1843 itc1->func.state_get = gl_state_get;
1844 itc1->func.del = NULL;
1845 evas_object_smart_callback_add(gl, "moved", (Evas_Smart_Cb)gl_moved, gl);
1847 for (i = 0; i < 50; i++)
1848 elm_genlist_item_append(gl,
1850 (void *)(1 + i)/* item data */,
1852 ELM_GENLIST_ITEM_NONE/* flags */,
1854 NULL/* func data */);
1856 elm_genlist_item_class_free(itc1);
1858 elm_box_pack_end(bx, gl);
1860 evas_object_resize(win, 400, 500);
1861 evas_object_show(win);
1864 char *gl12_text_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1866 return strdup("Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager. It covers uses from small mobile devices like phones all the way to powerful multi-core desktops (which are the primary development environment).");
1870 test_genlist12(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1872 Evas_Object *win, *bx, *gl;
1875 win = elm_win_util_standard_add("genlist-textblock", "Genlist Textblock");
1876 elm_win_autodel_set(win, EINA_TRUE);
1878 bx = elm_box_add(win);
1879 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1880 elm_win_resize_object_add(win, bx);
1881 evas_object_show(bx);
1883 gl = elm_genlist_add(win);
1884 elm_genlist_height_for_width_mode_set(gl, EINA_TRUE);
1885 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1886 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1887 elm_box_pack_end(bx, gl);
1888 evas_object_show(gl);
1890 itc1->item_style = "message";
1891 itc1->func.text_get = gl12_text_get;
1892 itc1->func.content_get = gl_content_get;
1893 itc1->func.state_get = gl_state_get;
1894 itc1->func.del = NULL;
1896 for (i = 0; i < 1000; i++)
1898 elm_genlist_item_append(gl, itc1,
1899 (void *)(long)i/* item data */,
1901 ELM_GENLIST_ITEM_NONE,
1903 (void *)(long)(i * 10)/* func data */);
1905 elm_genlist_item_class_free(itc1);
1907 evas_object_resize(win, 400, 500);
1908 evas_object_show(win);
1912 gl13_cmp(const void *pa, const void *pb)
1914 const Elm_Object_Item *ia = pa, *ib = pb;
1915 int a = (int)(long) elm_object_item_data_get(ia);
1916 int b = (int)(long) elm_object_item_data_get(ib);
1921 test_genlist13(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1923 Elm_Object_Item *pi[6];
1924 Evas_Object *win, *bx, *gl; int i, base, idx[3] = {1, 10, 15};
1926 win = elm_win_util_standard_add("genlist-tree-insert-sorted", "Genlist Tree, Insert Sorted");
1927 elm_win_autodel_set(win, EINA_TRUE);
1929 bx = elm_box_add(win);
1930 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1931 elm_win_resize_object_add(win, bx);
1932 evas_object_show(bx);
1934 gl = elm_genlist_add(win);
1935 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1936 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1937 evas_object_show(gl);
1939 itc4.item_style = "default";
1940 itc4.func.text_get = gl4_text_get;
1941 itc4.func.content_get = NULL;
1942 itc4.func.state_get = NULL;
1943 itc4.func.del = NULL;
1945 /* mixed order to test insert sorted */
1947 for (i = 0; i < 3; i++)
1949 pi[i] = elm_genlist_item_direct_sorted_insert
1950 (gl, &itc4, (void *)idx[i]/* item data */, NULL/* parent */,
1951 ELM_GENLIST_ITEM_SUBITEMS, gl13_cmp/* cmp */,
1952 NULL/* func */, NULL/* func data */);
1955 for (i = 0, base = 100; i < 3; i++, base += 100)
1958 for (j = 0; j < 3; j++)
1960 elm_genlist_item_direct_sorted_insert
1961 (gl, &itc4, (void *)(idx[j] + base)/* item data */,
1962 pi[i]/* parent */, ELM_GENLIST_ITEM_NONE,
1963 gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
1967 for (i = 0; i < 3; i++)
1969 pi[i + 3] = elm_genlist_item_direct_sorted_insert
1970 (gl, &itc4, (void *)(idx[i] * 2)/* item data */, NULL/* parent */,
1971 ELM_GENLIST_ITEM_SUBITEMS, gl13_cmp/* cmp */, NULL/* func */,
1972 NULL/* func data */);
1976 for (i = 0, base = 10000; i < 3; i++, base += 10000)
1979 for (j = 0; j < 3; j++)
1981 elm_genlist_item_direct_sorted_insert
1982 (gl, &itc4, (void *)(idx[j] + base)/* item data */,
1983 pi[i + 3]/* parent */, ELM_GENLIST_ITEM_NONE,
1984 gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
1988 elm_box_pack_end(bx, gl);
1989 evas_object_show(bx);
1991 evas_object_resize(win, 320, 320);
1992 evas_object_show(win);
1996 my_gl_insert_before_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1998 Evas_Object *gl = data;
1999 static int i = 1000;
2000 Elm_Object_Item *gli_selected;
2002 itc1->item_style = "default";
2003 itc1->func.text_get = gl_text_get;
2004 itc1->func.content_get = NULL;
2005 itc1->func.state_get = NULL;
2006 itc1->func.del = NULL;
2008 gli_selected = elm_genlist_selected_item_get(gl);
2011 printf("no item selected\n");
2015 elm_genlist_item_insert_before(gl, itc1,
2016 (void *)(long)i/* item data */,
2017 elm_genlist_item_parent_get(gli_selected),
2018 gli_selected/* item before */,
2019 ELM_GENLIST_ITEM_NONE,
2020 NULL/* func */, NULL/* func data */);
2025 my_gl_insert_after_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2027 Evas_Object *gl = data;
2029 Elm_Object_Item *gli_selected;
2031 itc1->item_style = "default";
2032 itc1->func.text_get = gl_text_get;
2033 itc1->func.content_get = NULL;
2034 itc1->func.state_get = NULL;
2035 itc1->func.del = NULL;
2037 gli_selected = elm_genlist_selected_item_get(gl);
2040 printf("no item selected\n");
2044 elm_genlist_item_insert_after(gl, itc1,
2045 (void *)(long)i/* item data */,
2046 elm_genlist_item_parent_get(gli_selected),
2047 gli_selected/* item after */,
2048 ELM_GENLIST_ITEM_NONE,
2049 NULL/* func */, NULL/* func data */);
2054 test_genlist14(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2056 Elm_Object_Item *pi[6];
2057 Evas_Object *win, *bx, *bx2, *bt, *gl;
2059 /* index: 0, 1, 2, 3, 4, 5
2060 * items: 1, 15, 11, 2, 33, 21
2061 * final: 1, 2, 11, 15, 21, 33
2063 const int idx[6] = {1, 15, 11, 2, 33, 21};
2064 const int relative[6] = {
2065 0, /* item '1' - not used */
2066 0, /* item '15' - insert after pi[0], item '1' */
2067 -1, /* item '11' - insert before pi[1], item '15' */
2068 -2, /* item '2' - insert before pi[2], item '11' */
2069 1, /* item '33' - insert after pi[1], item '15' */
2070 -4 /* item '21' - insert before pi[4], item '33' */
2073 win = elm_win_util_standard_add("genlist-tree-insert-relative", "Genlist Tree, Insert Relative");
2074 elm_win_autodel_set(win, EINA_TRUE);
2076 bx = elm_box_add(win);
2077 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2078 elm_win_resize_object_add(win, bx);
2079 evas_object_show(bx);
2081 gl = elm_genlist_add(win);
2082 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2083 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2084 evas_object_show(gl);
2086 itc1 = elm_genlist_item_class_new();
2088 itc4.item_style = "default";
2089 itc4.func.text_get = gl4_text_get;
2090 itc4.func.content_get = NULL;
2091 itc4.func.state_get = NULL;
2092 itc4.func.del = NULL;
2094 /* mixed order to test insert sorted */
2096 // BUG1: should be able to insert before=NULL, prepend
2097 // BUG2: should be able to insert after=NULL, append
2099 pi[0] = elm_genlist_item_append
2100 (gl, &itc4, (void *)idx[0]/* item data */,
2102 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2104 for (i = 1; i < 3; i++)
2106 if (relative[i] < 0)
2107 pi[i] = elm_genlist_item_insert_before
2108 (gl, &itc4, (void *)idx[i]/* item data */,
2109 NULL/* parent */, pi[-relative[i]],
2110 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2112 pi[i] = elm_genlist_item_insert_after
2113 (gl, &itc4, (void *)idx[i]/* item data */,
2114 NULL/* parent */, pi[relative[i]],
2115 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2118 for (i = 0; i < 3; i++)
2120 Elm_Object_Item *sub_glit[6];
2123 base = 1000 * (int)(long) elm_object_item_data_get(pi[i]);
2125 sub_glit[0] = elm_genlist_item_append
2126 (gl, &itc4, (void *)(long) (idx[0] + base)/* item data */, pi[i]/* parent */,
2127 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2129 for (j = 1; j < 6; j++) {
2130 if (relative[j] < 0)
2131 sub_glit[j] = elm_genlist_item_insert_before
2132 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
2133 pi[i]/* parent */, sub_glit[-relative[j]],
2134 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2136 sub_glit[j] = elm_genlist_item_insert_after
2137 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
2138 pi[i]/* parent */, sub_glit[relative[j]],
2139 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2143 for (i = 3; i < 6; i++)
2145 if (relative[i] < 0)
2146 pi[i] = elm_genlist_item_insert_before
2147 (gl, &itc4, (void *)(long) idx[i]/* item data */,
2148 NULL/* parent */, pi[-relative[i]],
2149 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2151 pi[i] = elm_genlist_item_insert_after
2152 (gl, &itc4, (void *)(long) idx[i]/* item data */,
2153 NULL/* parent */, pi[relative[i]],
2154 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2157 for (i = 3; i < 6; i++)
2159 Elm_Object_Item *sub_glit[6];
2162 base = 1000 * (int)(long) elm_object_item_data_get(pi[i]);
2164 sub_glit[0] = elm_genlist_item_append
2165 (gl, &itc4, (void *)(long) (idx[0] + base)/* item data */, pi[i]/* parent */,
2166 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2168 for (j = 1; j < 6; j++) {
2169 if (relative[j] < 0)
2170 sub_glit[j] = elm_genlist_item_insert_before
2171 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
2172 pi[i]/* parent */, sub_glit[-relative[j]],
2173 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2175 sub_glit[j] = elm_genlist_item_insert_after
2176 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
2177 pi[i]/* parent */, sub_glit[relative[j]],
2178 ELM_GENLIST_ITEM_SUBITEMS, NULL/* func */, NULL/* func data */);
2182 elm_box_pack_end(bx, gl);
2183 evas_object_show(bx);
2185 bx2 = elm_box_add(win);
2186 elm_box_horizontal_set(bx2, EINA_TRUE);
2187 elm_box_homogeneous_set(bx2, EINA_TRUE);
2188 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
2189 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
2191 bt = elm_button_add(win);
2192 elm_object_text_set(bt, "+ before");
2193 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before_rel, gl);
2194 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
2195 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
2196 elm_box_pack_end(bx2, bt);
2197 evas_object_show(bt);
2199 bt = elm_button_add(win);
2200 elm_object_text_set(bt, "+ after");
2201 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after_rel, gl);
2202 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
2203 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
2204 elm_box_pack_end(bx2, bt);
2205 evas_object_show(bt);
2207 elm_box_pack_end(bx, bx2);
2208 evas_object_show(bx2);
2210 /* item_class_ref is needed for itc1. some items can be added in callbacks */
2211 elm_genlist_item_class_ref(itc1);
2212 elm_genlist_item_class_free(itc1);
2214 evas_object_resize(win, 320, 320);
2215 evas_object_show(win);
2218 static void _edit_icon_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2220 Elm_Object_Item *item = (Elm_Object_Item *)data;
2221 elm_object_item_del(item);
2224 char *gl15_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
2226 const Testitem *tit = data;
2228 snprintf(buf, sizeof(buf), "Item #%i", tit->mode);
2232 Evas_Object *gl15_content_get(void *data, Evas_Object *obj, const char *part)
2234 Testitem *tit = data;
2236 Evas_Object *ic = elm_icon_add(obj);
2238 // "edit_default" EDC layout is like below. each part is swallow part.
2239 // the existing item is swllowed to elm.swallow.edit.content part.
2240 // ----------------------------------------------------------------
2241 // | elm.edit.icon.1 | elm.swallow.edit.content | elm.edit.icon,2 |
2242 // ----------------------------------------------------------------
2244 if (!strcmp(part, "elm.swallow.end"))
2246 snprintf(buf, sizeof(buf), "%s/images/bubble.png", PACKAGE_DATA_DIR);
2247 elm_icon_file_set(ic, buf, NULL);
2248 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
2251 else if (!strcmp(part, "elm.edit.icon.1"))
2254 ck = elm_check_add(obj);
2255 elm_check_state_pointer_set(ck, &tit->checked);
2256 evas_object_propagate_events_set(ck, EINA_FALSE);
2257 evas_object_show(ck);
2260 else if (!strcmp(part, "elm.edit.icon.2"))
2262 Evas_Object *ic = elm_icon_add(obj);
2263 snprintf(buf, sizeof(buf), "%s/images/icon_06.png", PACKAGE_DATA_DIR);
2264 elm_icon_file_set(ic, buf, NULL);
2265 evas_object_propagate_events_set(ic, EINA_FALSE);
2266 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
2267 evas_object_smart_callback_add(ic, "clicked", _edit_icon_clicked_cb, (void *)tit->item);
2274 gl15_sel(void *data, Evas_Object *obj, void *event_info __UNUSED__)
2276 Testitem *tit = data;
2277 if (elm_genlist_edit_mode_get(obj))
2279 if (!tit->checked) tit->checked = EINA_TRUE;
2280 else tit->checked = EINA_FALSE;
2282 elm_genlist_item_update(tit->item);
2286 gl15_edit_mode(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2288 elm_genlist_edit_mode_set(data, EINA_TRUE);
2289 elm_genlist_always_select_mode_set(data, EINA_TRUE);
2293 gl15_normal_mode(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2295 elm_genlist_edit_mode_set(data, EINA_FALSE);
2296 elm_genlist_always_select_mode_set(data, EINA_FALSE);
2300 test_genlist15(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2302 Evas_Object *win, *bg, *bx, *bx2, *bt, *gl;
2304 static Testitem tit[100];
2306 win = elm_win_add(NULL, "genlist15", ELM_WIN_BASIC);
2307 elm_win_title_set(win, "Genlist Edit Mode");
2308 elm_win_autodel_set(win, EINA_TRUE);
2310 bg = elm_bg_add(win);
2311 elm_win_resize_object_add(win, bg);
2312 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2313 evas_object_show(bg);
2315 bx = elm_box_add(win);
2316 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2317 elm_win_resize_object_add(win, bx);
2318 evas_object_show(bx);
2320 gl = elm_genlist_add(win);
2321 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2322 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2323 evas_object_show(gl);
2325 itc15.item_style = "default";
2326 itc15.func.text_get = gl15_text_get;
2327 itc15.func.content_get = gl15_content_get;
2328 itc15.func.state_get = gl_state_get;
2329 itc15.func.del = gl_del;
2330 itc15.edit_item_style = "edit";
2332 for (i = 0; i < 100; i++)
2335 tit[i].item = elm_genlist_item_append(gl, &itc15,
2336 &(tit[i])/* item data */,
2338 ELM_GENLIST_ITEM_NONE/* flags */,
2340 &(tit[i])/* func data */);
2342 elm_box_pack_end(bx, gl);
2343 evas_object_show(bx);
2345 bx2 = elm_box_add(win);
2346 elm_box_horizontal_set(bx2, EINA_TRUE);
2347 elm_box_homogeneous_set(bx2, EINA_TRUE);
2348 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
2349 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
2351 bt = elm_button_add(win);
2352 elm_object_text_set(bt, "Edit mode");
2353 evas_object_smart_callback_add(bt, "clicked", gl15_edit_mode, gl);
2354 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
2355 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
2356 elm_box_pack_end(bx2, bt);
2357 evas_object_show(bt);
2359 bt = elm_button_add(win);
2360 elm_object_text_set(bt, "Normal mode");
2361 evas_object_smart_callback_add(bt, "clicked", gl15_normal_mode,gl);
2362 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
2363 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
2364 elm_box_pack_end(bx2, bt);
2365 evas_object_show(bt);
2367 elm_box_pack_end(bx, bx2);
2368 evas_object_show(bx2);
2370 evas_object_resize(win, 520, 520);
2371 evas_object_show(win);