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_Genlist_Item *item;
23 static Elm_Genlist_Item_Class itc1;
24 char *gl_label_get(const void *data, Evas_Object *obj, const char *part)
27 snprintf(buf, sizeof(buf), "Item # %i", (int)data);
31 Evas_Object *gl_icon_get(const void *data, Evas_Object *obj, const char *part)
34 Evas_Object *ic = elm_icon_add(obj);
35 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
36 elm_icon_file_set(ic, buf, NULL);
37 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
40 Eina_Bool gl_state_get(const void *data, Evas_Object *obj, const char *part)
44 void gl_del(const void *data, Evas_Object *obj)
49 gl_sel(void *data, Evas_Object *obj, void *event_info)
51 printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n", data, obj, event_info);
55 _move(void *data, Evas *evas, Evas_Object *obj, void *event_info)
57 Evas_Object *gl = data;
58 Evas_Event_Mouse_Move *ev = event_info;
60 Elm_Genlist_Item *gli;
61 gli = elm_genlist_at_xy_item_get(gl, ev->cur.canvas.x, ev->cur.canvas.y, &where);
63 printf("over %p, where %i\n", elm_genlist_item_data_get(gli), where);
65 printf("over none, where %i\n", where);
69 _bt50_cb(void *data, Evas_Object *obj, void *event_info)
71 elm_genlist_item_bring_in(data);
75 _bt1500_cb(void *data, Evas_Object *obj, void *event_info)
77 elm_genlist_item_middle_bring_in(data);
81 _gl_selected(void *data, Evas_Object *obj, void *event_info)
83 printf("selected: %p\n", event_info);
87 _gl_clicked(void *data, Evas_Object *obj, void *event_info)
89 printf("clicked: %p\n", event_info);
93 _gl_longpress(void *data, Evas_Object *obj, void *event_info)
95 printf("longpress %p\n", event_info);
99 test_genlist(void *data, Evas_Object *obj, void *event_info)
101 Evas_Object *win, *bg, *gl, *bt_50, *bt_1500, *bx;
103 Elm_Genlist_Item *gli;
106 win = elm_win_add(NULL, "genlist", ELM_WIN_BASIC);
107 elm_win_title_set(win, "Genlist");
108 elm_win_autodel_set(win, 1);
110 bg = elm_bg_add(win);
111 elm_win_resize_object_add(win, bg);
112 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
113 evas_object_show(bg);
115 bx = elm_box_add(win);
116 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
117 elm_win_resize_object_add(win, bx);
118 evas_object_show(bx);
120 gl = elm_genlist_add(win);
121 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
122 evas_object_smart_callback_add(gl, "clicked", _gl_clicked, NULL);
123 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
124 // FIXME: This causes genlist to resize the horiz axis very slowly :(
125 // Reenable this and resize the window horizontally, then try to resize it back
126 //elm_genlist_horizontal_mode_set(gl, ELM_LIST_LIMIT);
127 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
128 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
129 elm_box_pack_end(bx, gl);
130 evas_object_show(gl);
132 over = evas_object_rectangle_add(evas_object_evas_get(win));
133 evas_object_color_set(over, 0, 0, 0, 0);
134 evas_object_event_callback_add(over, EVAS_CALLBACK_MOUSE_MOVE, _move, gl);
135 evas_object_repeat_events_set(over, 1);
136 evas_object_show(over);
137 evas_object_size_hint_weight_set(over, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
138 elm_win_resize_object_add(win, over);
140 itc1.item_style = "default";
141 itc1.func.label_get = gl_label_get;
142 itc1.func.icon_get = gl_icon_get;
143 itc1.func.state_get = gl_state_get;
144 itc1.func.del = gl_del;
146 bt_50 = elm_button_add(win);
147 elm_button_label_set(bt_50, "Go to 50");
148 evas_object_show(bt_50);
149 elm_box_pack_end(bx, bt_50);
151 bt_1500 = elm_button_add(win);
152 elm_button_label_set(bt_1500, "Go to 1500");
153 evas_object_show(bt_1500);
154 elm_box_pack_end(bx, bt_1500);
156 for (i = 0; i < 2000; i++)
158 gli = elm_genlist_item_append(gl, &itc1,
159 (void *)i/* item data */,
161 ELM_GENLIST_ITEM_NONE,
163 (void *)(i * 10)/* func data */);
165 evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
167 evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
169 evas_object_resize(win, 480, 800);
170 evas_object_show(win);
176 my_gl_clear(void *data, Evas_Object *obj, void *event_info)
178 Evas_Object *gl = data;
179 elm_genlist_clear(gl);
183 my_gl_add(void *data, Evas_Object *obj, void *event_info)
185 Evas_Object *gl = data;
186 Elm_Genlist_Item *gli;
189 itc1.item_style = "default";
190 itc1.func.label_get = gl_label_get;
191 itc1.func.icon_get = gl_icon_get;
192 itc1.func.state_get = gl_state_get;
193 itc1.func.del = gl_del;
195 gli = elm_genlist_item_append(gl, &itc1,
196 (void *)i/* item data */,
198 ELM_GENLIST_ITEM_NONE,
200 (void *)(i * 10)/* func data */);
205 my_gl_insert_before(void *data, Evas_Object *obj, void *event_info)
207 Evas_Object *gl = data;
208 Elm_Genlist_Item *gli;
210 Elm_Genlist_Item *gli_selected;
212 itc1.item_style = "default";
213 itc1.func.label_get = gl_label_get;
214 itc1.func.icon_get = gl_icon_get;
215 itc1.func.state_get = gl_state_get;
216 itc1.func.del = gl_del;
218 gli_selected = elm_genlist_selected_item_get(gl);
221 printf("no item selected\n");
225 gli = elm_genlist_item_insert_before(gl, &itc1,
226 (void *)i/* item data */,
227 gli_selected /* item before */,
228 ELM_GENLIST_ITEM_NONE,
230 (void *)(i * 10)/* func data */);
235 my_gl_insert_after(void *data, Evas_Object *obj, void *event_info)
237 Evas_Object *gl = data;
238 Elm_Genlist_Item *gli;
240 Elm_Genlist_Item *gli_selected;
242 itc1.item_style = "default";
243 itc1.func.label_get = gl_label_get;
244 itc1.func.icon_get = gl_icon_get;
245 itc1.func.state_get = gl_state_get;
246 itc1.func.del = gl_del;
248 gli_selected = elm_genlist_selected_item_get(gl);
251 printf("no item selected\n");
255 gli = elm_genlist_item_insert_after(gl, &itc1,
256 (void *)i/* item data */,
257 gli_selected /* item after */,
258 ELM_GENLIST_ITEM_NONE,
260 (void *)(i * 10)/* func data */);
265 my_gl_del(void *data, Evas_Object *obj, void *event_info)
267 Evas_Object *gl = data;
268 Elm_Genlist_Item *gli = elm_genlist_selected_item_get(gl);
271 printf("no item selected\n");
274 elm_genlist_item_del(gli);
278 my_gl_disable(void *data, Evas_Object *obj, void *event_info)
280 Evas_Object *gl = data;
281 Elm_Genlist_Item *gli = elm_genlist_selected_item_get(gl);
284 printf("no item selected\n");
287 elm_genlist_item_disabled_set(gli, 1);
288 elm_genlist_item_selected_set(gli, 0);
289 elm_genlist_item_update(gli);
293 my_gl_update_all(void *data, Evas_Object *obj, void *event_info)
295 Evas_Object *gl = data;
297 Elm_Genlist_Item *it = elm_genlist_first_item_get(gl);
300 elm_genlist_item_update(it);
303 it = elm_genlist_item_next_get(it);
308 my_gl_first(void *data, Evas_Object *obj, void *event_info)
310 Evas_Object *gl = data;
311 Elm_Genlist_Item *gli = elm_genlist_first_item_get(gl);
313 elm_genlist_item_show(gli);
314 elm_genlist_item_selected_set(gli, 1);
318 my_gl_last(void *data, Evas_Object *obj, void *event_info)
320 Evas_Object *gl = data;
321 Elm_Genlist_Item *gli = elm_genlist_last_item_get(gl);
323 elm_genlist_item_show(gli);
324 elm_genlist_item_selected_set(gli, 1);
328 my_gl_flush_delay(void *data)
331 return ECORE_CALLBACK_CANCEL;
335 my_gl_flush(void *data, Evas_Object *obj, void *event_info)
337 ecore_timer_add(1.2, my_gl_flush_delay, NULL);
341 test_genlist2(void *data, Evas_Object *obj, void *event_info)
343 Evas_Object *win, *bg, *gl, *bx, *bx2, *bx3, *bt;
344 Elm_Genlist_Item *gli[10];
347 win = elm_win_add(NULL, "genlist-2", ELM_WIN_BASIC);
348 elm_win_title_set(win, "Genlist 2");
349 elm_win_autodel_set(win, 1);
351 bg = elm_bg_add(win);
352 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", PACKAGE_DATA_DIR);
353 elm_bg_file_set(bg, buf, NULL);
354 elm_win_resize_object_add(win, bg);
355 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
356 evas_object_show(bg);
358 bx = elm_box_add(win);
359 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
360 elm_win_resize_object_add(win, bx);
361 evas_object_show(bx);
363 gl = elm_genlist_add(win);
364 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
365 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
366 evas_object_show(gl);
368 itc1.item_style = "default";
369 itc1.func.label_get = gl_label_get;
370 itc1.func.icon_get = gl_icon_get;
371 itc1.func.state_get = gl_state_get;
372 itc1.func.del = gl_del;
374 gli[0] = elm_genlist_item_append(gl, &itc1,
375 (void *)1001/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
376 (void *)1001/* func data */);
377 gli[1] = elm_genlist_item_append(gl, &itc1,
378 (void *)1002/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
379 (void *)1002/* func data */);
380 gli[2] = elm_genlist_item_append(gl, &itc1,
381 (void *)1003/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
382 (void *)1003/* func data */);
383 gli[3] = elm_genlist_item_prepend(gl, &itc1,
384 (void *)1004/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
385 (void *)1004/* func data */);
386 gli[4] = elm_genlist_item_prepend(gl, &itc1,
387 (void *)1005/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
388 (void *)1005/* func data */);
389 gli[5] = elm_genlist_item_insert_before(gl, &itc1,
390 (void *)1006/* item data */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
391 (void *)1006/* func data */);
392 gli[6] = elm_genlist_item_insert_after(gl, &itc1,
393 (void *)1007/* item data */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
394 (void *)1007/* func data */);
396 elm_box_pack_end(bx, gl);
398 bx2 = elm_box_add(win);
399 elm_box_horizontal_set(bx2, 1);
400 elm_box_homogenous_set(bx2, 1);
401 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
402 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
404 bt = elm_button_add(win);
405 elm_button_label_set(bt, "/\\");
406 evas_object_smart_callback_add(bt, "clicked", my_gl_first, gl);
407 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
408 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
409 elm_box_pack_end(bx2, bt);
410 evas_object_show(bt);
412 bt = elm_button_add(win);
413 elm_button_label_set(bt, "\\/");
414 evas_object_smart_callback_add(bt, "clicked", my_gl_last, gl);
415 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
416 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
417 elm_box_pack_end(bx2, bt);
418 evas_object_show(bt);
420 bt = elm_button_add(win);
421 elm_button_label_set(bt, "#");
422 evas_object_smart_callback_add(bt, "clicked", my_gl_disable, gl);
423 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
424 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
425 elm_box_pack_end(bx2, bt);
426 evas_object_show(bt);
428 bt = elm_button_add(win);
429 elm_button_label_set(bt, "U");
430 evas_object_smart_callback_add(bt, "clicked", my_gl_update_all, gl);
431 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
432 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
433 elm_box_pack_end(bx2, bt);
434 evas_object_show(bt);
436 elm_box_pack_end(bx, bx2);
437 evas_object_show(bx2);
439 bx2 = elm_box_add(win);
440 elm_box_horizontal_set(bx2, 1);
441 elm_box_homogenous_set(bx2, 1);
442 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
443 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
445 bt = elm_button_add(win);
446 elm_button_label_set(bt, "X");
447 evas_object_smart_callback_add(bt, "clicked", my_gl_clear, gl);
448 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
449 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
450 elm_box_pack_end(bx2, bt);
451 evas_object_show(bt);
453 bt = elm_button_add(win);
454 elm_button_label_set(bt, "+");
455 evas_object_smart_callback_add(bt, "clicked", my_gl_add, gl);
456 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
457 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
458 elm_box_pack_end(bx2, bt);
459 evas_object_show(bt);
461 bt = elm_button_add(win);
462 elm_button_label_set(bt, "-");
463 evas_object_smart_callback_add(bt, "clicked", my_gl_del, gl);
464 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
465 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
466 elm_box_pack_end(bx2, bt);
467 evas_object_show(bt);
469 elm_box_pack_end(bx, bx2);
470 evas_object_show(bx2);
472 bx3 = elm_box_add(win);
473 elm_box_horizontal_set(bx3, 1);
474 elm_box_homogenous_set(bx3, 1);
475 evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
476 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
478 bt = elm_button_add(win);
479 elm_button_label_set(bt, "+ before");
480 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before, gl);
481 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
482 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
483 elm_box_pack_end(bx3, bt);
484 evas_object_show(bt);
486 bt = elm_button_add(win);
487 elm_button_label_set(bt, "+ after");
488 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after, gl);
489 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
490 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
491 elm_box_pack_end(bx3, bt);
492 evas_object_show(bt);
494 bt = elm_button_add(win);
495 elm_button_label_set(bt, "Flush");
496 evas_object_smart_callback_add(bt, "clicked", my_gl_flush, gl);
497 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
498 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
499 elm_box_pack_end(bx3, bt);
500 evas_object_show(bt);
502 elm_box_pack_end(bx, bx3);
503 evas_object_show(bx3);
506 evas_object_resize(win, 320, 320);
507 evas_object_show(win);
512 static Elm_Genlist_Item_Class itc2;
513 char *gl2_label_get(const void *data, Evas_Object *obj, const char *part)
515 const Testitem *tit = data;
517 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
520 Evas_Object *gl2_icon_get(const void *data, Evas_Object *obj, const char *part)
522 const Testitem *tit = data;
524 Evas_Object *ic = elm_icon_add(obj);
525 if (!strcmp(part, "elm.swallow.icon"))
527 if (!(tit->mode & 0x3))
528 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
529 else if ((tit->mode & 0x3) == 1)
530 snprintf(buf, sizeof(buf), "%s/images/logo.png", PACKAGE_DATA_DIR);
531 else if ((tit->mode & 0x3) == 2)
532 snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", PACKAGE_DATA_DIR);
533 else if ((tit->mode & 0x3) == 3)
534 snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", PACKAGE_DATA_DIR);
535 elm_icon_file_set(ic, buf, NULL);
537 else if (!strcmp(part, "elm.swallow.end"))
539 if (!(tit->mode & 0x3))
540 snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", PACKAGE_DATA_DIR);
541 else if ((tit->mode & 0x3) == 1)
542 snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", PACKAGE_DATA_DIR);
543 else if ((tit->mode & 0x3) == 2)
544 snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", PACKAGE_DATA_DIR);
545 else if ((tit->mode & 0x3) == 3)
546 snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", PACKAGE_DATA_DIR);
547 elm_icon_file_set(ic, buf, NULL);
549 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
552 Eina_Bool gl2_state_get(const void *data, Evas_Object *obj, const char *part)
556 void gl2_del(const void *data, Evas_Object *obj)
561 my_gl_update(void *data, Evas_Object *obj, void *event_info)
563 Testitem *tit = data;
565 elm_genlist_item_update(tit->item);
569 test_genlist3(void *data, Evas_Object *obj, void *event_info)
571 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
572 static Testitem tit[3];
574 win = elm_win_add(NULL, "genlist-3", ELM_WIN_BASIC);
575 elm_win_title_set(win, "Genlist 3");
576 elm_win_autodel_set(win, 1);
578 bg = elm_bg_add(win);
579 elm_win_resize_object_add(win, bg);
580 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
581 evas_object_show(bg);
583 bx = elm_box_add(win);
584 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
585 elm_win_resize_object_add(win, bx);
586 evas_object_show(bx);
588 gl = elm_genlist_add(win);
589 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
590 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
591 evas_object_show(gl);
593 itc2.item_style = "default";
594 itc2.func.label_get = gl2_label_get;
595 itc2.func.icon_get = gl2_icon_get;
596 itc2.func.state_get = gl2_state_get;
597 itc2.func.del = gl2_del;
600 tit[0].item = elm_genlist_item_append(gl, &itc2,
601 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
602 NULL/* func data */);
604 tit[1].item = elm_genlist_item_append(gl, &itc2,
605 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
606 NULL/* func data */);
608 tit[2].item = elm_genlist_item_append(gl, &itc2,
609 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
610 NULL/* func data */);
612 elm_box_pack_end(bx, gl);
613 evas_object_show(bx);
615 bx2 = elm_box_add(win);
616 elm_box_horizontal_set(bx2, 1);
617 elm_box_homogenous_set(bx2, 1);
618 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
619 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
621 bt = elm_button_add(win);
622 elm_button_label_set(bt, "[1]");
623 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
624 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
625 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
626 elm_box_pack_end(bx2, bt);
627 evas_object_show(bt);
629 bt = elm_button_add(win);
630 elm_button_label_set(bt, "[2]");
631 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
632 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
633 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
634 elm_box_pack_end(bx2, bt);
635 evas_object_show(bt);
637 bt = elm_button_add(win);
638 elm_button_label_set(bt, "[3]");
639 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
640 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
641 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
642 elm_box_pack_end(bx2, bt);
643 evas_object_show(bt);
645 elm_box_pack_end(bx, bx2);
646 evas_object_show(bx2);
648 evas_object_resize(win, 320, 320);
649 evas_object_show(win);
655 my_gl_item_check_changed(void *data, Evas_Object *obj, void *event_info)
657 Testitem *tit = data;
658 tit->onoff = elm_check_state_get(obj);
659 printf("item %p onoff = %i\n", tit, tit->onoff);
662 static Elm_Genlist_Item_Class itc3;
663 char *gl3_label_get(const void *data, Evas_Object *obj, const char *part)
665 const Testitem *tit = data;
667 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
670 Evas_Object *gl3_icon_get(const void *data, Evas_Object *obj, const char *part)
672 const Testitem *tit = data;
674 if (!strcmp(part, "elm.swallow.icon"))
678 lb = elm_label_add(obj);
679 elm_label_line_wrap_set(lb, 1);
680 elm_label_wrap_width_set(lb, 201);
681 elm_label_label_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");
682 evas_object_show(lb);
685 Evas_Object *bx = elm_box_add(obj);
687 ic = elm_icon_add(obj);
688 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
689 elm_icon_file_set(ic, buf, NULL);
690 elm_icon_scale_set(ic, 0, 0);
691 evas_object_show(ic);
692 elm_box_pack_end(bx, ic);
693 ic = elm_icon_add(obj);
694 elm_icon_file_set(ic, buf, NULL);
695 elm_icon_scale_set(ic, 0, 0);
696 evas_object_show(ic);
697 elm_box_pack_end(bx, ic);
698 elm_box_horizontal_set(bx, 1);
699 evas_object_show(bx);
702 else if (!strcmp(part, "elm.swallow.end"))
705 ck = elm_check_add(obj);
706 evas_object_propagate_events_set(ck, 0);
707 elm_check_state_set(ck, tit->onoff);
708 evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed, data);
709 evas_object_show(ck);
714 Eina_Bool gl3_state_get(const void *data, Evas_Object *obj, const char *part)
718 void gl3_del(const void *data, Evas_Object *obj)
723 test_genlist4(void *data, Evas_Object *obj, void *event_info)
725 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
726 static Testitem tit[3];
728 win = elm_win_add(NULL, "genlist-4", ELM_WIN_BASIC);
729 elm_win_title_set(win, "Genlist 4");
730 elm_win_autodel_set(win, 1);
732 bg = elm_bg_add(win);
733 elm_win_resize_object_add(win, bg);
734 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
735 evas_object_show(bg);
737 bx = elm_box_add(win);
738 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
739 elm_win_resize_object_add(win, bx);
740 evas_object_show(bx);
742 gl = elm_genlist_add(win);
743 elm_genlist_multi_select_set(gl, 1);
744 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
745 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
746 evas_object_show(gl);
748 itc3.item_style = "default";
749 itc3.func.label_get = gl3_label_get;
750 itc3.func.icon_get = gl3_icon_get;
751 itc3.func.state_get = gl3_state_get;
752 itc3.func.del = gl3_del;
755 tit[0].item = elm_genlist_item_append(gl, &itc3,
756 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
757 NULL/* func data */);
759 tit[1].item = elm_genlist_item_append(gl, &itc3,
760 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
761 NULL/* func data */);
763 tit[2].item = elm_genlist_item_append(gl, &itc3,
764 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
765 NULL/* func data */);
767 elm_box_pack_end(bx, gl);
768 evas_object_show(bx);
770 bx2 = elm_box_add(win);
771 elm_box_horizontal_set(bx2, 1);
772 elm_box_homogenous_set(bx2, 1);
773 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
774 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
776 bt = elm_button_add(win);
777 elm_button_label_set(bt, "[1]");
778 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
779 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
780 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
781 elm_box_pack_end(bx2, bt);
782 evas_object_show(bt);
784 bt = elm_button_add(win);
785 elm_button_label_set(bt, "[2]");
786 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
787 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
788 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
789 elm_box_pack_end(bx2, bt);
790 evas_object_show(bt);
792 bt = elm_button_add(win);
793 elm_button_label_set(bt, "[3]");
794 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
795 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
796 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
797 elm_box_pack_end(bx2, bt);
798 evas_object_show(bt);
800 elm_box_pack_end(bx, bx2);
801 evas_object_show(bx2);
803 evas_object_resize(win, 320, 320);
804 evas_object_show(win);
810 my_gl_item_check_changed2(void *data, Evas_Object *obj, void *event_info)
812 Testitem *tit = data;
813 tit->onoff = elm_check_state_get(obj);
814 printf("item %p onoff = %i\n", tit, tit->onoff);
817 static Elm_Genlist_Item_Class itc5;
818 char *gl5_label_get(const void *data, Evas_Object *obj, const char *part)
820 const Testitem *tit = data;
822 if (!strcmp(part, "elm.text"))
824 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
826 else if (!strcmp(part, "elm.text.sub"))
828 snprintf(buf, sizeof(buf), "%i bottles on the wall", tit->mode);
832 Evas_Object *gl5_icon_get(const void *data, Evas_Object *obj, const char *part)
834 const Testitem *tit = data;
836 if (!strcmp(part, "elm.swallow.icon"))
838 Evas_Object *bx = elm_box_add(obj);
840 elm_box_horizontal_set(bx, 1);
841 ic = elm_icon_add(obj);
842 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
843 elm_icon_file_set(ic, buf, NULL);
844 elm_icon_scale_set(ic, 0, 0);
845 evas_object_show(ic);
846 elm_box_pack_end(bx, ic);
847 ic = elm_icon_add(obj);
848 elm_icon_file_set(ic, buf, NULL);
849 elm_icon_scale_set(ic, 0, 0);
850 evas_object_show(ic);
851 elm_box_pack_end(bx, ic);
852 elm_box_horizontal_set(bx, 1);
853 evas_object_show(bx);
856 else if (!strcmp(part, "elm.swallow.end"))
859 ck = elm_check_add(obj);
860 evas_object_propagate_events_set(ck, 0);
861 elm_check_state_set(ck, tit->onoff);
862 evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed2, data);
863 evas_object_show(ck);
868 Eina_Bool gl5_state_get(const void *data, Evas_Object *obj, const char *part)
872 void gl5_del(const void *data, Evas_Object *obj)
877 item_drag_up(void *data, Evas_Object *obj, void *event_info)
883 item_drag_down(void *data, Evas_Object *obj, void *event_info)
885 printf("drag down\n");
889 item_drag_left(void *data, Evas_Object *obj, void *event_info)
891 printf("drag left\n");
895 item_drag_right(void *data, Evas_Object *obj, void *event_info)
897 printf("drag right\n");
901 scroll_top(void *data, Evas_Object *obj, void *event_info)
903 printf("Top edge!\n");
907 scroll_bottom(void *data, Evas_Object *obj, void *event_info)
909 printf("Bottom edge!\n");
913 scroll_left(void *data, Evas_Object *obj, void *event_info)
915 printf("Left edge!\n");
919 scroll_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
921 printf("Right edge!\n");
925 item_drag(void *data, Evas_Object *obj, void *event_info)
931 item_drag_stop(void *data, Evas_Object *obj, void *event_info)
933 printf("drag stop\n");
937 item_longpress(void *data, Evas_Object *obj, void *event_info)
939 printf("longpress\n");
943 test_genlist5(void *data, Evas_Object *obj, void *event_info)
945 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
946 static Testitem tit[5];
948 win = elm_win_add(NULL, "genlist-5", ELM_WIN_BASIC);
949 elm_win_title_set(win, "Genlist 5");
950 elm_win_autodel_set(win, 1);
952 bg = elm_bg_add(win);
953 elm_win_resize_object_add(win, bg);
954 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
955 evas_object_show(bg);
957 bx = elm_box_add(win);
958 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
959 elm_win_resize_object_add(win, bx);
960 evas_object_show(bx);
962 gl = elm_genlist_add(win);
963 elm_genlist_always_select_mode_set(gl, 1);
964 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
965 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
966 evas_object_show(gl);
967 itc5.item_style = "double_label";
968 itc5.func.label_get = gl5_label_get;
969 itc5.func.icon_get = gl5_icon_get;
970 itc5.func.state_get = gl5_state_get;
971 itc5.func.del = gl5_del;
974 tit[0].item = elm_genlist_item_append(gl, &itc5,
975 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
976 NULL/* func data */);
978 tit[1].item = elm_genlist_item_append(gl, &itc5,
979 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
980 NULL/* func data */);
982 tit[2].item = elm_genlist_item_append(gl, &itc5,
983 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
984 NULL/* func data */);
986 tit[3].item = elm_genlist_item_append(gl, &itc5,
987 &(tit[3])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
988 NULL/* func data */);
991 tit[4].item = elm_genlist_item_append(gl, &itc5,
992 &(tit[4])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
993 NULL/* func data */);
994 elm_box_pack_end(bx, gl);
995 evas_object_show(bx);
997 evas_object_smart_callback_add(gl, "drag,start,up", item_drag_up, NULL);
998 evas_object_smart_callback_add(gl, "drag,start,down", item_drag_down, NULL);
999 evas_object_smart_callback_add(gl, "drag,start,left", item_drag_left, NULL);
1000 evas_object_smart_callback_add(gl, "drag,start,right", item_drag_right, NULL);
1001 evas_object_smart_callback_add(gl, "scroll,edge,top", scroll_top, NULL);
1002 evas_object_smart_callback_add(gl, "scroll,edge,bottom", scroll_bottom, NULL);
1003 evas_object_smart_callback_add(gl, "scroll,edge,left", scroll_left, NULL);
1004 evas_object_smart_callback_add(gl, "scroll,edge,right", scroll_right, NULL);
1005 evas_object_smart_callback_add(gl, "drag", item_drag, NULL);
1006 evas_object_smart_callback_add(gl, "drag,stop", item_drag_stop, NULL);
1007 evas_object_smart_callback_add(gl, "longpressed", item_longpress, NULL);
1009 bx2 = elm_box_add(win);
1010 elm_box_horizontal_set(bx2, 1);
1011 elm_box_homogenous_set(bx2, 1);
1012 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1013 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1015 bt = elm_button_add(win);
1016 elm_button_label_set(bt, "[1]");
1017 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
1018 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1019 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1020 elm_box_pack_end(bx2, bt);
1021 evas_object_show(bt);
1023 bt = elm_button_add(win);
1024 elm_button_label_set(bt, "[2]");
1025 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
1026 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1027 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1028 elm_box_pack_end(bx2, bt);
1029 evas_object_show(bt);
1031 bt = elm_button_add(win);
1032 elm_button_label_set(bt, "[3]");
1033 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1034 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1035 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1036 elm_box_pack_end(bx2, bt);
1037 evas_object_show(bt);
1039 elm_box_pack_end(bx, bx2);
1040 evas_object_show(bx2);
1042 evas_object_resize(win, 320, 320);
1043 evas_object_show(win);
1048 static Elm_Genlist_Item_Class itc4;
1051 gl4_sel(void *data, Evas_Object *obj, void *event_info)
1055 gl4_exp(void *data, Evas_Object *obj, void *event_info)
1057 Elm_Genlist_Item *it = event_info;
1058 Evas_Object *gl = elm_genlist_item_genlist_get(it);
1059 int val = (int)elm_genlist_item_data_get(it);
1061 elm_genlist_item_append(gl, &itc4,
1062 (void *)(val + 1)/* item data */, it/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1063 NULL/* func data */);
1064 elm_genlist_item_append(gl, &itc4,
1065 (void *)(val + 2)/* item data */, it/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1066 NULL/* func data */);
1067 elm_genlist_item_append(gl, &itc4,
1068 (void *)(val + 3)/* item data */, it/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1069 NULL/* func data */);
1072 gl4_con(void *data, Evas_Object *obj, void *event_info)
1074 Elm_Genlist_Item *it = event_info;
1075 elm_genlist_item_subitems_clear(it);
1079 gl4_exp_req(void *data, Evas_Object *obj, void *event_info)
1081 Elm_Genlist_Item *it = event_info;
1082 elm_genlist_item_expanded_set(it, 1);
1085 gl4_con_req(void *data, Evas_Object *obj, void *event_info)
1087 Elm_Genlist_Item *it = event_info;
1088 elm_genlist_item_expanded_set(it, 0);
1091 char *gl4_label_get(const void *data, Evas_Object *obj, const char *part)
1094 snprintf(buf, sizeof(buf), "Item mode %i", (int)data);
1097 Evas_Object *gl4_icon_get(const void *data, Evas_Object *obj, const char *part)
1100 if (!strcmp(part, "elm.swallow.icon"))
1102 Evas_Object *ic = elm_icon_add(obj);
1103 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
1104 elm_icon_file_set(ic, buf, NULL);
1105 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
1106 evas_object_show(ic);
1109 else if (!strcmp(part, "elm.swallow.end"))
1112 ck = elm_check_add(obj);
1113 evas_object_show(ck);
1118 Eina_Bool gl4_state_get(const void *data, Evas_Object *obj, const char *part)
1122 void gl4_del(const void *data, Evas_Object *obj)
1127 test_genlist6(void *data, Evas_Object *obj, void *event_info)
1129 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
1131 win = elm_win_add(NULL, "genlist-tree", ELM_WIN_BASIC);
1132 elm_win_title_set(win, "Genlist Tree");
1133 elm_win_autodel_set(win, 1);
1135 bg = elm_bg_add(win);
1136 elm_win_resize_object_add(win, bg);
1137 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1138 evas_object_show(bg);
1140 bx = elm_box_add(win);
1141 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1142 elm_win_resize_object_add(win, bx);
1143 evas_object_show(bx);
1145 gl = elm_genlist_add(win);
1146 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1147 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1148 evas_object_show(gl);
1150 itc4.item_style = "default";
1151 itc4.func.label_get = gl4_label_get;
1152 itc4.func.icon_get = gl4_icon_get;
1153 itc4.func.state_get = gl4_state_get;
1154 itc4.func.del = gl4_del;
1156 elm_genlist_item_append(gl, &itc4,
1157 (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1158 NULL/* func data */);
1159 elm_genlist_item_append(gl, &itc4,
1160 (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1161 NULL/* func data */);
1162 elm_genlist_item_append(gl, &itc4,
1163 (void *)3/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1164 NULL/* func data */);
1166 evas_object_smart_callback_add(gl, "expand,request", gl4_exp_req, gl);
1167 evas_object_smart_callback_add(gl, "contract,request", gl4_con_req, gl);
1168 evas_object_smart_callback_add(gl, "expanded", gl4_exp, gl);
1169 evas_object_smart_callback_add(gl, "contracted", gl4_con, gl);
1171 elm_box_pack_end(bx, gl);
1172 evas_object_show(bx);
1174 bx2 = elm_box_add(win);
1175 elm_box_horizontal_set(bx2, 1);
1176 elm_box_homogenous_set(bx2, 1);
1177 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1178 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1180 bt = elm_button_add(win);
1181 elm_button_label_set(bt, "[1]");
1182 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
1183 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1184 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1185 elm_box_pack_end(bx2, bt);
1186 evas_object_show(bt);
1188 bt = elm_button_add(win);
1189 elm_button_label_set(bt, "[2]");
1190 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
1191 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1192 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1193 elm_box_pack_end(bx2, bt);
1194 evas_object_show(bt);
1196 bt = elm_button_add(win);
1197 elm_button_label_set(bt, "[3]");
1198 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1199 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1200 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1201 elm_box_pack_end(bx2, bt);
1202 evas_object_show(bt);
1204 elm_box_pack_end(bx, bx2);
1205 evas_object_show(bx2);
1207 evas_object_resize(win, 320, 320);
1208 evas_object_show(win);
1213 struct genlist7_data
1215 Evas_Object *win, *pager;
1218 static Elm_Genlist_Item_Class itc7;
1220 gl_sel7(void *data, Evas_Object *obj, void *event_info)
1222 if (!event_info) return;
1223 elm_genlist_item_item_class_update(event_info, &itc7);
1224 printf("sel item data [%p] on genlist obj [%p], item pointer [%p], new item style [%s] \n", data, obj, event_info, itc7.item_style);
1228 test_genlist7_back_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1230 struct genlist7_data *info = data;
1233 elm_pager_content_pop(info->pager);
1237 test_genlist7_swipe(void *data, Evas_Object *obj __UNUSED__, void *event_info)
1239 struct genlist7_data *info = data;
1240 Evas_Object *box, *entry, *button;
1241 char item_data[] = "Just a simple test";
1243 if ((!event_info) || (!data)) return;
1245 box = elm_box_add(info->win);
1246 elm_box_homogenous_set(box, 0);
1247 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1248 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
1249 evas_object_show(box);
1251 entry = elm_scrolled_entry_add(info->win);
1252 elm_scrolled_entry_editable_set(entry, EINA_FALSE);
1253 elm_scrolled_entry_entry_set(entry, item_data);
1254 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1255 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
1256 evas_object_show(entry);
1258 button = elm_button_add(info->win);
1259 elm_button_label_set(button, "back");
1260 evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
1261 evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
1262 evas_object_smart_callback_add(button, "clicked", test_genlist7_back_cb,
1264 evas_object_show(button);
1266 elm_box_pack_start(box, entry);
1267 elm_box_pack_end(box, button);
1269 elm_pager_content_push(info->pager, box);
1273 test_genlist7(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1275 Evas_Object *win, *bg, *gl, *pager;
1276 static struct genlist7_data info;
1277 static Testitem tit[3];
1279 win = elm_win_add(NULL, "genlist-7", ELM_WIN_BASIC);
1280 elm_win_title_set(win, "Genlist 7");
1281 elm_win_autodel_set(win, 1);
1284 bg = elm_bg_add(win);
1285 elm_win_resize_object_add(win, bg);
1286 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1287 evas_object_show(bg);
1289 pager = elm_pager_add(win);
1290 elm_win_resize_object_add(win, pager);
1291 evas_object_size_hint_weight_set(pager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1292 evas_object_size_hint_align_set(pager, EVAS_HINT_FILL, EVAS_HINT_FILL);
1293 evas_object_show(pager);
1296 gl = elm_genlist_add(win);
1297 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1298 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1299 evas_object_smart_callback_add(gl, "swipe", test_genlist7_swipe, &info);
1300 evas_object_show(gl);
1301 elm_pager_content_push(pager, gl);
1303 itc2.item_style = "default";
1304 itc2.func.label_get = gl2_label_get;
1305 itc2.func.icon_get = gl2_icon_get;
1306 itc2.func.state_get = gl2_state_get;
1307 itc2.func.del = gl2_del;
1309 itc7.item_style = "double_label";
1310 itc7.func.label_get = gl5_label_get;
1311 itc7.func.icon_get = gl5_icon_get;
1312 itc7.func.state_get = gl5_state_get;
1313 itc7.func.del = gl5_del;
1316 tit[0].item = elm_genlist_item_append(gl, &itc2,
1317 &(tit[0])/* item data */, NULL/* parent */,
1318 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1319 NULL/* func data */);
1321 tit[1].item = elm_genlist_item_append(gl, &itc2,
1322 &(tit[1])/* item data */, NULL/* parent */,
1323 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1324 NULL/* func data */);
1326 tit[2].item = elm_genlist_item_append(gl, &itc2,
1327 &(tit[2])/* item data */, NULL/* parent */,
1328 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1329 NULL/* func data */);
1331 evas_object_resize(win, 320, 320);
1332 evas_object_show(win);