1 #include <Elementary.h>
4 # include "elementary_config.h"
6 #ifndef ELM_LIB_QUICKLAUNCH
9 #include <Elementary_Cursor.h>
12 #include "elementary_config.h"
14 #ifndef ELM_LIB_QUICKLAUNCH
17 unsigned int state; /* What state we are testing */
18 void *box; /* Use this to get box content */
20 typedef struct _api_data api_data;
34 typedef enum _api_state api_state;
37 set_api_state(api_data *api)
39 const Eina_List *items = elm_box_children_get(api->box);
40 if(!eina_list_count(items))
43 Evas_Object *gl = eina_list_nth(items, 0); /* Genlist is the first item */
44 /* use elm_box_children_get() to get list of children */
46 {/* Put all api-changes under switch */
47 case HORIZONTAL_SET: /* 0 */
48 elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
51 case NO_SELECT_MODE_SET: /* 1 */
52 elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_NONE);
53 elm_genlist_mode_set(gl, ELM_LIST_SCROLL); /* Back to default */
56 case COMPRESS_MODE_SET: /* 2 */
57 elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_DEFAULT);
58 elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
61 case BOUNCE_SET: /* 3 */
62 elm_genlist_bounce_set(gl, EINA_FALSE, EINA_FALSE);
65 case HOMOGENEOUS_SET: /* 4 */
66 elm_genlist_bounce_set(gl, EINA_TRUE, EINA_TRUE); /* Back to default */
67 elm_genlist_homogeneous_set(gl, EINA_TRUE);
70 case SCROLLER_POLICY_SET: /* 5 */
71 elm_genlist_homogeneous_set(gl, EINA_FALSE); /* Back to default */
72 elm_genlist_scroller_policy_set(gl, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
75 case TOOLTIP_TEXT_SET: /* 6 */
77 elm_genlist_item_tooltip_text_set(elm_genlist_first_item_get(gl), "Tooltip text from API");
78 elm_genlist_item_bring_in(elm_genlist_first_item_get(gl),
79 ELM_GENLIST_ITEM_SCROLLTO_IN);
83 case ITEM_CURSOR_SET: /* 7 */
84 elm_genlist_item_cursor_set(elm_genlist_first_item_get(gl), ELM_CURSOR_HAND2);
93 _api_bt_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__)
94 { /* Will add here a SWITCH command containing code to modify test-object */
95 /* in accordance a->state value. */
99 printf("clicked event on API Button: api_state=<%d>\n", a->state);
102 sprintf(str, "Next API function (%u)", a->state);
103 elm_object_text_set(obj, str);
104 elm_object_disabled_set(obj, a->state == API_STATE_LAST);
106 >>>>>>> remotes/origin/upstream
108 * In this example some calls to elm_genlist_item_append() are used which give the
109 * value of an int as 'item data' and 'func data' after casting into (void*). For
110 * sure this works only on architectures where sizeof(int)==sizeof(void*).
111 * For real world usage you should hold a data structure or value in your
112 * application and then give only a pointer to this data as data pointer.
115 typedef struct _Testitem
117 Elm_Object_Item *item;
124 static Elm_Genlist_Item_Class itc1;
129 static Elm_Genlist_Item_Class *itc1;
130 static Elm_Genlist_Item_Class *itc15;
131 >>>>>>> remotes/origin/upstream
132 char *gl_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
135 snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data);
139 Evas_Object *gl_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
142 Evas_Object *ic = elm_icon_add(obj);
143 if (!strcmp(part, "elm.swallow.end"))
144 snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
146 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
147 elm_icon_file_set(ic, buf, NULL);
148 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
154 >>>>>>> remotes/origin/upstream
155 Eina_Bool gl_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
160 void gl_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
164 >>>>>>> remotes/origin/upstream
167 gl_sel(void *data, Evas_Object *obj, void *event_info)
169 printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n", data, obj, event_info);
173 _move(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
175 Evas_Object *gl = data;
176 Evas_Event_Mouse_Move *ev = event_info;
178 Elm_Object_Item *gli;
179 gli = elm_genlist_at_xy_item_get(gl, ev->cur.canvas.x, ev->cur.canvas.y, &where);
182 printf("over %p, where %i\n", elm_genlist_item_data_get(gli), where);
184 printf("over %p, where %i\n", elm_object_item_data_get(gli), where);
185 >>>>>>> remotes/origin/upstream
187 printf("over none, where %i\n", where);
191 _bt50_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
194 elm_genlist_item_bring_in(data);
196 elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_IN);
197 >>>>>>> remotes/origin/upstream
201 _bt1500_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
204 elm_genlist_item_middle_bring_in(data);
206 elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
207 >>>>>>> remotes/origin/upstream
211 _gl_selected(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
213 printf("selected: %p\n", event_info);
217 _gl_double_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
219 printf("double clicked: %p\n", event_info);
223 _gl_longpress(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
225 printf("longpress %p\n", event_info);
230 test_genlist(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
232 Evas_Object *win, *bg, *gl, *bt_50, *bt_1500, *bx;
234 Elm_Object_Item *gli;
237 win = elm_win_add(NULL, "genlist", ELM_WIN_BASIC);
238 elm_win_title_set(win, "Genlist");
239 elm_win_autodel_set(win, EINA_TRUE);
241 bg = elm_bg_add(win);
242 elm_win_resize_object_add(win, bg);
243 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
244 evas_object_show(bg);
246 bx = elm_box_add(win);
247 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
248 elm_win_resize_object_add(win, bx);
249 evas_object_show(bx);
253 _cleanup_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
259 test_genlist(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
261 Evas_Object *win, *gl, *bt_50, *bt_1500, *bx, *bxx, *bt;
263 Elm_Object_Item *gli;
265 api_data *api = calloc(1, sizeof(api_data));
267 win = elm_win_util_standard_add("genlist", "Genlist");
268 elm_win_autodel_set(win, EINA_TRUE);
269 evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);
271 bxx = elm_box_add(win);
272 elm_win_resize_object_add(win, bxx);
273 evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
274 evas_object_show(bxx);
276 bx = elm_box_add(win);
277 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
278 evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
280 evas_object_show(bx);
282 bt = elm_button_add(win);
283 elm_object_text_set(bt, "Next API function");
284 evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api);
285 elm_box_pack_end(bxx, bt);
286 elm_object_disabled_set(bt, api->state == API_STATE_LAST);
287 evas_object_show(bt);
289 elm_box_pack_end(bxx, bx);
291 >>>>>>> remotes/origin/upstream
292 gl = elm_genlist_add(win);
293 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
294 evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
295 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
296 // FIXME: This causes genlist to resize the horiz axis very slowly :(
297 // Reenable this and resize the window horizontally, then try to resize it back
299 //elm_genlist_horizontal_mode_set(gl, ELM_LIST_LIMIT);
301 //elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
302 >>>>>>> remotes/origin/upstream
303 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
304 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
305 elm_box_pack_end(bx, gl);
306 evas_object_show(gl);
308 over = evas_object_rectangle_add(evas_object_evas_get(win));
309 evas_object_color_set(over, 0, 0, 0, 0);
310 evas_object_event_callback_add(over, EVAS_CALLBACK_MOUSE_MOVE, _move, gl);
311 evas_object_repeat_events_set(over, 1);
312 evas_object_show(over);
313 evas_object_size_hint_weight_set(over, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
314 elm_win_resize_object_add(win, over);
317 itc1.item_style = "default";
318 itc1.func.text_get = gl_text_get;
319 itc1.func.content_get = gl_content_get;
320 itc1.func.state_get = gl_state_get;
321 itc1.func.del = gl_del;
323 itc1 = elm_genlist_item_class_new();
324 itc1->item_style = "default";
325 itc1->func.text_get = gl_text_get;
326 itc1->func.content_get = gl_content_get;
327 itc1->func.state_get = gl_state_get;
328 itc1->func.del = NULL;
329 >>>>>>> remotes/origin/upstream
331 bt_50 = elm_button_add(win);
332 elm_object_text_set(bt_50, "Go to 50");
333 evas_object_show(bt_50);
334 elm_box_pack_end(bx, bt_50);
336 bt_1500 = elm_button_add(win);
337 elm_object_text_set(bt_1500, "Go to 1500");
338 evas_object_show(bt_1500);
339 elm_box_pack_end(bx, bt_1500);
341 for (i = 0; i < 2000; i++)
344 gli = elm_genlist_item_append(gl, &itc1,
346 gli = elm_genlist_item_append(gl, itc1,
347 >>>>>>> remotes/origin/upstream
348 (void *)(long)i/* item data */,
350 ELM_GENLIST_ITEM_NONE,
352 (void *)(long)(i * 10)/* func data */);
354 evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
356 evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
360 elm_genlist_item_class_free(itc1);
362 >>>>>>> remotes/origin/upstream
363 evas_object_resize(win, 480, 800);
364 evas_object_show(win);
370 my_gl_clear(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
372 Evas_Object *gl = data;
373 elm_genlist_clear(gl);
377 my_gl_add(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
379 Evas_Object *gl = data;
383 itc1.item_style = "default";
384 itc1.func.text_get = gl_text_get;
385 itc1.func.content_get = gl_content_get;
386 itc1.func.state_get = gl_state_get;
387 itc1.func.del = gl_del;
389 elm_genlist_item_append(gl, &itc1,
391 itc1->item_style = "default";
392 itc1->func.text_get = gl_text_get;
393 itc1->func.content_get = gl_content_get;
394 itc1->func.state_get = gl_state_get;
395 itc1->func.del = NULL;
397 elm_genlist_item_append(gl, itc1,
398 >>>>>>> remotes/origin/upstream
399 (void *)(long)i/* item data */,
401 ELM_GENLIST_ITEM_NONE,
403 (void *)(long)(i * 10)/* func data */);
408 my_gl_insert_before(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
410 Evas_Object *gl = data;
412 Elm_Object_Item *gli_selected;
415 itc1.item_style = "default";
416 itc1.func.text_get = gl_text_get;
417 itc1.func.content_get = gl_content_get;
418 itc1.func.state_get = gl_state_get;
419 itc1.func.del = gl_del;
421 gli_selected = elm_genlist_selected_item_get(gl);
424 itc1->item_style = "default";
425 itc1->func.text_get = gl_text_get;
426 itc1->func.content_get = gl_content_get;
427 itc1->func.state_get = gl_state_get;
428 itc1->func.del = NULL;
430 gli_selected = elm_genlist_selected_item_get(gl);
432 >>>>>>> remotes/origin/upstream
434 printf("no item selected\n");
439 elm_genlist_item_insert_before(gl, &itc1,
441 elm_genlist_item_insert_before(gl, itc1,
442 >>>>>>> remotes/origin/upstream
443 (void *)(long)i/* item data */,
445 gli_selected /* item before */,
446 ELM_GENLIST_ITEM_NONE,
448 (void *)(long)(i * 10)/* func data */);
453 my_gl_insert_after(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
455 Evas_Object *gl = data;
457 Elm_Object_Item *gli_selected;
460 itc1.item_style = "default";
461 itc1.func.text_get = gl_text_get;
462 itc1.func.content_get = gl_content_get;
463 itc1.func.state_get = gl_state_get;
464 itc1.func.del = gl_del;
466 gli_selected = elm_genlist_selected_item_get(gl);
469 itc1->item_style = "default";
470 itc1->func.text_get = gl_text_get;
471 itc1->func.content_get = gl_content_get;
472 itc1->func.state_get = gl_state_get;
473 itc1->func.del = NULL;
475 gli_selected = elm_genlist_selected_item_get(gl);
477 >>>>>>> remotes/origin/upstream
479 printf("no item selected\n");
484 elm_genlist_item_insert_after(gl, &itc1,
486 elm_genlist_item_insert_after(gl, itc1,
487 >>>>>>> remotes/origin/upstream
488 (void *)(long)i/* item data */,
490 gli_selected /* item after */,
491 ELM_GENLIST_ITEM_NONE,
493 (void *)(long)(i * 10)/* func data */);
498 my_gl_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
500 Evas_Object *gl = data;
501 Elm_Object_Item *gli = elm_genlist_selected_item_get(gl);
504 printf("no item selected\n");
508 elm_genlist_item_del(gli);
510 elm_object_item_del(gli);
511 >>>>>>> remotes/origin/upstream
515 my_gl_disable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
517 Evas_Object *gl = data;
518 Elm_Object_Item *gli = elm_genlist_selected_item_get(gl);
521 printf("no item selected\n");
525 elm_genlist_item_disabled_set(gli, 1);
526 elm_genlist_item_selected_set(gli, 0);
528 elm_object_item_disabled_set(gli, EINA_TRUE);
529 elm_genlist_item_selected_set(gli, EINA_FALSE);
530 >>>>>>> remotes/origin/upstream
531 elm_genlist_item_update(gli);
535 my_gl_update_all(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
537 Evas_Object *gl = data;
539 Elm_Object_Item *it = elm_genlist_first_item_get(gl);
542 elm_genlist_item_update(it);
545 it = elm_genlist_item_next_get(it);
550 my_gl_first(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
552 Evas_Object *gl = data;
553 Elm_Object_Item *gli = elm_genlist_first_item_get(gl);
556 elm_genlist_item_show(gli);
558 elm_genlist_item_show(gli, ELM_GENLIST_ITEM_SCROLLTO_IN);
559 >>>>>>> remotes/origin/upstream
560 elm_genlist_item_selected_set(gli, 1);
564 my_gl_last(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
566 Evas_Object *gl = data;
567 Elm_Object_Item *gli = elm_genlist_last_item_get(gl);
570 elm_genlist_item_show(gli);
572 elm_genlist_item_show(gli, ELM_GENLIST_ITEM_SCROLLTO_IN);
573 >>>>>>> remotes/origin/upstream
574 elm_genlist_item_selected_set(gli, 1);
578 my_gl_flush_delay(void *data __UNUSED__)
583 elm_cache_all_flush();
584 >>>>>>> remotes/origin/upstream
585 return ECORE_CALLBACK_CANCEL;
589 my_gl_flush(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
591 ecore_timer_add(1.2, my_gl_flush_delay, NULL);
595 test_genlist2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
597 Evas_Object *win, *bg, *gl, *bx, *bx2, *bx3, *bt;
598 Elm_Object_Item *gli[10];
601 win = elm_win_add(NULL, "genlist2", ELM_WIN_BASIC);
602 elm_win_title_set(win, "Genlist 2");
603 elm_win_autodel_set(win, EINA_TRUE);
605 bg = elm_bg_add(win);
606 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
607 elm_bg_file_set(bg, buf, NULL);
608 elm_win_resize_object_add(win, bg);
609 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
610 evas_object_show(bg);
612 bx = elm_box_add(win);
613 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
614 elm_win_resize_object_add(win, bx);
615 evas_object_show(bx);
617 gl = elm_genlist_add(win);
618 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
619 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
620 evas_object_show(gl);
623 itc1.item_style = "default";
624 itc1.func.text_get = gl_text_get;
625 itc1.func.content_get = gl_content_get;
626 itc1.func.state_get = gl_state_get;
627 itc1.func.del = gl_del;
629 gli[0] = elm_genlist_item_append(gl, &itc1,
630 (void *)1001/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
631 (void *)1001/* func data */);
632 gli[1] = elm_genlist_item_append(gl, &itc1,
633 (void *)1002/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
634 (void *)1002/* func data */);
635 gli[2] = elm_genlist_item_append(gl, &itc1,
636 (void *)1003/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
637 (void *)1003/* func data */);
638 gli[3] = elm_genlist_item_prepend(gl, &itc1,
639 (void *)1004/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
640 (void *)1004/* func data */);
641 gli[4] = elm_genlist_item_prepend(gl, &itc1,
642 (void *)1005/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
643 (void *)1005/* func data */);
644 gli[5] = elm_genlist_item_insert_before(gl, &itc1,
645 (void *)1006/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
646 gl_sel/* func */, (void *)1006/* func data */);
647 gli[6] = elm_genlist_item_insert_after(gl, &itc1,
648 (void *)1007/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
649 gl_sel/* func */, (void *)1007/* func data */);
652 itc1 = elm_genlist_item_class_new();
653 itc1->item_style = "default";
654 itc1->func.text_get = gl_text_get;
655 itc1->func.content_get = gl_content_get;
656 itc1->func.state_get = gl_state_get;
657 itc1->func.del = NULL;
659 gli[0] = elm_genlist_item_append(gl, itc1,
660 (void *)1001/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
661 (void *)1001/* func data */);
662 gli[1] = elm_genlist_item_append(gl, itc1,
663 (void *)1002/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
664 (void *)1002/* func data */);
665 gli[2] = elm_genlist_item_append(gl, itc1,
666 (void *)1003/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
667 (void *)1003/* func data */);
668 gli[3] = elm_genlist_item_prepend(gl, itc1,
669 (void *)1004/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
670 (void *)1004/* func data */);
671 gli[4] = elm_genlist_item_prepend(gl, itc1,
672 (void *)1005/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
673 (void *)1005/* func data */);
674 gli[5] = elm_genlist_item_insert_before(gl, itc1,
675 (void *)1006/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
676 gl_sel/* func */, (void *)1006/* func data */);
677 gli[6] = elm_genlist_item_insert_after(gl, itc1,
678 (void *)1007/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
679 gl_sel/* func */, (void *)1007/* func data */);
680 >>>>>>> remotes/origin/upstream
681 elm_box_pack_end(bx, gl);
683 bx2 = elm_box_add(win);
684 elm_box_horizontal_set(bx2, EINA_TRUE);
685 elm_box_homogeneous_set(bx2, EINA_TRUE);
686 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
687 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
689 bt = elm_button_add(win);
690 elm_object_text_set(bt, "/\\");
691 evas_object_smart_callback_add(bt, "clicked", my_gl_first, gl);
692 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
693 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
694 elm_box_pack_end(bx2, bt);
695 evas_object_show(bt);
697 bt = elm_button_add(win);
698 elm_object_text_set(bt, "\\/");
699 evas_object_smart_callback_add(bt, "clicked", my_gl_last, gl);
700 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
701 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
702 elm_box_pack_end(bx2, bt);
703 evas_object_show(bt);
705 bt = elm_button_add(win);
706 elm_object_text_set(bt, "#");
707 evas_object_smart_callback_add(bt, "clicked", my_gl_disable, gl);
708 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
709 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
710 elm_box_pack_end(bx2, bt);
711 evas_object_show(bt);
713 bt = elm_button_add(win);
714 elm_object_text_set(bt, "U");
715 evas_object_smart_callback_add(bt, "clicked", my_gl_update_all, gl);
716 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
717 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
718 elm_box_pack_end(bx2, bt);
719 evas_object_show(bt);
721 elm_box_pack_end(bx, bx2);
722 evas_object_show(bx2);
724 bx2 = elm_box_add(win);
725 elm_box_horizontal_set(bx2, EINA_TRUE);
726 elm_box_homogeneous_set(bx2, EINA_TRUE);
727 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
728 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
730 bt = elm_button_add(win);
731 elm_object_text_set(bt, "X");
732 evas_object_smart_callback_add(bt, "clicked", my_gl_clear, gl);
733 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
734 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
735 elm_box_pack_end(bx2, bt);
736 evas_object_show(bt);
738 bt = elm_button_add(win);
739 elm_object_text_set(bt, "+");
740 evas_object_smart_callback_add(bt, "clicked", my_gl_add, gl);
741 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
742 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
743 elm_box_pack_end(bx2, bt);
744 evas_object_show(bt);
746 bt = elm_button_add(win);
747 elm_object_text_set(bt, "-");
748 evas_object_smart_callback_add(bt, "clicked", my_gl_del, gl);
749 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
750 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
751 elm_box_pack_end(bx2, bt);
752 evas_object_show(bt);
754 elm_box_pack_end(bx, bx2);
755 evas_object_show(bx2);
757 bx3 = elm_box_add(win);
758 elm_box_horizontal_set(bx3, EINA_TRUE);
759 elm_box_homogeneous_set(bx3, EINA_TRUE);
760 evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
761 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
763 bt = elm_button_add(win);
764 elm_object_text_set(bt, "+ before");
765 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before, gl);
766 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
767 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
768 elm_box_pack_end(bx3, bt);
769 evas_object_show(bt);
771 bt = elm_button_add(win);
772 elm_object_text_set(bt, "+ after");
773 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after, gl);
774 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
775 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
776 elm_box_pack_end(bx3, bt);
777 evas_object_show(bt);
779 bt = elm_button_add(win);
780 elm_object_text_set(bt, "Flush");
781 evas_object_smart_callback_add(bt, "clicked", my_gl_flush, gl);
782 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
783 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
784 elm_box_pack_end(bx3, bt);
785 evas_object_show(bt);
787 elm_box_pack_end(bx, bx3);
788 evas_object_show(bx3);
792 /* item_class_ref is needed for itc1. some items can be added in callbacks */
793 elm_genlist_item_class_ref(itc1);
794 elm_genlist_item_class_free(itc1);
795 >>>>>>> remotes/origin/upstream
797 evas_object_resize(win, 320, 320);
798 evas_object_show(win);
803 static Elm_Genlist_Item_Class itc2;
807 >>>>>>> remotes/origin/upstream
808 char *gl2_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
810 const Testitem *tit = data;
812 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
818 >>>>>>> remotes/origin/upstream
819 Evas_Object *gl2_content_get(void *data, Evas_Object *obj, const char *part)
821 const Testitem *tit = data;
823 Evas_Object *ic = elm_icon_add(obj);
824 if (!strcmp(part, "elm.swallow.icon"))
826 if (!(tit->mode & 0x3))
827 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
828 else if ((tit->mode & 0x3) == 1)
829 snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
830 else if ((tit->mode & 0x3) == 2)
831 snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", elm_app_data_dir_get());
832 else if ((tit->mode & 0x3) == 3)
833 snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
834 elm_icon_file_set(ic, buf, NULL);
836 else if (!strcmp(part, "elm.swallow.end"))
838 if (!(tit->mode & 0x3))
839 snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
840 else if ((tit->mode & 0x3) == 1)
841 snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
842 else if ((tit->mode & 0x3) == 2)
843 snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
844 else if ((tit->mode & 0x3) == 3)
845 snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
846 elm_icon_file_set(ic, buf, NULL);
848 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
854 >>>>>>> remotes/origin/upstream
855 Eina_Bool gl2_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
860 void gl2_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
864 >>>>>>> remotes/origin/upstream
867 my_gl_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
869 Testitem *tit = data;
871 elm_genlist_item_update(tit->item);
876 test_genlist3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
878 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
879 static Testitem tit[3];
881 win = elm_win_add(NULL, "genlist3", ELM_WIN_BASIC);
882 elm_win_title_set(win, "Genlist 3");
883 elm_win_autodel_set(win, EINA_TRUE);
885 bg = elm_bg_add(win);
886 elm_win_resize_object_add(win, bg);
887 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
888 evas_object_show(bg);
892 my_gl_labels_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
894 Testitem *tit = data;
896 elm_genlist_item_fields_update(tit->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
900 my_gl_contents_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
902 Testitem *tit = data;
904 elm_genlist_item_fields_update(tit->item, "*", ELM_GENLIST_ITEM_FIELD_CONTENT);
908 test_genlist3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
910 Evas_Object *win, *gl, *bx, *bx2, *bt;
911 static Testitem tit[3];
913 win = elm_win_util_standard_add("genlist3", "Genlist 3");
914 elm_win_autodel_set(win, EINA_TRUE);
916 >>>>>>> remotes/origin/upstream
917 bx = elm_box_add(win);
918 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
919 elm_win_resize_object_add(win, bx);
920 evas_object_show(bx);
922 gl = elm_genlist_add(win);
923 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
924 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
925 evas_object_show(gl);
927 itc2.item_style = "default";
928 itc2.func.text_get = gl2_text_get;
929 itc2.func.content_get = gl2_content_get;
930 itc2.func.state_get = gl2_state_get;
932 itc2.func.del = gl2_del;
934 itc2.func.del = NULL;
935 >>>>>>> remotes/origin/upstream
938 tit[0].item = elm_genlist_item_append(gl, &itc2,
939 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
940 NULL/* func data */);
942 tit[1].item = elm_genlist_item_append(gl, &itc2,
943 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
944 NULL/* func data */);
946 tit[2].item = elm_genlist_item_append(gl, &itc2,
947 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
948 NULL/* func data */);
950 elm_box_pack_end(bx, gl);
951 evas_object_show(bx);
953 bx2 = elm_box_add(win);
954 elm_box_horizontal_set(bx2, EINA_TRUE);
955 elm_box_homogeneous_set(bx2, EINA_TRUE);
956 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
957 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
959 bt = elm_button_add(win);
960 elm_object_text_set(bt, "[1]");
961 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
962 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
963 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
964 elm_box_pack_end(bx2, bt);
965 evas_object_show(bt);
967 bt = elm_button_add(win);
969 elm_object_text_set(bt, "[2]");
970 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
972 elm_object_text_set(bt, "labels");
973 evas_object_smart_callback_add(bt, "clicked", my_gl_labels_update, &(tit[1]));
974 >>>>>>> remotes/origin/upstream
975 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
976 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
977 elm_box_pack_end(bx2, bt);
978 evas_object_show(bt);
980 bt = elm_button_add(win);
982 elm_object_text_set(bt, "[3]");
983 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
985 elm_object_text_set(bt, "contents");
986 evas_object_smart_callback_add(bt, "clicked", my_gl_contents_update, &(tit[2]));
987 >>>>>>> remotes/origin/upstream
988 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
989 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
990 elm_box_pack_end(bx2, bt);
991 evas_object_show(bt);
993 elm_box_pack_end(bx, bx2);
994 evas_object_show(bx2);
996 evas_object_resize(win, 320, 320);
997 evas_object_show(win);
1003 my_gl_item_check_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1005 Testitem *tit = data;
1006 tit->onoff = elm_check_state_get(obj);
1007 printf("item %p onoff = %i\n", tit, tit->onoff);
1010 static Elm_Genlist_Item_Class itc3;
1014 >>>>>>> remotes/origin/upstream
1015 char *gl3_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1017 const Testitem *tit = data;
1019 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
1025 >>>>>>> remotes/origin/upstream
1026 Evas_Object *gl3_content_get(void *data, Evas_Object *obj, const char *part)
1028 const Testitem *tit = data;
1029 if (!strcmp(part, "elm.swallow.icon"))
1033 lb = elm_label_add(obj);
1034 elm_label_line_wrap_set(lb, ELM_WRAP_CHAR);
1035 elm_label_wrap_width_set(lb, 201);
1036 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");
1039 else if (!strcmp(part, "elm.swallow.end"))
1042 ck = elm_check_add(obj);
1043 evas_object_propagate_events_set(ck, EINA_FALSE);
1044 elm_check_state_set(ck, tit->onoff);
1045 evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed, data);
1053 >>>>>>> remotes/origin/upstream
1054 Eina_Bool gl3_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1059 void gl3_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
1063 >>>>>>> remotes/origin/upstream
1066 test_genlist4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1069 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
1070 static Testitem tit[3];
1072 win = elm_win_add(NULL, "genlist4", ELM_WIN_BASIC);
1073 elm_win_title_set(win, "Genlist 4");
1074 elm_win_autodel_set(win, EINA_TRUE);
1076 bg = elm_bg_add(win);
1077 elm_win_resize_object_add(win, bg);
1078 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1079 evas_object_show(bg);
1082 Evas_Object *win, *gl, *bx, *bx2, *bt;
1083 static Testitem tit[3];
1085 win = elm_win_util_standard_add("genlist4", "Genlist 4");
1086 elm_win_autodel_set(win, EINA_TRUE);
1088 >>>>>>> remotes/origin/upstream
1089 bx = elm_box_add(win);
1090 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1091 elm_win_resize_object_add(win, bx);
1092 evas_object_show(bx);
1094 gl = elm_genlist_add(win);
1096 elm_genlist_height_for_width_mode_set(gl, EINA_TRUE);
1098 elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
1099 >>>>>>> remotes/origin/upstream
1100 elm_genlist_multi_select_set(gl, 1);
1101 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1102 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1103 evas_object_show(gl);
1105 itc3.item_style = "default";
1106 itc3.func.text_get = gl3_text_get;
1107 itc3.func.content_get = gl3_content_get;
1108 itc3.func.state_get = gl3_state_get;
1110 itc3.func.del = gl3_del;
1112 itc3.func.del = NULL;
1113 >>>>>>> remotes/origin/upstream
1116 tit[0].item = elm_genlist_item_append(gl, &itc3,
1117 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
1118 NULL/* func data */);
1120 tit[1].item = elm_genlist_item_append(gl, &itc3,
1121 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
1122 NULL/* func data */);
1124 tit[2].item = elm_genlist_item_append(gl, &itc3,
1125 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
1126 NULL/* func data */);
1128 elm_box_pack_end(bx, gl);
1129 evas_object_show(bx);
1131 bx2 = elm_box_add(win);
1132 elm_box_horizontal_set(bx2, EINA_TRUE);
1133 elm_box_homogeneous_set(bx2, EINA_TRUE);
1134 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1135 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1137 bt = elm_button_add(win);
1138 elm_object_text_set(bt, "[1]");
1139 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
1140 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1141 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1142 elm_box_pack_end(bx2, bt);
1143 evas_object_show(bt);
1145 bt = elm_button_add(win);
1146 elm_object_text_set(bt, "[2]");
1147 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
1148 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1149 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1150 elm_box_pack_end(bx2, bt);
1151 evas_object_show(bt);
1153 bt = elm_button_add(win);
1154 elm_object_text_set(bt, "[3]");
1155 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1156 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1157 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1158 elm_box_pack_end(bx2, bt);
1159 evas_object_show(bt);
1161 elm_box_pack_end(bx, bx2);
1162 evas_object_show(bx2);
1164 evas_object_resize(win, 320, 320);
1165 evas_object_show(win);
1171 my_gl_item_check_changed2(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1173 Testitem *tit = data;
1174 tit->onoff = elm_check_state_get(obj);
1175 printf("item %p onoff = %i\n", tit, tit->onoff);
1178 static Elm_Genlist_Item_Class itc5;
1182 >>>>>>> remotes/origin/upstream
1183 char *gl5_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
1185 const Testitem *tit = data;
1187 if (!strcmp(part, "elm.text"))
1189 snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
1191 else if (!strcmp(part, "elm.text.sub"))
1193 snprintf(buf, sizeof(buf), "%i bottles on the wall", tit->mode);
1200 >>>>>>> remotes/origin/upstream
1201 Evas_Object *gl5_content_get(void *data, Evas_Object *obj, const char *part)
1203 const Testitem *tit = data;
1205 if (!strcmp(part, "elm.swallow.icon"))
1207 Evas_Object *bx = elm_box_add(obj);
1209 elm_box_horizontal_set(bx, EINA_TRUE);
1210 ic = elm_icon_add(obj);
1211 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1212 elm_icon_file_set(ic, buf, NULL);
1214 elm_icon_scale_set(ic, 0, 0);
1216 elm_icon_resizable_set(ic, 0, 0);
1217 >>>>>>> remotes/origin/upstream
1218 evas_object_show(ic);
1219 elm_box_pack_end(bx, ic);
1220 ic = elm_icon_add(obj);
1221 elm_icon_file_set(ic, buf, NULL);
1223 elm_icon_scale_set(ic, 0, 0);
1225 elm_icon_resizable_set(ic, 0, 0);
1226 >>>>>>> remotes/origin/upstream
1227 evas_object_show(ic);
1228 elm_box_pack_end(bx, ic);
1229 elm_box_horizontal_set(bx, EINA_TRUE);
1230 evas_object_show(bx);
1233 else if (!strcmp(part, "elm.swallow.end"))
1236 ck = elm_check_add(obj);
1237 evas_object_propagate_events_set(ck, EINA_FALSE);
1238 elm_check_state_set(ck, tit->onoff);
1239 evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed2, data);
1240 evas_object_show(ck);
1248 >>>>>>> remotes/origin/upstream
1249 Eina_Bool gl5_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1254 void gl5_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
1258 >>>>>>> remotes/origin/upstream
1261 item_drag_up(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1263 printf("drag up\n");
1267 item_drag_down(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1269 printf("drag down\n");
1273 item_drag_left(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1275 printf("drag left\n");
1279 item_drag_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1281 printf("drag right\n");
1285 scroll_top(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1287 printf("Top edge!\n");
1291 scroll_bottom(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1293 printf("Bottom edge!\n");
1297 scroll_left(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1299 printf("Left edge!\n");
1303 scroll_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1305 printf("Right edge!\n");
1309 item_drag(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1315 item_drag_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1317 printf("drag stop\n");
1321 item_longpress(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1323 printf("longpress\n");
1327 test_genlist5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1330 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
1331 static Testitem tit[3];
1333 win = elm_win_add(NULL, "genlist5", ELM_WIN_BASIC);
1334 elm_win_title_set(win, "Genlist 5");
1335 elm_win_autodel_set(win, EINA_TRUE);
1337 bg = elm_bg_add(win);
1338 elm_win_resize_object_add(win, bg);
1339 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1340 evas_object_show(bg);
1343 Evas_Object *win, *gl, *bx, *bx2, *bt;
1344 static Testitem tit[3];
1346 win = elm_win_util_standard_add("genlist5", "Genlist 5");
1347 elm_win_autodel_set(win, EINA_TRUE);
1349 >>>>>>> remotes/origin/upstream
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);
1357 elm_genlist_always_select_mode_set(gl, 1);
1359 elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS);
1360 >>>>>>> remotes/origin/upstream
1361 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1362 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1363 evas_object_show(gl);
1364 itc5.item_style = "double_label";
1365 itc5.func.text_get = gl5_text_get;
1366 itc5.func.content_get = gl5_content_get;
1367 itc5.func.state_get = gl5_state_get;
1369 itc5.func.del = gl5_del;
1371 itc5.func.del = NULL;
1372 >>>>>>> remotes/origin/upstream
1375 tit[0].item = elm_genlist_item_append(gl, &itc5,
1376 &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
1377 NULL/* func data */);
1379 tit[1].item = elm_genlist_item_append(gl, &itc5,
1380 &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
1381 NULL/* func data */);
1383 tit[2].item = elm_genlist_item_append(gl, &itc5,
1384 &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
1385 NULL/* func data */);
1387 elm_box_pack_end(bx, gl);
1388 evas_object_show(bx);
1390 evas_object_smart_callback_add(gl, "drag,start,up", item_drag_up, NULL);
1391 evas_object_smart_callback_add(gl, "drag,start,down", item_drag_down, NULL);
1392 evas_object_smart_callback_add(gl, "drag,start,left", item_drag_left, NULL);
1393 evas_object_smart_callback_add(gl, "drag,start,right", item_drag_right, NULL);
1394 evas_object_smart_callback_add(gl, "scroll,edge,top", scroll_top, NULL);
1395 evas_object_smart_callback_add(gl, "scroll,edge,bottom", scroll_bottom, NULL);
1396 evas_object_smart_callback_add(gl, "scroll,edge,left", scroll_left, NULL);
1397 evas_object_smart_callback_add(gl, "scroll,edge,right", scroll_right, NULL);
1398 evas_object_smart_callback_add(gl, "drag", item_drag, NULL);
1399 evas_object_smart_callback_add(gl, "drag,stop", item_drag_stop, NULL);
1400 evas_object_smart_callback_add(gl, "longpressed", item_longpress, NULL);
1402 bx2 = elm_box_add(win);
1403 elm_box_horizontal_set(bx2, EINA_TRUE);
1404 elm_box_homogeneous_set(bx2, EINA_TRUE);
1405 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1406 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1408 bt = elm_button_add(win);
1409 elm_object_text_set(bt, "[1]");
1410 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
1411 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1412 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1413 elm_box_pack_end(bx2, bt);
1414 evas_object_show(bt);
1416 bt = elm_button_add(win);
1417 elm_object_text_set(bt, "[2]");
1418 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
1419 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1420 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1421 elm_box_pack_end(bx2, bt);
1422 evas_object_show(bt);
1424 bt = elm_button_add(win);
1425 elm_object_text_set(bt, "[3]");
1426 evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1427 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1428 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1429 elm_box_pack_end(bx2, bt);
1430 evas_object_show(bt);
1432 elm_box_pack_end(bx, bx2);
1433 evas_object_show(bx2);
1435 evas_object_resize(win, 320, 320);
1436 evas_object_show(win);
1441 static Elm_Genlist_Item_Class itc4;
1444 gl4_sel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1447 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
1450 depth = elm_genlist_item_expanded_depth_get(it);
1451 printf("expanded depth for selected item is %d\n", depth);
1455 gl4_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1457 Elm_Object_Item *it = event_info;
1458 Evas_Object *gl = elm_genlist_item_genlist_get(it);
1459 int val = (int)(long)elm_genlist_item_data_get(it);
1461 elm_genlist_item_append(gl, &itc4,
1462 (void *)(long)(val + 1)/* item data */, it/* parent */,
1463 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1464 NULL/* func data */);
1465 elm_genlist_item_append(gl, &itc4,
1466 (void *)(long)(val + 2)/* item data */, it/* parent */,
1467 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1468 NULL/* func data */);
1469 elm_genlist_item_append(gl, &itc4,
1470 (void *)(long)(val + 3)/* item data */, it/* parent */,
1471 ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1473 Elm_Object_Item *glit = event_info;
1474 int depth = elm_genlist_item_expanded_depth_get(glit);
1475 printf("expanded depth for selected item is %d\n", depth);
1479 gl4_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1481 Elm_Object_Item *glit = event_info;
1482 Evas_Object *gl = elm_object_item_widget_get(glit);
1483 int val = (int)(long) elm_object_item_data_get(glit);
1485 elm_genlist_item_append(gl, &itc4,
1486 (void *)(long) (val + 1)/* item data */,
1487 glit/* parent */, ELM_GENLIST_ITEM_NONE,
1489 NULL/* func data */);
1490 elm_genlist_item_append(gl, &itc4,
1491 (void *)(long) (val + 2)/* item data */,
1492 glit/* parent */, ELM_GENLIST_ITEM_NONE,
1494 NULL/* func data */);
1495 elm_genlist_item_append(gl, &itc4,
1496 (void *)(long) (val + 3)/* item data */,
1498 ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
1499 >>>>>>> remotes/origin/upstream
1500 NULL/* func data */);
1503 gl4_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1506 Elm_Object_Item *it = event_info;
1507 elm_genlist_item_subitems_clear(it);
1509 Elm_Object_Item *glit = event_info;
1510 elm_genlist_item_subitems_clear(glit);
1511 >>>>>>> remotes/origin/upstream
1515 gl4_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1518 Elm_Object_Item *it = event_info;
1519 elm_genlist_item_expanded_set(it, 1);
1522 gl4_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1524 Elm_Object_Item *it = event_info;
1525 elm_genlist_item_expanded_set(it, 0);
1527 Elm_Object_Item *glit = event_info;
1528 elm_genlist_item_expanded_set(glit, EINA_TRUE);
1532 gl4_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
1534 Elm_Object_Item *glit = event_info;
1535 elm_genlist_item_expanded_set(glit, EINA_FALSE);
1536 >>>>>>> remotes/origin/upstream
1539 char *gl4_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1542 snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
1548 >>>>>>> remotes/origin/upstream
1549 Evas_Object *gl4_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
1552 if (!strcmp(part, "elm.swallow.icon"))
1554 Evas_Object *ic = elm_icon_add(obj);
1555 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1556 elm_icon_file_set(ic, buf, NULL);
1557 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
1558 evas_object_show(ic);
1561 else if (!strcmp(part, "elm.swallow.end"))
1564 ck = elm_check_add(obj);
1565 evas_object_propagate_events_set(ck, EINA_FALSE);
1566 evas_object_show(ck);
1574 >>>>>>> remotes/origin/upstream
1575 Eina_Bool gl4_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1580 void gl4_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
1584 void gl4_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
1586 printf("item deleted.\n");
1587 >>>>>>> remotes/origin/upstream
1591 test_genlist6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1594 Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
1596 win = elm_win_add(NULL, "genlist-tree", ELM_WIN_BASIC);
1597 elm_win_title_set(win, "Genlist Tree");
1598 elm_win_autodel_set(win, EINA_TRUE);
1600 bg = elm_bg_add(win);
1601 elm_win_resize_object_add(win, bg);
1602 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1603 evas_object_show(bg);
1606 Evas_Object *win, *gl, *bx, *bx2, *bt;
1608 win = elm_win_util_standard_add("genlist-tree", "Genlist Tree");
1609 elm_win_autodel_set(win, EINA_TRUE);
1611 >>>>>>> remotes/origin/upstream
1612 bx = elm_box_add(win);
1613 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1614 elm_win_resize_object_add(win, bx);
1615 evas_object_show(bx);
1617 gl = elm_genlist_add(win);
1618 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1619 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1620 evas_object_show(gl);
1622 itc4.item_style = "default";
1623 itc4.func.text_get = gl4_text_get;
1624 itc4.func.content_get = gl4_content_get;
1625 itc4.func.state_get = gl4_state_get;
1626 itc4.func.del = gl4_del;
1628 elm_genlist_item_append(gl, &itc4,
1630 (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1631 NULL/* func data */);
1632 elm_genlist_item_append(gl, &itc4,
1633 (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
1635 (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
1636 NULL/* func data */);
1637 elm_genlist_item_append(gl, &itc4,
1638 (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
1639 >>>>>>> remotes/origin/upstream
1640 NULL/* func data */);
1641 elm_genlist_item_append(gl, &itc4,
1642 (void *)3/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
1643 NULL/* func data */);
1645 evas_object_smart_callback_add(gl, "expand,request", gl4_exp_req, gl);
1646 evas_object_smart_callback_add(gl, "contract,request", gl4_con_req, gl);
1647 evas_object_smart_callback_add(gl, "expanded", gl4_exp, gl);
1648 evas_object_smart_callback_add(gl, "contracted", gl4_con, gl);
1650 elm_box_pack_end(bx, gl);
1651 evas_object_show(bx);
1653 bx2 = elm_box_add(win);
1654 elm_box_horizontal_set(bx2, EINA_TRUE);
1655 elm_box_homogeneous_set(bx2, EINA_TRUE);
1656 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1657 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1659 bt = elm_button_add(win);
1660 elm_object_text_set(bt, "[1]");
1661 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
1662 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1663 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1664 elm_box_pack_end(bx2, bt);
1665 evas_object_show(bt);
1667 bt = elm_button_add(win);
1668 elm_object_text_set(bt, "[2]");
1669 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
1670 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1671 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1672 elm_box_pack_end(bx2, bt);
1673 evas_object_show(bt);
1675 bt = elm_button_add(win);
1676 elm_object_text_set(bt, "[3]");
1677 // evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
1678 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1679 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1680 elm_box_pack_end(bx2, bt);
1681 evas_object_show(bt);
1683 elm_box_pack_end(bx, bx2);
1684 evas_object_show(bx2);
1686 evas_object_resize(win, 320, 320);
1687 evas_object_show(win);
1692 struct genlist7_data
1695 Evas_Object *win, *pager;
1698 static Elm_Genlist_Item_Class itc7;
1700 Evas_Object *win, *naviframe;
1703 static Elm_Genlist_Item_Class itc7;
1705 >>>>>>> remotes/origin/upstream
1707 gl_sel7(void *data, Evas_Object *obj, void *event_info)
1709 if (!event_info) return;
1710 elm_genlist_item_item_class_update(event_info, &itc7);
1711 printf("sel item data [%p] on genlist obj [%p], item pointer [%p], new item style [%s] \n", data, obj, event_info, itc7.item_style);
1715 test_genlist7_back_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1717 struct genlist7_data *info = data;
1721 elm_pager_content_pop(info->pager);
1723 elm_naviframe_item_pop(info->naviframe);
1724 >>>>>>> remotes/origin/upstream
1728 test_genlist7_swipe(void *data, Evas_Object *obj __UNUSED__, void *event_info)
1730 struct genlist7_data *info = data;
1731 Evas_Object *box, *entry, *button;
1732 char item_data[] = "Just a simple test";
1734 if ((!event_info) || (!data)) return;
1736 box = elm_box_add(info->win);
1737 elm_box_homogeneous_set(box, EINA_FALSE);
1738 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1739 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
1740 evas_object_show(box);
1742 entry = elm_entry_add(info->win);
1743 elm_entry_scrollable_set(entry, EINA_TRUE);
1744 elm_entry_editable_set(entry, EINA_FALSE);
1746 elm_entry_entry_set(entry, item_data);
1748 elm_object_text_set(entry, item_data);
1749 >>>>>>> remotes/origin/upstream
1750 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1751 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
1752 evas_object_show(entry);
1754 button = elm_button_add(info->win);
1755 elm_object_text_set(button, "back");
1756 evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
1757 evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
1758 evas_object_smart_callback_add(button, "clicked", test_genlist7_back_cb,
1760 evas_object_show(button);
1762 elm_box_pack_start(box, entry);
1763 elm_box_pack_end(box, button);
1766 elm_pager_content_push(info->pager, box);
1768 elm_naviframe_item_simple_push(info->naviframe, box);
1769 >>>>>>> remotes/origin/upstream
1773 test_genlist7(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1776 Evas_Object *win, *bg, *gl, *pager;
1777 static struct genlist7_data info;
1778 static Testitem tit[3];
1780 win = elm_win_add(NULL, "genlist7", ELM_WIN_BASIC);
1781 elm_win_title_set(win, "Genlist 7");
1782 elm_win_autodel_set(win, EINA_TRUE);
1785 bg = elm_bg_add(win);
1786 elm_win_resize_object_add(win, bg);
1787 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1788 evas_object_show(bg);
1790 pager = elm_pager_add(win);
1791 elm_win_resize_object_add(win, pager);
1792 evas_object_size_hint_weight_set(pager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1793 evas_object_size_hint_align_set(pager, EVAS_HINT_FILL, EVAS_HINT_FILL);
1794 evas_object_show(pager);
1797 Evas_Object *win, *gl, *naviframe;
1798 static struct genlist7_data info;
1799 static Testitem tit[3];
1801 win = elm_win_util_standard_add("genlist7", "Genlist 7");
1802 elm_win_autodel_set(win, EINA_TRUE);
1805 naviframe = elm_naviframe_add(win);
1806 elm_win_resize_object_add(win, naviframe);
1807 evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1808 evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
1809 evas_object_show(naviframe);
1810 info.naviframe = naviframe;
1811 >>>>>>> remotes/origin/upstream
1813 gl = elm_genlist_add(win);
1814 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1815 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1816 evas_object_smart_callback_add(gl, "swipe", test_genlist7_swipe, &info);
1817 evas_object_show(gl);
1819 elm_pager_content_push(pager, gl);
1821 elm_naviframe_item_simple_push(naviframe, gl);
1822 >>>>>>> remotes/origin/upstream
1824 itc2.item_style = "default";
1825 itc2.func.text_get = gl2_text_get;
1826 itc2.func.content_get = gl2_content_get;
1827 itc2.func.state_get = gl2_state_get;
1829 itc2.func.del = gl2_del;
1831 itc2.func.del = NULL;
1832 >>>>>>> remotes/origin/upstream
1834 itc7.item_style = "double_label";
1835 itc7.func.text_get = gl5_text_get;
1836 itc7.func.content_get = gl5_content_get;
1837 itc7.func.state_get = gl5_state_get;
1839 itc7.func.del = gl5_del;
1841 itc7.func.del = NULL;
1842 >>>>>>> remotes/origin/upstream
1845 tit[0].item = elm_genlist_item_append(gl, &itc2,
1846 &(tit[0])/* item data */, NULL/* parent */,
1847 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1848 NULL/* func data */);
1850 tit[1].item = elm_genlist_item_append(gl, &itc2,
1851 &(tit[1])/* item data */, NULL/* parent */,
1852 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1853 NULL/* func data */);
1855 tit[2].item = elm_genlist_item_append(gl, &itc2,
1856 &(tit[2])/* item data */, NULL/* parent */,
1857 ELM_GENLIST_ITEM_NONE, gl_sel7/* func */,
1858 NULL/* func data */);
1860 evas_object_resize(win, 320, 320);
1861 evas_object_show(win);
1866 static Elm_Genlist_Item_Class itc_group;
1870 >>>>>>> remotes/origin/upstream
1871 char *gl8_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
1874 snprintf(buf, sizeof(buf), "Group Index # %i (Item # %i)", (int)((long)data / 10), (int)(long)data);
1879 _bt_show_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1882 elm_genlist_item_top_show(data);
1883 //elm_genlist_item_show(data);
1884 //elm_genlist_item_middle_show(data);
1887 _bt_bring_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1889 elm_genlist_item_top_bring_in(data);
1891 elm_genlist_item_show(data, ELM_GENLIST_ITEM_SCROLLTO_TOP);
1892 //elm_genlist_item_show(data);
1893 //elm_genlist_item_middle_show(data);
1897 _bt_bring_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1899 elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_TOP);
1900 >>>>>>> remotes/origin/upstream
1901 //elm_genlist_item_bring_in(data);
1902 //elm_genlist_item_middle_bring_in(data);
1906 test_genlist8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1909 Evas_Object *win, *bg, *gl, *bt[8], *bx, *bx2, *bx3;
1910 Elm_Object_Item *gli = NULL, *git = NULL;
1913 win = elm_win_add(NULL, "genlist-group", ELM_WIN_BASIC);
1914 elm_win_title_set(win, "Genlist Group");
1915 elm_win_autodel_set(win, EINA_TRUE);
1917 bg = elm_bg_add(win);
1918 elm_win_resize_object_add(win, bg);
1919 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1920 evas_object_show(bg);
1923 Evas_Object *win, *gl, *bt[8], *bx, *bx2, *bx3;
1924 Elm_Object_Item *gli = NULL, *git = NULL;
1927 win = elm_win_util_standard_add("genlist-group", "Genlist Group");
1928 elm_win_autodel_set(win, EINA_TRUE);
1930 >>>>>>> remotes/origin/upstream
1931 bx = elm_box_add(win);
1932 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1933 elm_win_resize_object_add(win, bx);
1934 evas_object_show(bx);
1936 gl = elm_genlist_add(win);
1937 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
1938 evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
1939 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
1940 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1941 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
1942 elm_box_pack_end(bx, gl);
1943 evas_object_show(gl);
1946 itc1.item_style = "default";
1947 itc1.func.text_get = gl_text_get;
1948 itc1.func.content_get = gl_content_get;
1949 itc1.func.state_get = gl_state_get;
1950 itc1.func.del = gl_del;
1952 itc1 = elm_genlist_item_class_new();
1953 itc1->item_style = "default";
1954 itc1->func.text_get = gl_text_get;
1955 itc1->func.content_get = gl_content_get;
1956 itc1->func.state_get = gl_state_get;
1957 itc1->func.del = NULL;
1958 >>>>>>> remotes/origin/upstream
1960 itc_group.item_style = "group_index";
1961 itc_group.func.text_get = gl8_text_get;
1962 itc_group.func.content_get = NULL;
1963 itc_group.func.state_get = NULL;
1965 itc_group.func.del = gl_del;
1967 itc_group.func.del = NULL;
1968 >>>>>>> remotes/origin/upstream
1970 bx2 = elm_box_add(win);
1971 elm_box_horizontal_set(bx2, EINA_TRUE);
1972 elm_box_homogeneous_set(bx2, EINA_TRUE);
1973 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1974 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1977 bt[bt_num] = elm_button_add(win);
1978 elm_object_text_set(bt[bt_num], "Show 0");
1979 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1980 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1981 evas_object_show(bt[bt_num]);
1982 elm_box_pack_end(bx2, bt[bt_num]);
1984 bt[++bt_num] = elm_button_add(win);
1985 elm_object_text_set(bt[bt_num], "Show 26");
1986 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1987 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1988 evas_object_show(bt[bt_num]);
1989 elm_box_pack_end(bx2, bt[bt_num]);
1991 bt[++bt_num] = elm_button_add(win);
1992 elm_object_text_set(bt[bt_num], "Show 101");
1993 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
1994 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
1995 evas_object_show(bt[bt_num]);
1996 elm_box_pack_end(bx2, bt[bt_num]);
1998 bt[++bt_num] = elm_button_add(win);
1999 elm_object_text_set(bt[bt_num], "Show 480");
2000 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
2001 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
2002 evas_object_show(bt[bt_num]);
2003 elm_box_pack_end(bx2, bt[bt_num]);
2005 elm_box_pack_end(bx, bx2);
2006 evas_object_show(bx2);
2008 bx3 = elm_box_add(win);
2009 elm_box_horizontal_set(bx3, EINA_TRUE);
2010 elm_box_homogeneous_set(bx3, EINA_TRUE);
2011 evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
2012 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
2014 bt[++bt_num] = elm_button_add(win);
2015 elm_object_text_set(bt[bt_num], "Bring top 0");
2016 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
2017 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
2018 evas_object_show(bt[bt_num]);
2019 elm_box_pack_end(bx3, bt[bt_num]);
2021 bt[++bt_num] = elm_button_add(win);
2022 elm_object_text_set(bt[bt_num], "Bring top 31");
2023 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
2024 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
2025 evas_object_show(bt[bt_num]);
2026 elm_box_pack_end(bx3, bt[bt_num]);
2028 bt[++bt_num] = elm_button_add(win);
2029 elm_object_text_set(bt[bt_num], "Bring top 239");
2030 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
2031 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
2032 evas_object_show(bt[bt_num]);
2033 elm_box_pack_end(bx3, bt[bt_num]);
2035 bt[++bt_num] = elm_button_add(win);
2036 elm_object_text_set(bt[bt_num], "Bring top 477");
2037 evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
2038 evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
2039 evas_object_show(bt[bt_num]);
2040 elm_box_pack_end(bx3, bt[bt_num]);
2042 elm_box_pack_end(bx, bx3);
2043 evas_object_show(bx3);
2045 for (i = 0; i < 500; i++)
2049 gli = git = elm_genlist_item_append(gl, &itc_group,
2050 (void *)(long)i/* item data */,
2052 ELM_GENLIST_ITEM_GROUP,
2054 (void *)(long)(i * 10)/* func data */);
2056 elm_genlist_item_display_only_set(git, EINA_TRUE);
2060 gli = elm_genlist_item_append(gl, &itc1,
2062 elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
2066 gli = elm_genlist_item_append(gl, itc1,
2067 >>>>>>> remotes/origin/upstream
2068 (void *)(long)i/* item data */,
2070 ELM_GENLIST_ITEM_NONE,
2072 (void *)(long)(i * 10)/* func data */);
2077 evas_object_smart_callback_add(bt[0], "clicked", _bt_show_cb, gli);
2078 evas_object_smart_callback_add(bt[4], "clicked", _bt_bring_cb, gli);
2081 evas_object_smart_callback_add(bt[1], "clicked", _bt_show_cb, gli);
2084 evas_object_smart_callback_add(bt[5], "clicked", _bt_bring_cb, gli);
2087 evas_object_smart_callback_add(bt[2], "clicked", _bt_show_cb, gli);
2090 evas_object_smart_callback_add(bt[6], "clicked", _bt_bring_cb, gli);
2093 evas_object_smart_callback_add(bt[7], "clicked", _bt_bring_cb, gli);
2096 evas_object_smart_callback_add(bt[3], "clicked", _bt_show_cb, gli);
2102 elm_genlist_item_class_free(itc1);
2103 >>>>>>> remotes/origin/upstream
2105 evas_object_resize(win, 480, 800);
2106 evas_object_show(win);
2112 gl9_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
2115 Elm_Object_Item *it = event_info;
2116 Evas_Object *gl = elm_genlist_item_genlist_get(it);
2117 int val = (int)(long)elm_genlist_item_data_get(it);
2119 elm_genlist_item_append(gl, &itc1,
2120 (void *)(long)(val + 1)/* item data */, it/* parent */,
2121 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2122 NULL/* func data */);
2123 elm_genlist_item_append(gl, &itc1,
2124 (void *)(long)(val + 2)/* item data */, it/* parent */,
2125 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2126 NULL/* func data */);
2127 elm_genlist_item_append(gl, &itc1,
2128 (void *)(long)(val + 3)/* item data */, it/* parent */,
2129 ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
2130 NULL/* func data */);
2133 gl9_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
2135 Elm_Object_Item *it = event_info;
2136 elm_genlist_item_subitems_clear(it);
2138 Elm_Object_Item *glit = event_info;
2139 Evas_Object *gl = elm_object_item_widget_get(glit);
2140 int val = (int)(long) elm_object_item_data_get(glit);
2142 elm_genlist_item_append(gl, itc1,
2143 (void *)(long) (val + 1)/* item data */,
2145 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2146 NULL/* func data */);
2147 elm_genlist_item_append(gl, itc1,
2148 (void *)(long) (val + 2)/* item data */,
2150 ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2151 NULL/* func data */);
2152 elm_genlist_item_append(gl, itc1,
2153 (void *)(long) (val + 3)/* item data */,
2155 ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
2156 NULL/* func data */);
2160 gl9_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
2162 Elm_Object_Item *glit = event_info;
2163 elm_genlist_item_subitems_clear(glit);
2164 >>>>>>> remotes/origin/upstream
2168 gl9_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
2171 Elm_Object_Item *it = event_info;
2172 elm_genlist_item_expanded_set(it, EINA_TRUE);
2175 gl9_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
2177 Elm_Object_Item *it = event_info;
2178 elm_genlist_item_expanded_set(it, EINA_FALSE);
2180 Elm_Object_Item *glit = event_info;
2181 elm_genlist_item_expanded_set(glit, EINA_TRUE);
2185 gl9_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
2187 Elm_Object_Item *glit = event_info;
2188 elm_genlist_item_expanded_set(glit, EINA_FALSE);
2189 >>>>>>> remotes/origin/upstream
2193 test_genlist9(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2196 Evas_Object *win, *bg, *gl, *bx;
2197 Elm_Object_Item *git;
2199 win = elm_win_add(NULL, "genlist-group-tree", ELM_WIN_BASIC);
2200 elm_win_title_set(win, "Genlist Group Tree");
2201 elm_win_autodel_set(win, EINA_TRUE);
2203 bg = elm_bg_add(win);
2204 elm_win_resize_object_add(win, bg);
2205 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2206 evas_object_show(bg);
2209 Evas_Object *win, *gl, *bx;
2210 Elm_Object_Item *git;
2212 win = elm_win_util_standard_add("genlist-group-tree", "Genlist Group Tree");
2213 elm_win_autodel_set(win, EINA_TRUE);
2215 >>>>>>> remotes/origin/upstream
2216 bx = elm_box_add(win);
2217 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2218 elm_win_resize_object_add(win, bx);
2219 evas_object_show(bx);
2221 gl = elm_genlist_add(win);
2222 evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
2223 evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
2224 evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
2225 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2226 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2227 elm_box_pack_end(bx, gl);
2228 evas_object_show(gl);
2231 itc1.item_style = "default";
2232 itc1.func.text_get = gl_text_get;
2233 itc1.func.content_get = gl_content_get;
2234 itc1.func.state_get = gl_state_get;
2235 itc1.func.del = gl_del;
2237 itc1 = elm_genlist_item_class_new();
2238 itc1->item_style = "default";
2239 itc1->func.text_get = gl_text_get;
2240 itc1->func.content_get = gl_content_get;
2241 itc1->func.state_get = gl_state_get;
2242 itc1->func.del = NULL;
2243 >>>>>>> remotes/origin/upstream
2245 itc_group.item_style = "group_index";
2246 itc_group.func.text_get = gl8_text_get;
2247 itc_group.func.content_get = NULL;
2248 itc_group.func.state_get = NULL;
2250 itc_group.func.del = gl_del;
2252 itc_group.func.del = NULL;
2253 >>>>>>> remotes/origin/upstream
2255 git = elm_genlist_item_append(gl, &itc_group,
2256 (void *)0/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_GROUP, gl4_sel/* func */,
2257 NULL/* func data */);
2259 elm_genlist_item_display_only_set(git, EINA_TRUE);
2260 elm_genlist_item_append(gl, &itc1,
2261 (void *)1/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
2262 NULL/* func data */);
2263 elm_genlist_item_append(gl, &itc1,
2264 (void *)2/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2265 NULL/* func data */);
2266 elm_genlist_item_append(gl, &itc1,
2267 (void *)3/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
2269 elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
2271 elm_genlist_item_append(gl, itc1,
2272 (void *)1/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
2273 NULL/* func data */);
2274 elm_genlist_item_append(gl, itc1,
2275 (void *)2/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2276 NULL/* func data */);
2277 elm_genlist_item_append(gl, itc1,
2278 (void *)3/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
2279 >>>>>>> remotes/origin/upstream
2280 NULL/* func data */);
2281 git = elm_genlist_item_append(gl, &itc_group,
2282 (void *)4/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_GROUP, gl4_sel/* func */,
2283 NULL/* func data */);
2285 elm_genlist_item_display_only_set(git, EINA_TRUE);
2286 elm_genlist_item_append(gl, &itc1,
2287 (void *)5/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
2288 NULL/* func data */);
2289 elm_genlist_item_append(gl, &itc1,
2290 (void *)6/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2291 NULL/* func data */);
2292 elm_genlist_item_append(gl, &itc1,
2293 (void *)7/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
2294 NULL/* func data */);
2296 elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
2298 elm_genlist_item_append(gl, itc1,
2299 (void *)5/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
2300 NULL/* func data */);
2301 elm_genlist_item_append(gl, itc1,
2302 (void *)6/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
2303 NULL/* func data */);
2304 elm_genlist_item_append(gl, itc1,
2305 (void *)7/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
2306 NULL/* func data */);
2307 elm_genlist_item_class_free(itc1);
2308 >>>>>>> remotes/origin/upstream
2310 evas_object_smart_callback_add(gl, "expand,request", gl9_exp_req, gl);
2311 evas_object_smart_callback_add(gl, "contract,request", gl9_con_req, gl);
2312 evas_object_smart_callback_add(gl, "expanded", gl9_exp, gl);
2313 evas_object_smart_callback_add(gl, "contracted", gl9_con, gl);
2315 evas_object_resize(win, 480, 800);
2316 evas_object_show(win);
2321 static Elm_Genlist_Item_Class itc10;
2322 static char *mode_type[] = { "slide", "rotate" };
2326 >>>>>>> remotes/origin/upstream
2327 char *gl10_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
2330 if (!strcmp(part, "elm.text.mode"))
2331 snprintf(buf, sizeof(buf), "Mode # %i", (int)(long)data);
2333 snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data);
2337 Evas_Object *gl10_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
2340 Evas_Object *ic = elm_icon_add(obj);
2341 if (!strcmp(part, "elm.swallow.end"))
2342 snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
2344 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
2345 elm_icon_file_set(ic, buf, NULL);
2346 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
2352 >>>>>>> remotes/origin/upstream
2354 _gl_sel10(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2357 int v = elm_radio_value_get(data);
2360 elm_genlist_item_mode_set(event_info, mode_type[v], EINA_TRUE);
2362 elm_genlist_item_decorate_mode_set(event_info, mode_type[v], EINA_TRUE);
2363 >>>>>>> remotes/origin/upstream
2367 _my_gl_mode_right(void *data, Evas_Object *obj __UNUSED__, void *event_info)
2370 int v = elm_radio_value_get(data);
2373 elm_genlist_item_mode_set(event_info, mode_type[v], EINA_TRUE);
2375 elm_genlist_item_decorate_mode_set(event_info, mode_type[v], EINA_TRUE);
2376 >>>>>>> remotes/origin/upstream
2380 _my_gl_mode_left(void *data, Evas_Object *obj __UNUSED__, void *event_info)
2383 int v = elm_radio_value_get(data);
2386 elm_genlist_item_mode_set(event_info, mode_type[v], EINA_FALSE);
2388 elm_genlist_item_decorate_mode_set(event_info, mode_type[v], EINA_FALSE);
2389 >>>>>>> remotes/origin/upstream
2393 _my_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info __UNUSED__)
2395 fprintf(stderr, "drag\n");
2397 int v = elm_radio_value_get(data);
2399 Elm_Object_Item *it = (Elm_Object_Item *)elm_genlist_mode_item_get(obj);
2401 elm_genlist_item_mode_set(it, mode_type[v], EINA_FALSE);
2403 Elm_Object_Item *glit = (Elm_Object_Item *) elm_genlist_decorated_item_get(obj);
2404 if (glit) elm_genlist_item_decorate_mode_set(glit, mode_type[v], EINA_FALSE);
2405 >>>>>>> remotes/origin/upstream
2409 test_genlist10(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2412 Evas_Object *win, *bg, *fr, *lb, *bx, *bx2, *bx3, *rd, *rdg, *gl;
2415 win = elm_win_add(NULL, "genlist10", ELM_WIN_BASIC);
2416 elm_win_title_set(win, "Genlist Mode");
2417 elm_win_autodel_set(win, EINA_TRUE);
2419 bg = elm_bg_add(win);
2420 elm_win_resize_object_add(win, bg);
2421 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2422 evas_object_show(bg);
2425 Evas_Object *win, *fr, *lb, *bx, *bx2, *bx3, *rd, *rdg, *gl;
2428 win = elm_win_util_standard_add("genlist10", "Genlist Mode");
2429 elm_win_autodel_set(win, EINA_TRUE);
2431 >>>>>>> remotes/origin/upstream
2432 bx = elm_box_add(win);
2433 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2434 elm_win_resize_object_add(win, bx);
2435 evas_object_show(bx);
2437 fr = elm_frame_add(win);
2438 elm_object_text_set(fr, "Mode Type");
2439 elm_box_pack_end(bx, fr);
2440 evas_object_show(fr);
2442 bx2 = elm_box_add(win);
2443 elm_object_content_set(fr, bx2);
2444 evas_object_show(bx2);
2446 lb = elm_label_add(win);
2447 elm_object_text_set(lb,
2449 "Sweep genlist items to the right.<br>"
2451 "Sweep genlist items to the right.<br/>"
2452 >>>>>>> remotes/origin/upstream
2453 "Test this by changing Mode Type to Slide or Rotate.");
2454 elm_box_pack_end(bx2, lb);
2455 evas_object_show(lb);
2457 bx3 = elm_box_add(win);
2458 elm_box_horizontal_set(bx3, EINA_TRUE);
2459 elm_box_pack_end(bx2, bx3);
2460 evas_object_show(bx3);
2462 rd = elm_radio_add(win);
2463 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2464 elm_radio_state_value_set(rd, 0);
2465 elm_object_text_set(rd, "Slide ");
2466 evas_object_show(rd);
2467 elm_box_pack_end(bx3, rd);
2470 rd = elm_radio_add(win);
2471 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2472 elm_radio_state_value_set(rd, 1);
2473 elm_object_text_set(rd, "Rotate");
2474 elm_radio_group_add(rd, rdg);
2475 evas_object_show(rd);
2476 elm_box_pack_end(bx3, rd);
2478 gl = elm_genlist_add(win);
2479 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2480 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2481 evas_object_smart_callback_add(gl, "drag,start,right", _my_gl_mode_right, rdg);
2482 evas_object_smart_callback_add(gl, "drag,start,left", _my_gl_mode_left, rdg);
2483 evas_object_smart_callback_add(gl, "drag,start,up", _my_gl_mode_cancel, rdg);
2484 evas_object_smart_callback_add(gl, "drag,start,down", _my_gl_mode_cancel, rdg);
2485 evas_object_show(gl);
2487 itc10.item_style = "default";
2489 itc10.func.text_get = gl10_text_get;
2490 itc10.func.content_get = gl10_content_get;
2491 itc10.func.state_get = gl_state_get;
2492 itc10.func.del = gl_del;
2493 itc10.mode_item_style = "mode";
2495 itc10.mode_item_style = "mode";
2496 itc10.func.text_get = gl10_text_get;
2497 itc10.func.content_get = gl10_content_get;
2498 itc10.func.state_get = gl_state_get;
2499 itc10.func.del = NULL;
2500 >>>>>>> remotes/origin/upstream
2502 for (i = 0; i < 50; i++)
2503 elm_genlist_item_append(gl,
2506 (void *)(1000 + i)/* item data */,
2508 (void *)(long)(1000 + i)/* item data */,
2509 >>>>>>> remotes/origin/upstream
2511 ELM_GENLIST_ITEM_NONE/* flags */,
2512 _gl_sel10/* func */,
2513 rdg/* func data */);
2515 elm_box_pack_end(bx, gl);
2517 evas_object_resize(win, 520, 520);
2518 evas_object_show(win);
2524 _reorder_tg_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
2526 elm_genlist_reorder_mode_set(data, elm_check_state_get(obj));
2530 * gl_moved is called after an item was reordered.
2531 * This is only called when reorder mode is enabled.
2533 * @param data : the genlist object passed as data.
2534 * @param obj : the genlist object.
2535 * @param item : the moved item.
2537 * If the move_after is true,
2538 * the item(*item) had been moved after the given relative item(*rel_item) in list.
2539 * If the move_after is false,
2540 * the item(*item) had been moved before the given relative item(*rel_item) in list.
2544 static void gl_moved(Evas_Object *obj __UNUSED__, Elm_Object_Item *item __UNUSED__, Elm_Object_Item *rel_item __UNUSED__, Eina_Bool move_after __UNUSED__)
2546 static void gl_moved(Evas_Object *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Object_Item *item __UNUSED__)
2547 >>>>>>> remotes/origin/upstream
2549 // if needed, add application logic.
2553 test_genlist11(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2556 Evas_Object *win, *bg, *fr, *lb, *bx, *tg, *gl;
2559 win = elm_win_add(NULL, "genlist-reorder-mode", ELM_WIN_BASIC);
2560 elm_win_title_set(win, "Genlist Reorder Mode");
2561 elm_win_autodel_set(win, EINA_TRUE);
2563 bg = elm_bg_add(win);
2564 elm_win_resize_object_add(win, bg);
2565 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2566 evas_object_show(bg);
2569 Evas_Object *win, *fr, *lb, *bx, *tg, *gl;
2572 win = elm_win_util_standard_add("genlist-reorder-mode", "Genlist Reorder Mode");
2573 elm_win_autodel_set(win, EINA_TRUE);
2575 >>>>>>> remotes/origin/upstream
2576 bx = elm_box_add(win);
2577 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2578 elm_win_resize_object_add(win, bx);
2579 evas_object_show(bx);
2581 fr = elm_frame_add(win);
2583 elm_object_text_set(fr, "Reorder Mode");
2584 elm_box_pack_end(bx, fr);
2585 evas_object_show(fr);
2587 lb = elm_label_add(win);
2588 elm_object_text_set(lb,
2590 "Enable reorder mode if you want to move item.<br>"
2592 "Enable reorder mode if you want to move item.<br/>"
2593 >>>>>>> remotes/origin/upstream
2594 "Then long press and drag item.");
2595 elm_object_content_set(fr, lb);
2596 evas_object_show(lb);
2598 gl = elm_genlist_add(win);
2599 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2600 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2601 evas_object_show(gl);
2603 tg = elm_check_add(win);
2604 elm_object_style_set(tg, "toggle");
2605 elm_object_text_set(tg, "Reorder Mode:");
2607 elm_check_state_set(tg, elm_mirrored_get());
2609 elm_check_state_set(tg, elm_config_mirrored_get());
2610 >>>>>>> remotes/origin/upstream
2611 evas_object_smart_callback_add(tg, "changed", _reorder_tg_changed_cb, gl);
2612 elm_box_pack_end(bx, tg);
2613 evas_object_show(tg);
2616 itc1.item_style = "default";
2617 itc1.func.text_get = gl_text_get;
2618 itc1.func.content_get = gl_content_get;
2619 itc1.func.state_get = gl_state_get;
2620 itc1.func.del = gl_del;
2621 itc1.func.moved = gl_moved;
2623 for (i = 0; i < 50; i++)
2624 elm_genlist_item_append(gl,
2626 (void *)(1 + i)/* item data */,
2628 itc1 = elm_genlist_item_class_new();
2629 itc1->item_style = "default";
2630 itc1->func.text_get = gl_text_get;
2631 itc1->func.content_get = gl_content_get;
2632 itc1->func.state_get = gl_state_get;
2633 itc1->func.del = NULL;
2634 evas_object_smart_callback_add(gl, "moved", (Evas_Smart_Cb)gl_moved, gl);
2636 for (i = 0; i < 50; i++)
2637 elm_genlist_item_append(gl,
2639 (void *)(long)(1 + i)/* item data */,
2640 >>>>>>> remotes/origin/upstream
2642 ELM_GENLIST_ITEM_NONE/* flags */,
2644 NULL/* func data */);
2648 elm_genlist_item_class_free(itc1);
2650 >>>>>>> remotes/origin/upstream
2651 elm_box_pack_end(bx, gl);
2653 evas_object_resize(win, 400, 500);
2654 evas_object_show(win);
2657 char *gl12_text_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
2659 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).");
2663 test_genlist12(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2666 Evas_Object *win, *bg, *bx, *gl;
2669 win = elm_win_add(NULL, "genlist-textblock", ELM_WIN_BASIC);
2670 elm_win_title_set(win, "Genlist Textblock");
2671 elm_win_autodel_set(win, EINA_TRUE);
2673 bg = elm_bg_add(win);
2674 elm_win_resize_object_add(win, bg);
2675 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2676 evas_object_show(bg);
2679 Evas_Object *win, *bx, *gl;
2682 win = elm_win_util_standard_add("genlist-textblock", "Genlist Textblock");
2683 elm_win_autodel_set(win, EINA_TRUE);
2685 >>>>>>> remotes/origin/upstream
2686 bx = elm_box_add(win);
2687 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2688 elm_win_resize_object_add(win, bx);
2689 evas_object_show(bx);
2691 gl = elm_genlist_add(win);
2693 elm_genlist_height_for_width_mode_set(gl, EINA_TRUE);
2695 elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
2696 >>>>>>> remotes/origin/upstream
2697 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2698 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2699 elm_box_pack_end(bx, gl);
2700 evas_object_show(gl);
2703 itc1.item_style = "message";
2704 itc1.func.text_get = gl12_text_get;
2705 itc1.func.content_get = gl_content_get;
2706 itc1.func.state_get = gl_state_get;
2707 itc1.func.del = gl_del;
2709 for (i = 0; i < 1000; i++)
2711 elm_genlist_item_append(gl, &itc1,
2713 itc1->item_style = "message";
2714 itc1->func.text_get = gl12_text_get;
2715 itc1->func.content_get = gl_content_get;
2716 itc1->func.state_get = gl_state_get;
2717 itc1->func.del = NULL;
2719 for (i = 0; i < 1000; i++)
2721 elm_genlist_item_append(gl, itc1,
2722 >>>>>>> remotes/origin/upstream
2723 (void *)(long)i/* item data */,
2725 ELM_GENLIST_ITEM_NONE,
2727 (void *)(long)(i * 10)/* func data */);
2731 elm_genlist_item_class_free(itc1);
2732 >>>>>>> remotes/origin/upstream
2734 evas_object_resize(win, 400, 500);
2735 evas_object_show(win);
2741 gl13_cmp(const void *pa, const void *pb)
2743 const Elm_Object_Item *ia = pa, *ib = pb;
2744 int a = (int)(long) elm_object_item_data_get(ia);
2745 int b = (int)(long) elm_object_item_data_get(ib);
2750 test_genlist13(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2752 Elm_Object_Item *pi[6];
2753 Evas_Object *win, *bx, *gl; int i, base, idx[3] = {1, 10, 15};
2755 win = elm_win_util_standard_add("genlist-tree-insert-sorted", "Genlist Tree, Insert Sorted");
2756 elm_win_autodel_set(win, EINA_TRUE);
2758 bx = elm_box_add(win);
2759 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2760 elm_win_resize_object_add(win, bx);
2761 evas_object_show(bx);
2763 gl = elm_genlist_add(win);
2764 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2765 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2766 evas_object_show(gl);
2768 itc4.item_style = "default";
2769 itc4.func.text_get = gl4_text_get;
2770 itc4.func.content_get = NULL;
2771 itc4.func.state_get = NULL;
2772 itc4.func.del = NULL;
2774 /* mixed order to test insert sorted */
2776 for (i = 0; i < 3; i++)
2778 pi[i] = elm_genlist_item_sorted_insert
2779 (gl, &itc4, (void *)(long)idx[i]/* item data */, NULL/* parent */,
2780 ELM_GENLIST_ITEM_TREE, gl13_cmp/* cmp */,
2781 NULL/* func */, NULL/* func data */);
2784 for (i = 0, base = 100; i < 3; i++, base += 100)
2787 for (j = 0; j < 3; j++)
2789 elm_genlist_item_sorted_insert
2790 (gl, &itc4, (void *)(long)(idx[j] + base)/* item data */,
2791 pi[i]/* parent */, ELM_GENLIST_ITEM_NONE,
2792 gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
2796 for (i = 0; i < 3; i++)
2798 pi[i + 3] = elm_genlist_item_sorted_insert
2799 (gl, &itc4, (void *)(long)(idx[i] * 2)/* item data */, NULL/* parent */,
2800 ELM_GENLIST_ITEM_TREE, gl13_cmp/* cmp */, NULL/* func */,
2801 NULL/* func data */);
2805 for (i = 0, base = 10000; i < 3; i++, base += 10000)
2808 for (j = 0; j < 3; j++)
2810 elm_genlist_item_sorted_insert
2811 (gl, &itc4, (void *)(long)(idx[j] + base)/* item data */,
2812 pi[i + 3]/* parent */, ELM_GENLIST_ITEM_NONE,
2813 gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
2817 elm_box_pack_end(bx, gl);
2818 evas_object_show(bx);
2820 evas_object_resize(win, 320, 320);
2821 evas_object_show(win);
2825 my_gl_insert_before_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2827 Evas_Object *gl = data;
2828 static int i = 1000;
2829 Elm_Object_Item *gli_selected;
2831 itc1->item_style = "default";
2832 itc1->func.text_get = gl_text_get;
2833 itc1->func.content_get = NULL;
2834 itc1->func.state_get = NULL;
2835 itc1->func.del = NULL;
2837 gli_selected = elm_genlist_selected_item_get(gl);
2840 printf("no item selected\n");
2844 elm_genlist_item_insert_before(gl, itc1,
2845 (void *)(long)i/* item data */,
2846 elm_genlist_item_parent_get(gli_selected),
2847 gli_selected/* item before */,
2848 ELM_GENLIST_ITEM_NONE,
2849 NULL/* func */, NULL/* func data */);
2854 my_gl_insert_after_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2856 Evas_Object *gl = data;
2858 Elm_Object_Item *gli_selected;
2860 itc1->item_style = "default";
2861 itc1->func.text_get = gl_text_get;
2862 itc1->func.content_get = NULL;
2863 itc1->func.state_get = NULL;
2864 itc1->func.del = NULL;
2866 gli_selected = elm_genlist_selected_item_get(gl);
2869 printf("no item selected\n");
2873 elm_genlist_item_insert_after(gl, itc1,
2874 (void *)(long)i/* item data */,
2875 elm_genlist_item_parent_get(gli_selected),
2876 gli_selected/* item after */,
2877 ELM_GENLIST_ITEM_NONE,
2878 NULL/* func */, NULL/* func data */);
2883 test_genlist14(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2885 Elm_Object_Item *pi[6];
2886 Evas_Object *win, *bx, *bx2, *bt, *gl;
2888 /* index: 0, 1, 2, 3, 4, 5
2889 * items: 1, 15, 11, 2, 33, 21
2890 * final: 1, 2, 11, 15, 21, 33
2892 const int idx[6] = {1, 15, 11, 2, 33, 21};
2893 const int relative[6] = {
2894 0, /* item '1' - not used */
2895 0, /* item '15' - insert after pi[0], item '1' */
2896 -1, /* item '11' - insert before pi[1], item '15' */
2897 -2, /* item '2' - insert before pi[2], item '11' */
2898 1, /* item '33' - insert after pi[1], item '15' */
2899 -4 /* item '21' - insert before pi[4], item '33' */
2902 win = elm_win_util_standard_add("genlist-tree-insert-relative", "Genlist Tree, Insert Relative");
2903 elm_win_autodel_set(win, EINA_TRUE);
2905 bx = elm_box_add(win);
2906 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2907 elm_win_resize_object_add(win, bx);
2908 evas_object_show(bx);
2910 gl = elm_genlist_add(win);
2911 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
2912 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2913 evas_object_show(gl);
2915 itc1 = elm_genlist_item_class_new();
2917 itc4.item_style = "default";
2918 itc4.func.text_get = gl4_text_get;
2919 itc4.func.content_get = NULL;
2920 itc4.func.state_get = NULL;
2921 itc4.func.del = NULL;
2923 /* mixed order to test insert sorted */
2925 // BUG1: should be able to insert before=NULL, prepend
2926 // BUG2: should be able to insert after=NULL, append
2928 pi[0] = elm_genlist_item_append
2929 (gl, &itc4, (void *)(long)idx[0]/* item data */,
2931 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2933 for (i = 1; i < 3; i++)
2935 if (relative[i] < 0)
2936 pi[i] = elm_genlist_item_insert_before
2937 (gl, &itc4, (void *)(long)idx[i]/* item data */,
2938 NULL/* parent */, pi[-relative[i]],
2939 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2941 pi[i] = elm_genlist_item_insert_after
2942 (gl, &itc4, (void *)(long)idx[i]/* item data */,
2943 NULL/* parent */, pi[relative[i]],
2944 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2947 for (i = 0; i < 3; i++)
2949 Elm_Object_Item *sub_glit[6];
2952 base = 1000 * (int)(long) elm_object_item_data_get(pi[i]);
2954 sub_glit[0] = elm_genlist_item_append
2955 (gl, &itc4, (void *)(long) (idx[0] + base)/* item data */, pi[i]/* parent */,
2956 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2958 for (j = 1; j < 6; j++) {
2959 if (relative[j] < 0)
2960 sub_glit[j] = elm_genlist_item_insert_before
2961 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
2962 pi[i]/* parent */, sub_glit[-relative[j]],
2963 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2965 sub_glit[j] = elm_genlist_item_insert_after
2966 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
2967 pi[i]/* parent */, sub_glit[relative[j]],
2968 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2972 for (i = 3; i < 6; i++)
2974 if (relative[i] < 0)
2975 pi[i] = elm_genlist_item_insert_before
2976 (gl, &itc4, (void *)(long) idx[i]/* item data */,
2977 NULL/* parent */, pi[-relative[i]],
2978 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2980 pi[i] = elm_genlist_item_insert_after
2981 (gl, &itc4, (void *)(long) idx[i]/* item data */,
2982 NULL/* parent */, pi[relative[i]],
2983 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2986 for (i = 3; i < 6; i++)
2988 Elm_Object_Item *sub_glit[6];
2991 base = 1000 * (int)(long) elm_object_item_data_get(pi[i]);
2993 sub_glit[0] = elm_genlist_item_append
2994 (gl, &itc4, (void *)(long) (idx[0] + base)/* item data */, pi[i]/* parent */,
2995 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
2997 for (j = 1; j < 6; j++) {
2998 if (relative[j] < 0)
2999 sub_glit[j] = elm_genlist_item_insert_before
3000 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
3001 pi[i]/* parent */, sub_glit[-relative[j]],
3002 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
3004 sub_glit[j] = elm_genlist_item_insert_after
3005 (gl, &itc4, (void *)(long) (idx[j] + base)/* item data */,
3006 pi[i]/* parent */, sub_glit[relative[j]],
3007 ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
3011 elm_box_pack_end(bx, gl);
3012 evas_object_show(bx);
3014 bx2 = elm_box_add(win);
3015 elm_box_horizontal_set(bx2, EINA_TRUE);
3016 elm_box_homogeneous_set(bx2, EINA_TRUE);
3017 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
3018 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
3020 bt = elm_button_add(win);
3021 elm_object_text_set(bt, "+ before");
3022 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before_rel, gl);
3023 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
3024 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
3025 elm_box_pack_end(bx2, bt);
3026 evas_object_show(bt);
3028 bt = elm_button_add(win);
3029 elm_object_text_set(bt, "+ after");
3030 evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after_rel, gl);
3031 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
3032 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
3033 elm_box_pack_end(bx2, bt);
3034 evas_object_show(bt);
3036 elm_box_pack_end(bx, bx2);
3037 evas_object_show(bx2);
3039 /* item_class_ref is needed for itc1. some items can be added in callbacks */
3040 elm_genlist_item_class_ref(itc1);
3041 elm_genlist_item_class_free(itc1);
3043 evas_object_resize(win, 320, 320);
3044 evas_object_show(win);
3047 static void _edit_icon_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3049 Elm_Object_Item *item = (Elm_Object_Item *)data;
3050 elm_object_item_del(item);
3053 char *gl15_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
3055 const Testitem *tit = data;
3057 snprintf(buf, sizeof(buf), "Item #%i", tit->mode);
3061 Evas_Object *gl15_content_get(void *data, Evas_Object *obj, const char *part)
3063 Testitem *tit = data;
3066 // "edit_default" EDC layout is like below. each part is swallow part.
3067 // the existing item is swllowed to elm.swallow.edit.content part.
3068 // ----------------------------------------------------------------
3069 // | elm.edit.icon.1 | elm.swallow.edit.content | elm.edit.icon,2 |
3070 // ----------------------------------------------------------------
3072 if (!strcmp(part, "elm.swallow.end"))
3074 Evas_Object *ic = elm_icon_add(obj);
3075 snprintf(buf, sizeof(buf), "%s/images/bubble.png", PACKAGE_DATA_DIR);
3076 elm_icon_file_set(ic, buf, NULL);
3077 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
3080 else if (!strcmp(part, "elm.edit.icon.1"))
3083 ck = elm_check_add(obj);
3084 elm_check_state_pointer_set(ck, &tit->checked);
3085 evas_object_propagate_events_set(ck, EINA_FALSE);
3086 evas_object_show(ck);
3089 else if (!strcmp(part, "elm.edit.icon.2"))
3091 Evas_Object *icn = elm_icon_add(obj);
3092 snprintf(buf, sizeof(buf), "%s/images/icon_06.png", PACKAGE_DATA_DIR);
3093 elm_icon_file_set(icn, buf, NULL);
3094 evas_object_propagate_events_set(icn, EINA_FALSE);
3095 evas_object_size_hint_aspect_set(icn, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
3096 evas_object_smart_callback_add(icn, "clicked", _edit_icon_clicked_cb, (void *)tit->item);
3103 gl15_sel(void *data, Evas_Object *obj, void *event_info __UNUSED__)
3105 Testitem *tit = data;
3106 if (elm_genlist_decorate_mode_get(obj))
3108 if (!tit->checked) tit->checked = EINA_TRUE;
3109 else tit->checked = EINA_FALSE;
3111 elm_genlist_item_update(tit->item);
3115 gl15_edit_mode(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3117 elm_genlist_decorate_mode_set(data, EINA_TRUE);
3118 elm_genlist_select_mode_set(data, ELM_OBJECT_SELECT_MODE_ALWAYS);
3122 gl15_normal_mode(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3124 elm_genlist_decorate_mode_set(data, EINA_FALSE);
3125 elm_genlist_select_mode_set(data, ELM_OBJECT_SELECT_MODE_DEFAULT);
3128 void gl15_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
3130 printf("item deleted.\n");
3134 test_genlist15(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3136 Evas_Object *win, *bx, *bx2, *bt, *gl;
3138 static Testitem tit[100];
3140 win = elm_win_util_standard_add("genlist-edit-mode", "Genlist Edit Mode");
3141 elm_win_autodel_set(win, EINA_TRUE);
3143 bx = elm_box_add(win);
3144 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3145 elm_win_resize_object_add(win, bx);
3146 evas_object_show(bx);
3148 gl = elm_genlist_add(win);
3149 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
3150 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3151 evas_object_show(gl);
3153 itc15 = elm_genlist_item_class_new();
3154 itc15->item_style = "default";
3155 itc15->func.text_get = gl15_text_get;
3156 itc15->func.content_get = gl15_content_get;
3157 itc15->func.state_get = gl_state_get;
3158 itc15->func.del = gl15_del;
3159 itc15->edit_item_style = "edit";
3161 for (i = 0; i < 100; i++)
3164 tit[i].item = elm_genlist_item_append(gl, itc15,
3165 &(tit[i])/* item data */,
3167 ELM_GENLIST_ITEM_NONE/* flags */,
3169 (void *)(long)&(tit[i])/* func data */);
3171 elm_genlist_item_class_free(itc15);
3172 elm_box_pack_end(bx, gl);
3173 evas_object_show(bx);
3175 bx2 = elm_box_add(win);
3176 elm_box_horizontal_set(bx2, EINA_TRUE);
3177 elm_box_homogeneous_set(bx2, EINA_TRUE);
3178 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
3179 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
3181 bt = elm_button_add(win);
3182 elm_object_text_set(bt, "Edit mode");
3183 evas_object_smart_callback_add(bt, "clicked", gl15_edit_mode, gl);
3184 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
3185 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
3186 elm_box_pack_end(bx2, bt);
3187 evas_object_show(bt);
3189 bt = elm_button_add(win);
3190 elm_object_text_set(bt, "Normal mode");
3191 evas_object_smart_callback_add(bt, "clicked", gl15_normal_mode,gl);
3192 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
3193 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
3194 elm_box_pack_end(bx2, bt);
3195 evas_object_show(bt);
3197 elm_box_pack_end(bx, bx2);
3198 evas_object_show(bx2);
3200 evas_object_resize(win, 520, 520);
3201 evas_object_show(win);
3204 static void _flip_icon_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3206 const Testitem *tit = data;
3208 if (elm_genlist_item_flip_get(tit->item))
3209 elm_genlist_item_flip_set(tit->item, EINA_FALSE);
3211 elm_genlist_item_flip_set(tit->item, EINA_TRUE);
3214 char *gl16_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
3216 const Testitem *tit = data;
3218 snprintf(buf, sizeof(buf), "Item #%i", tit->mode);
3222 Evas_Object *gl16_content_get(void *data, Evas_Object *obj, const char *part)
3224 Testitem *tit = data;
3227 if (!strcmp(part, "elm.text.flip"))
3229 Evas_Object *btn = elm_button_add(obj);
3230 elm_object_text_set(btn, "flipped content placement");
3231 evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
3232 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
3233 evas_object_smart_callback_add(btn, "clicked", _flip_icon_clicked_cb, (void *)tit);
3234 evas_object_show(btn);
3237 else if (!strcmp(part, "elm.edit.icon.1"))
3239 Evas_Object *icn = elm_icon_add(obj);
3240 snprintf(buf, sizeof(buf), "%s/images/icon_04.png", PACKAGE_DATA_DIR);
3241 elm_icon_file_set(icn, buf, NULL);
3242 evas_object_propagate_events_set(icn, EINA_FALSE);
3243 evas_object_size_hint_aspect_set(icn, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
3246 else if (!strcmp(part, "elm.edit.icon.2"))
3248 Evas_Object *icn = elm_icon_add(obj);
3249 snprintf(buf, sizeof(buf), "%s/images/icon_09.png", PACKAGE_DATA_DIR);
3250 elm_icon_file_set(icn, buf, NULL);
3251 evas_object_propagate_events_set(icn, EINA_FALSE);
3252 evas_object_size_hint_aspect_set(icn, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
3253 evas_object_smart_callback_add(icn, "clicked", _flip_icon_clicked_cb, (void *)tit);
3260 test_genlist16(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3262 Evas_Object *win, *bx, *gl;
3264 static Testitem tit[100];
3266 win = elm_win_util_standard_add("genlist-flip-mode", "Genlist Flip Mode");
3267 elm_win_autodel_set(win, EINA_TRUE);
3269 bx = elm_box_add(win);
3270 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3271 elm_win_resize_object_add(win, bx);
3272 evas_object_show(bx);
3274 gl = elm_genlist_add(win);
3275 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
3276 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3277 evas_object_show(gl);
3279 /* note: flip mode can be used with/without edit mode */
3280 elm_genlist_decorate_mode_set(gl, EINA_TRUE);
3281 elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS);
3283 itc15 = elm_genlist_item_class_new();
3284 itc15->item_style = "default";
3285 itc15->func.text_get = gl16_text_get;
3286 itc15->func.content_get = gl16_content_get;
3287 itc15->func.state_get = gl_state_get;
3288 itc15->func.del = NULL;
3289 itc15->edit_item_style = "edit";
3291 for (i = 0; i < 100; i++)
3294 tit[i].item = elm_genlist_item_append(gl, itc15,
3295 &(tit[i])/* item data */,
3297 ELM_GENLIST_ITEM_NONE/* flags */,
3299 (void *)(long)&(tit[i])/* func data */);
3301 elm_genlist_item_class_free(itc15);
3302 elm_box_pack_end(bx, gl);
3303 evas_object_show(bx);
3305 evas_object_resize(win, 520, 520);
3306 evas_object_show(win);
3309 static Elm_Genlist_Item_Class itc17;
3312 gl17_sel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
3314 Elm_Object_Item *glit = event_info;
3315 int depth = elm_genlist_item_expanded_depth_get(glit);
3316 printf("expanded depth for selected item is %d\n", depth);
3320 gl17_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
3322 Elm_Object_Item *glit = event_info;
3323 Evas_Object *gl = elm_object_item_widget_get(glit);
3324 int val = (int)(long) elm_object_item_data_get(glit);
3326 elm_genlist_item_append(gl, &itc17,
3327 (void *)(long) (val + 1)/* item data */,
3329 ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3330 NULL/* func data */);
3331 elm_genlist_item_append(gl, &itc17,
3332 (void *)(long) (val + 2)/* item data */,
3334 ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3335 NULL/* func data */);
3336 elm_genlist_item_append(gl, &itc17,
3337 (void *)(long) (val + 3)/* item data */,
3339 ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3340 NULL/* func data */);
3341 elm_genlist_item_append(gl, &itc17,
3342 (void *)(long) (val + 4)/* item data */,
3344 ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3345 NULL/* func data */);
3346 elm_genlist_item_append(gl, &itc17,
3347 (void *)(long) (val + 5)/* item data */,
3349 ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3350 NULL/* func data */);
3351 elm_genlist_item_append(gl, &itc17,
3352 (void *)(long) (val + 6)/* item data */,
3354 ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3355 NULL/* func data */);
3359 gl17_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
3361 Elm_Object_Item *glit = event_info;
3362 elm_genlist_item_subitems_clear(glit);
3366 gl17_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
3368 Elm_Object_Item *glit = event_info;
3369 elm_genlist_item_expanded_set(glit, EINA_TRUE);
3373 gl17_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
3375 Elm_Object_Item *glit = event_info;
3376 elm_genlist_item_expanded_set(glit, EINA_FALSE);
3379 char *gl17_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
3382 snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
3386 Evas_Object *gl17_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
3389 if (!strcmp(part, "elm.swallow.icon"))
3391 Evas_Object *ic = elm_icon_add(obj);
3392 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
3393 elm_icon_file_set(ic, buf, NULL);
3394 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
3395 evas_object_show(ic);
3398 else if (!strcmp(part, "elm.swallow.end"))
3401 ck = elm_check_add(obj);
3402 evas_object_propagate_events_set(ck, EINA_FALSE);
3403 evas_object_show(ck);
3409 Eina_Bool gl17_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
3414 void gl17_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
3416 printf("item deleted.\n");
3420 gl17_enabled_set(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3422 elm_genlist_tree_effect_enabled_set(data, EINA_TRUE);
3426 gl17_disabled_set(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3428 elm_genlist_tree_effect_enabled_set(data, EINA_FALSE);
3432 test_genlist17(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
3434 Evas_Object *win, *gl, *bx, *bx2, *bt;
3436 win = elm_win_util_standard_add("genlist17", "Genlist Tree Effect");
3437 elm_win_autodel_set(win, EINA_TRUE);
3439 bx = elm_box_add(win);
3440 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3441 elm_win_resize_object_add(win, bx);
3442 evas_object_show(bx);
3444 gl = elm_genlist_add(win);
3445 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
3446 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3447 evas_object_show(gl);
3449 elm_genlist_tree_effect_enabled_set(gl,EINA_TRUE);
3451 itc17.item_style = "tree_effect";
3452 itc17.func.text_get = gl17_text_get;
3453 itc17.func.content_get = gl17_content_get;
3454 itc17.func.state_get = gl17_state_get;
3455 itc17.func.del = gl17_del;
3457 elm_genlist_item_append(gl, &itc17,
3458 (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3459 NULL/* func data */);
3460 elm_genlist_item_append(gl, &itc17,
3461 (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3462 NULL/* func data */);
3463 elm_genlist_item_append(gl, &itc17,
3464 (void *)3/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
3465 NULL/* func data */);
3467 evas_object_smart_callback_add(gl, "expand,request", gl17_exp_req, gl);
3468 evas_object_smart_callback_add(gl, "contract,request", gl17_con_req, gl);
3469 evas_object_smart_callback_add(gl, "expanded", gl17_exp, gl);
3470 evas_object_smart_callback_add(gl, "contracted", gl17_con, gl);
3472 elm_box_pack_end(bx, gl);
3473 evas_object_show(bx);
3475 bx2 = elm_box_add(win);
3476 elm_box_horizontal_set(bx2, EINA_TRUE);
3477 elm_box_homogeneous_set(bx2, EINA_TRUE);
3478 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
3479 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
3481 bt = elm_button_add(win);
3482 elm_object_text_set(bt, "Enable");
3483 evas_object_smart_callback_add(bt, "clicked", gl17_enabled_set, gl);
3484 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
3485 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
3486 elm_box_pack_end(bx2, bt);
3487 evas_object_show(bt);
3489 bt = elm_button_add(win);
3490 elm_object_text_set(bt, "Disable");
3491 evas_object_smart_callback_add(bt, "clicked", gl17_disabled_set, gl);
3492 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
3493 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
3494 elm_box_pack_end(bx2, bt);
3495 evas_object_show(bt);
3497 elm_box_pack_end(bx, bx2);
3498 evas_object_show(bx2);
3500 evas_object_resize(win, 320, 320);
3501 evas_object_show(win);
3503 >>>>>>> remotes/origin/upstream