2 #include <Elementary_Cursor.h>
4 # include "elementary_config.h"
6 #include <Elementary.h>
10 unsigned int state; /* What state we are testing */
13 typedef struct _api_data api_data;
18 ITEM_INSERT_BEFORE, /* 1 */
19 ITEM_INSERT_AFTER, /* 2 */
20 ITEM_SEPARATOR_SET, /* 3 */
21 LIST_ITEM_DEL, /* 4 */
22 SCROLLER_POLICY_SET_ON,
23 SCROLLER_POLICY_SET_OFF, /* Back to AUTO next */
24 TOOLTIP_TEXT_SET, /* 7 */
25 TOOLTIP_UNSET, /* 8 */
26 ITEM_CURSOR_SET, /* 9 */
27 ITEM_CURSOR_STYLE_SET,
28 DISABLED_SET, /* 11 */
29 MODE_SET_COMPRESS, /* 12 */
30 MODE_SET_LIMIT, /* 13 */
31 MODE_SET_EXPAND, /* 14 */
32 HORIZONTAL_SET, /* 15 */
37 typedef enum _api_state api_state;
40 set_api_state(api_data *api)
42 /** HOW TO TEST ************************
51 5 POLICY ON, BOUNCE_SET(TRUE, TRUE)
56 9 Curosr set on last item
57 10 Cursor style set last item
63 16 VERT MODE, BOUNCE(TRUE, FALSE) try to bounce on Y-axis
65 *** HOW TO TEST ***********************/
66 Evas_Object *li = api->list;
69 { /* Put all api-changes under switch */
70 case ITEM_PREPEND: /* 0 */
72 const Eina_List *items = elm_list_items_get(li);
73 elm_list_item_prepend(li, "PREPEND", NULL, NULL, NULL, NULL);
75 elm_list_item_bring_in(eina_list_nth(items, 0));
79 case ITEM_INSERT_BEFORE: /* 1 */
81 const Eina_List *items = elm_list_items_get(li);
82 if (eina_list_count(items))
84 elm_list_item_insert_before(li,
85 eina_list_nth(items, eina_list_count(items)-1),
86 "1-before-last", NULL, NULL, NULL, NULL);
88 elm_list_item_bring_in(eina_list_data_get(eina_list_last(items)));
93 case ITEM_INSERT_AFTER: /* 2 */
95 const Eina_List *items = elm_list_items_get(li);
96 if (eina_list_count(items))
98 elm_list_item_insert_after(li,
99 eina_list_nth(items, eina_list_count(items)-2),
100 "insert-after", NULL, NULL, NULL, NULL);
102 elm_list_item_bring_in(eina_list_data_get(eina_list_last(items)));
107 case ITEM_SEPARATOR_SET: /* 3 */
109 const Eina_List *items = elm_list_items_get(li);
110 if (eina_list_count(items))
112 elm_list_item_separator_set(eina_list_nth(items, eina_list_count(items)-3), EINA_TRUE);
113 elm_list_item_bring_in(eina_list_nth(items, eina_list_count(items)-3));
119 case LIST_ITEM_DEL: /* 4 */
121 const Eina_List *items = elm_list_items_get(li);
122 if (eina_list_count(items))
124 elm_object_item_del(eina_list_data_get(eina_list_last(items)));
129 case SCROLLER_POLICY_SET_ON: /* 5 */
130 elm_scroller_bounce_set(li, EINA_TRUE, EINA_TRUE);
131 elm_scroller_policy_set(li, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
134 case SCROLLER_POLICY_SET_OFF: /* Back to AUTO next (6) */
135 elm_scroller_policy_set(li, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
138 case TOOLTIP_TEXT_SET: /* 7 */
140 const Eina_List *items = elm_list_items_get(li);
141 if (eina_list_count(items))
143 elm_object_item_tooltip_text_set(eina_list_data_get(eina_list_last(items)), "Tooltip set from API");
145 elm_scroller_policy_set(li, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO);
149 case TOOLTIP_UNSET: /* 8 */
151 const Eina_List *items = elm_list_items_get(li);
152 if (eina_list_count(items))
154 elm_object_item_tooltip_unset(eina_list_data_get(eina_list_last(items)));
159 case ITEM_CURSOR_SET: /* 9 */
161 const Eina_List *items = elm_list_items_get(li);
162 if (eina_list_count(items))
164 elm_object_item_cursor_set(eina_list_data_get(eina_list_last(items)), ELM_CURSOR_HAND2);
169 case ITEM_CURSOR_STYLE_SET: /* 10 */
171 const Eina_List *items = elm_list_items_get(li);
172 if (eina_list_count(items))
174 elm_object_item_cursor_style_set(eina_list_data_get(eina_list_last(items)), "transparent");
179 case DISABLED_SET: /* 11 */
181 const Eina_List *items = elm_list_items_get(li);
182 if (eina_list_count(items))
184 elm_object_item_disabled_set(eina_list_data_get(eina_list_last(items)), EINA_TRUE);
189 case MODE_SET_COMPRESS: /* 12 */
190 elm_list_mode_set(li, ELM_LIST_COMPRESS);
193 case MODE_SET_LIMIT: /* 13 */
194 elm_list_mode_set(li, ELM_LIST_LIMIT);
197 case MODE_SET_EXPAND: /* 14 */
198 elm_list_mode_set(li, ELM_LIST_EXPAND);
201 case HORIZONTAL_SET: /* 15 */
202 elm_list_mode_set(li, ELM_LIST_SCROLL); /* return to default mode */
203 elm_list_horizontal_set(li, EINA_TRUE);
206 case BOUNCE_SET: /* 16 */
207 elm_list_horizontal_set(li, EINA_FALSE);
208 elm_scroller_bounce_set(li, EINA_TRUE, EINA_FALSE);
211 case LIST_CLEAR: /* 17 */
224 _api_bt_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
225 { /* Will add here a SWITCH command containing code to modify test-object */
226 /* in accordance a->state value. */
230 printf("clicked event on API Button: api_state=<%d>\n", a->state);
233 sprintf(str, "Next API function (%u)", a->state);
234 elm_object_text_set(obj, str);
235 elm_object_disabled_set(obj, a->state == API_STATE_LAST);
239 my_show_it(void *data,
240 Evas_Object *obj EINA_UNUSED,
241 void *event_info EINA_UNUSED)
243 elm_list_item_show(data);
247 scroll_top(void *data EINA_UNUSED,
248 Evas_Object *obj EINA_UNUSED,
249 void *event_info EINA_UNUSED)
251 printf("Top edge!\n");
255 scroll_bottom(void *data EINA_UNUSED,
256 Evas_Object *obj EINA_UNUSED,
257 void *event_info EINA_UNUSED)
259 printf("Bottom edge!\n");
263 scroll_left(void *data EINA_UNUSED,
264 Evas_Object *obj EINA_UNUSED,
265 void *event_info EINA_UNUSED)
267 printf("Left edge!\n");
271 scroll_right(void *data EINA_UNUSED,
272 Evas_Object *obj EINA_UNUSED,
273 void *event_info EINA_UNUSED)
275 printf("Right edge!\n");
279 _cleanup_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
280 void *event_info EINA_UNUSED)
286 test_list(void *data EINA_UNUSED,
287 Evas_Object *obj EINA_UNUSED,
288 void *event_info EINA_UNUSED)
290 Evas_Object *win, *li, *ic, *ic2, *bx, *tb2, *bt, *bxx;
292 Elm_Object_Item *list_it1, *list_it2, *list_it3, *list_it4, *list_it5;
293 api_data *api = calloc(1, sizeof(api_data));
295 win = elm_win_util_standard_add("list", "List");
296 elm_win_autodel_set(win, EINA_TRUE);
297 evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);
299 bxx = elm_box_add(win);
300 evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
301 elm_win_resize_object_add(win, bxx);
302 evas_object_show(bxx);
304 li = elm_list_add(win);
305 elm_list_mode_set(li, ELM_LIST_LIMIT);
306 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
307 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
310 bt = elm_button_add(win);
311 elm_object_text_set(bt, "Next API function");
312 evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api);
313 elm_box_pack_end(bxx, bt);
314 elm_object_disabled_set(bt, api->state == API_STATE_LAST);
315 evas_object_show(bt);
317 elm_box_pack_end(bxx, li);
319 ic = elm_icon_add(win);
320 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
321 elm_image_file_set(ic, buf, NULL);
322 list_it1 = elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
323 ic = elm_icon_add(win);
324 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
325 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
326 elm_image_file_set(ic, buf, NULL);
327 elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
328 ic = elm_icon_add(win);
329 elm_icon_standard_set(ic, "edit");
330 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
331 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
333 ic = elm_icon_add(win);
334 elm_icon_standard_set(ic, "delete");
335 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
336 ic2 = elm_icon_add(win);
337 elm_icon_standard_set(ic2, "clock");
338 elm_image_resizable_set(ic2, EINA_FALSE, EINA_FALSE);
339 list_it2 = elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
341 bx = elm_box_add(win);
342 elm_box_horizontal_set(bx, EINA_TRUE);
344 ic = elm_icon_add(win);
345 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
346 elm_image_file_set(ic, buf, NULL);
347 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
348 evas_object_size_hint_align_set(ic, 0.5, 0.5);
349 elm_box_pack_end(bx, ic);
350 evas_object_show(ic);
352 ic = elm_icon_add(win);
353 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
354 elm_image_file_set(ic, buf, NULL);
355 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
356 evas_object_size_hint_align_set(ic, 0.5, 0.0);
357 elm_box_pack_end(bx, ic);
358 evas_object_show(ic);
360 ic = elm_icon_add(win);
361 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
362 elm_image_file_set(ic, buf, NULL);
363 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
364 evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
365 elm_box_pack_end(bx, ic);
366 evas_object_show(ic);
367 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
369 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
370 list_it3 = elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
371 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
372 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
373 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
374 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
375 list_it4 = elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
376 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
377 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
378 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
379 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
380 elm_list_item_append(li, "Is this label long enough?", NULL, NULL, NULL, NULL);
381 list_it5 = elm_list_item_append(li, "Maybe this one is even longer so we can test long long items.", NULL, NULL, NULL, NULL);
385 evas_object_show(li);
387 tb2 = elm_table_add(win);
388 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
389 elm_win_resize_object_add(win, tb2);
391 bt = elm_button_add(win);
392 elm_object_text_set(bt, "Hello");
393 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it1);
394 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
395 evas_object_size_hint_align_set(bt, 0.9, 0.5);
396 elm_table_pack(tb2, bt, 0, 0, 1, 1);
397 evas_object_show(bt);
399 bt = elm_button_add(win);
400 elm_object_text_set(bt, "How");
401 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it2);
402 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
403 evas_object_size_hint_align_set(bt, 0.9, 0.5);
404 elm_table_pack(tb2, bt, 0, 1, 1, 1);
405 evas_object_show(bt);
407 bt = elm_button_add(win);
408 elm_object_text_set(bt, "doing");
409 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it3);
410 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
411 evas_object_size_hint_align_set(bt, 0.9, 0.5);
412 elm_table_pack(tb2, bt, 0, 2, 1, 1);
413 evas_object_show(bt);
415 bt = elm_button_add(win);
416 elm_object_text_set(bt, "Here");
417 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it4);
418 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
419 evas_object_size_hint_align_set(bt, 0.9, 0.5);
420 elm_table_pack(tb2, bt, 0, 3, 1, 1);
421 evas_object_show(bt);
423 bt = elm_button_add(win);
424 elm_object_text_set(bt, "Maybe this...");
425 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it5);
426 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
427 evas_object_size_hint_align_set(bt, 0.9, 0.5);
428 elm_table_pack(tb2, bt, 0, 4, 1, 1);
429 evas_object_show(bt);
431 evas_object_show(tb2);
433 evas_object_resize(win, 320, 300);
434 evas_object_show(win);
436 evas_object_smart_callback_add(li, "edge,top", scroll_top, NULL);
437 evas_object_smart_callback_add(li, "edge,bottom", scroll_bottom, NULL);
441 test_list_horizontal(void *data EINA_UNUSED,
442 Evas_Object *obj EINA_UNUSED,
443 void *event_info EINA_UNUSED)
445 Evas_Object *win, *li, *ic, *ic2, *bx, *tb2, *bt;
447 Elm_Object_Item *list_it1, *list_it2, *list_it3, *list_it4;
449 win = elm_win_util_standard_add("list-horizontal", "List Horizontal");
450 elm_win_autodel_set(win, EINA_TRUE);
452 li = elm_list_add(win);
453 elm_list_horizontal_set(li, EINA_TRUE);
454 elm_list_mode_set(li, ELM_LIST_LIMIT);
455 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
456 elm_win_resize_object_add(win, li);
458 evas_object_smart_callback_add(li, "edge,left", scroll_left, NULL);
459 evas_object_smart_callback_add(li, "edge,right", scroll_right, NULL);
461 ic = elm_icon_add(win);
462 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
463 elm_image_file_set(ic, buf, NULL);
464 list_it1 = elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
465 ic = elm_icon_add(win);
466 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
467 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
468 elm_image_file_set(ic, buf, NULL);
469 elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
470 ic = elm_icon_add(win);
471 elm_icon_standard_set(ic, "edit");
472 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
473 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
475 ic = elm_icon_add(win);
476 elm_icon_standard_set(ic, "delete");
477 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
478 ic2 = elm_icon_add(win);
479 elm_icon_standard_set(ic2, "clock");
480 elm_image_resizable_set(ic2, EINA_FALSE, EINA_FALSE);
481 list_it2 = elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
483 bx = elm_box_add(win);
485 ic = elm_icon_add(win);
486 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
487 elm_image_file_set(ic, buf, NULL);
488 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
489 evas_object_size_hint_align_set(ic, 0.5, 0.5);
490 elm_box_pack_end(bx, ic);
491 evas_object_show(ic);
493 ic = elm_icon_add(win);
494 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
495 elm_image_file_set(ic, buf, NULL);
496 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
497 evas_object_size_hint_align_set(ic, 0.5, 0.0);
498 elm_box_pack_end(bx, ic);
499 evas_object_show(ic);
501 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
503 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
504 list_it3 = elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
505 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
506 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
507 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
508 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
510 list_it4 = elm_list_item_append(li, "And", NULL, NULL, NULL, NULL);
511 elm_list_item_append(li, "here", NULL, NULL, NULL, NULL);
512 elm_list_item_append(li, "we", NULL, NULL, NULL, NULL);
513 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
514 elm_list_item_append(li, "done", NULL, NULL, NULL, NULL);
515 elm_object_item_disabled_set(elm_list_item_append(li, "with", NULL, NULL, NULL, NULL), EINA_TRUE);
516 elm_object_item_disabled_set(elm_list_item_append(li, "items.", NULL, NULL, NULL, NULL), EINA_TRUE);
520 evas_object_show(li);
522 tb2 = elm_table_add(win);
523 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
524 elm_win_resize_object_add(win, tb2);
526 bt = elm_button_add(win);
527 elm_object_text_set(bt, "Hello");
528 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it1);
529 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
530 evas_object_size_hint_align_set(bt, 0.5, 0.9);
531 elm_table_pack(tb2, bt, 0, 0, 1, 1);
532 evas_object_show(bt);
534 bt = elm_button_add(win);
535 elm_object_text_set(bt, "How");
536 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it2);
537 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
538 evas_object_size_hint_align_set(bt, 0.5, 0.9);
539 elm_table_pack(tb2, bt, 1, 0, 1, 1);
540 evas_object_show(bt);
542 bt = elm_button_add(win);
543 elm_object_text_set(bt, "doing");
544 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it3);
545 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
546 evas_object_size_hint_align_set(bt, 0.5, 0.9);
547 elm_table_pack(tb2, bt, 2, 0, 1, 1);
548 evas_object_show(bt);
550 bt = elm_button_add(win);
551 elm_object_text_set(bt, "And");
552 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it4);
553 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
554 evas_object_size_hint_align_set(bt, 0.5, 0.9);
555 elm_table_pack(tb2, bt, 3, 0, 1, 1);
556 evas_object_show(bt);
558 evas_object_show(tb2);
560 evas_object_resize(win, 320, 300);
561 evas_object_show(win);
567 my_li2_clear(void *data,
568 Evas_Object *obj EINA_UNUSED,
569 void *event_info EINA_UNUSED)
571 elm_list_clear(data);
575 my_li2_sel(void *data EINA_UNUSED,
577 void *event_info EINA_UNUSED)
579 Elm_Object_Item *list_it = elm_list_selected_item_get(obj);
580 elm_list_item_selected_set(list_it, EINA_FALSE);
581 printf("item selected\n");
585 test_list2(void *data EINA_UNUSED,
586 Evas_Object *obj EINA_UNUSED,
587 void *event_info EINA_UNUSED)
589 Evas_Object *win, *bg, *li, *ic, *ic2, *bx, *bx2, *bt;
591 Elm_Object_Item *list_it;
593 win = elm_win_add(NULL, "list2", ELM_WIN_BASIC);
594 elm_win_title_set(win, "List 2");
595 elm_win_autodel_set(win, EINA_TRUE);
597 bg = elm_bg_add(win);
598 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
599 elm_bg_file_set(bg, buf, NULL);
600 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
601 elm_win_resize_object_add(win, bg);
602 evas_object_show(bg);
604 bx = elm_box_add(win);
605 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
606 elm_win_resize_object_add(win, bx);
607 evas_object_show(bx);
609 li = elm_list_add(bx);
610 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
611 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
612 elm_list_mode_set(li, ELM_LIST_LIMIT);
614 ic = elm_icon_add(win);
615 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
616 elm_image_file_set(ic, buf, NULL);
617 elm_list_item_append(li, "Unselect on selected", ic, NULL, my_li2_sel, NULL);
619 ic = elm_icon_add(win);
620 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
621 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
622 elm_image_file_set(ic, buf, NULL);
623 list_it = elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
624 elm_list_item_selected_set(list_it, EINA_TRUE);
626 ic = elm_icon_add(win);
627 elm_icon_standard_set(ic, "edit");
628 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
629 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
631 ic = elm_icon_add(win);
632 elm_icon_standard_set(ic, "delete");
633 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
634 ic2 = elm_icon_add(win);
635 elm_icon_standard_set(ic2, "clock");
636 elm_image_resizable_set(ic2, EINA_FALSE, EINA_FALSE);
637 elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
639 bx2 = elm_box_add(win);
640 elm_box_horizontal_set(bx2, EINA_TRUE);
642 ic = elm_icon_add(win);
643 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
644 elm_image_file_set(ic, buf, NULL);
645 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
646 evas_object_size_hint_align_set(ic, 0.5, 0.5);
647 elm_box_pack_end(bx2, ic);
648 evas_object_show(ic);
650 ic = elm_icon_add(win);
651 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
652 elm_image_file_set(ic, buf, NULL);
653 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
654 evas_object_size_hint_align_set(ic, 0.5, 0.0);
655 elm_box_pack_end(bx2, ic);
656 evas_object_show(ic);
657 elm_list_item_append(li, "are", bx2, NULL, NULL, NULL);
659 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
660 elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
661 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
662 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
663 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
664 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
665 elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
666 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
667 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
668 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
669 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
670 elm_list_item_append(li, "Longer label.", NULL, NULL, NULL, NULL);
674 elm_box_pack_end(bx, li);
675 evas_object_show(li);
677 bt = elm_button_add(bx);
678 elm_object_text_set(bt, "Clear");
679 evas_object_smart_callback_add(bt, "clicked", my_li2_clear, li);
680 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
681 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
682 elm_box_pack_end(bx, bt);
683 evas_object_show(bt);
685 evas_object_resize(win, 320, 500);
686 evas_object_show(win);
692 _bt_clicked(void *data EINA_UNUSED,
693 Evas_Object *obj EINA_UNUSED,
694 void *event_info EINA_UNUSED)
696 printf("button was clicked\n");
700 _it_clicked(void *data, Evas_Object *obj EINA_UNUSED,
701 void *event_info EINA_UNUSED)
703 printf("item was clicked\n");
705 Evas_Object *li = data;
709 Elm_Object_Item *lit = elm_list_selected_item_get(li);
711 sprintf(str, "%s is selected", elm_object_item_text_get(lit));
713 lb = evas_object_data_get(li, "label");
714 elm_object_text_set(lb, str);
718 test_list3(void *data EINA_UNUSED,
719 Evas_Object *obj EINA_UNUSED,
720 void *event_info EINA_UNUSED)
722 Evas_Object *win, *li, *ic, *ic2, *bx;
725 win = elm_win_util_standard_add("list3", "List 3");
726 elm_win_autodel_set(win, EINA_TRUE);
728 li = elm_list_add(win);
729 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
730 elm_win_resize_object_add(win, li);
731 elm_list_mode_set(li, ELM_LIST_COMPRESS);
733 ic = elm_icon_add(win);
734 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
735 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
736 elm_image_file_set(ic, buf, NULL);
737 ic2 = elm_button_add(win);
738 elm_object_text_set(ic2, "Click me");
739 evas_object_smart_callback_add(ic2, "clicked", _bt_clicked, NULL);
740 evas_object_propagate_events_set(ic2, EINA_FALSE);
741 elm_list_item_append(li, "Hello", ic, ic2, _it_clicked, NULL);
743 ic = elm_icon_add(win);
744 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
745 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
746 elm_image_file_set(ic, buf, NULL);
747 ic2 = elm_button_add(win);
748 elm_object_text_set(ic2, "Click me");
749 evas_object_smart_callback_add(ic2, "clicked", _bt_clicked, NULL);
750 elm_list_item_append(li, "world", ic, ic2, _it_clicked, NULL);
752 ic = elm_icon_add(win);
753 elm_icon_standard_set(ic, "edit");
754 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
755 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
757 ic = elm_icon_add(win);
758 elm_icon_standard_set(ic, "delete");
759 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
760 ic2 = elm_icon_add(win);
761 elm_icon_standard_set(ic2, "clock");
762 elm_image_resizable_set(ic2, EINA_FALSE, EINA_FALSE);
763 elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
765 bx = elm_box_add(win);
766 elm_box_horizontal_set(bx, EINA_TRUE);
768 ic = elm_icon_add(win);
769 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
770 elm_image_file_set(ic, buf, NULL);
771 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
772 evas_object_size_hint_align_set(ic, 0.5, 0.5);
773 elm_box_pack_end(bx, ic);
774 evas_object_show(ic);
776 ic = elm_icon_add(win);
777 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
778 elm_image_file_set(ic, buf, NULL);
779 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
780 evas_object_size_hint_align_set(ic, 0.5, 0.0);
781 elm_box_pack_end(bx, ic);
782 evas_object_show(ic);
784 ic = elm_icon_add(win);
785 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
786 elm_image_file_set(ic, buf, NULL);
787 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
788 evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
789 elm_box_pack_end(bx, ic);
790 evas_object_show(ic);
792 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
793 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
794 elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
795 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
796 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
797 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
798 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
799 elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
800 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
801 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
802 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
803 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
804 elm_list_item_append(li, "Is this label long enough?", NULL, NULL, NULL, NULL);
805 elm_list_item_append(li, "Maybe this one is even longer so we can test long long items.", NULL, NULL, NULL, NULL);
809 evas_object_show(li);
811 evas_object_resize(win, 320, 300);
812 evas_object_show(win);
815 ///////////////////////////////////////////////////////////////////////////////////////
819 Evas_Object *naviframe, *win;
823 test_list4_back_cb(void *data,
824 Evas_Object *obj EINA_UNUSED,
825 void *event_info EINA_UNUSED)
827 struct Pginfo *info = data;
830 elm_naviframe_item_pop(info->naviframe);
834 test_list4_swipe(void *data,
835 Evas_Object *obj EINA_UNUSED,
838 Evas_Object *box, *entry, *button;
839 struct Pginfo *info = data;
841 if ((!event_info) || (!data)) return;
843 item_data = elm_object_item_data_get(event_info);
845 box = elm_box_add(info->win);
846 elm_box_horizontal_set(box, EINA_FALSE);
847 elm_box_homogeneous_set(box, EINA_FALSE);
848 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
849 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
850 evas_object_show(box);
852 entry = elm_entry_add(info->win);
853 elm_entry_scrollable_set(entry, EINA_TRUE);
854 elm_entry_editable_set(entry, EINA_FALSE);
855 elm_object_text_set(entry, item_data);
856 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
857 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
858 evas_object_show(entry);
860 button = elm_button_add(info->win);
861 elm_object_text_set(button, "back");
862 evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
863 evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
864 evas_object_smart_callback_add(button, "clicked", test_list4_back_cb, info);
865 evas_object_show(button);
867 elm_box_pack_start(box, entry);
868 elm_box_pack_end(box, button);
870 elm_naviframe_item_simple_push(info->naviframe, box);
874 test_list4(void *data EINA_UNUSED,
875 Evas_Object *obj EINA_UNUSED,
876 void *event_info EINA_UNUSED)
878 Evas_Object *win, *li, *ic, *ic2, *naviframe;
879 static struct Pginfo info = {NULL, NULL};
882 win = elm_win_util_standard_add("list4", "List 4");
883 elm_win_autodel_set(win, EINA_TRUE);
886 naviframe = elm_naviframe_add(win);
887 evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
888 elm_win_resize_object_add(win, naviframe);
889 evas_object_show(naviframe);
890 info.naviframe = naviframe;
892 li = elm_list_add(win);
893 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
894 elm_list_mode_set(li, ELM_LIST_COMPRESS);
895 evas_object_smart_callback_add(li, "swipe", test_list4_swipe, &info);
896 elm_naviframe_item_simple_push(naviframe, li);
898 static char pf_data[] = "Pink Floyd were formed in 1965, and originally consisted of university" \
899 "students Roger Waters, Nick Mason, Richard Wright, and Syd Barrett. The group were a popular" \
900 "fixture on London's underground music scene, and under Barrett's leadership released two " \
901 "charting singles, \"Arnold Layne\" and \"See Emily Play\", and a successful debut album, " \
902 "ThePiper at the Gates of Dawn. In 1968, guitarist and singer David Gilmour joined the " \
903 "line-up. Barrett was soon removed, due to his increasingly erratic behaviour. Following " \
904 "Barrett's departure, bass player and singer Roger Waters became the band's lyricist and " \
905 "conceptual leader, with Gilmour assuming lead guitar and much of the vocals. With this " \
906 "line-up, Floyd went on to achieve worldwide critical and commercial success with the " \
907 "conceptalbums The Dark Side of the Moon, Wish You Were Here, Animals, and The Wall.";
908 ic = elm_icon_add(win);
909 snprintf(buf, sizeof(buf), "%s/images/mystrale.jpg", elm_app_data_dir_get());
910 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
911 elm_image_file_set(ic, buf, NULL);
912 elm_list_item_append(li, "Pink Floyd", ic, NULL, NULL, &pf_data);
914 static char ds_data[] = "Dire Straits were a British rock band, formed by Mark Knopfler " \
915 "(lead vocals and lead guitar), his younger brother David Knopfler (rhythm guitar and " \
916 "backing vocals), John Illsley (bass guitar and backing vocals), and Pick Withers (drums " \
917 "and percussion), and managed by Ed Bicknell, active between 1977 and 1995. Although the " \
918 "band was formed in an era when punk rock was at the forefront, Dire Straits played a more "
919 "bluesy style, albeit with a stripped-down sound that appealed to audiences weary of the " \
920 "overproduced stadium rock of the 1970s.[citation needed] In their early days, Mark and " \
921 "David requested that pub owners turn down their sound so that patrons could converse " \
922 "while the band played, an indication of their unassuming demeanor. Despite this oddly " \
923 "self-effacing approach to rock and roll, Dire Straits soon became hugely successful, with " \
924 "their first album going multi-platinum globally.";
925 ic = elm_icon_add(win);
926 snprintf(buf, sizeof(buf), "%s/images/mystrale_2.jpg", elm_app_data_dir_get());
927 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
928 elm_image_file_set(ic, buf, NULL);
929 elm_list_item_append(li, "Dire Straits", ic, NULL, NULL, &ds_data);
931 static char uh_data[] = "Uriah Heep are an English hard rock band. The band released several " \
932 "commercially successful albums in the 1970s such as Uriah Heep Live (1973), but their " \
933 "audience declined by the 1980s, to the point where they became essentially a cult band in " \
934 "the United States and United Kingdom. Uriah Heep maintain a significant following in " \
935 "Germany, the Netherlands, Scandinavia, the Balkans, Japan and Russia, where they still " \
936 "perform at stadium-sized venues.";
937 ic = elm_icon_add(win);
938 snprintf(buf, sizeof(buf), "%s/images/icon_17.png", elm_app_data_dir_get());
939 elm_image_file_set(ic, buf, NULL);
940 elm_list_item_append(li, "Uriah Heep", ic, NULL, NULL, &uh_data);
942 static char r_data[] = "Rush is a Canadian rock band formed in August 1968, in the Willowdale " \
943 "neighbourhood of Toronto, Ontario. The band is composed of bassist, keyboardist, and lead " \
944 "vocalist Geddy Lee, guitarist Alex Lifeson, and drummer and lyricist Neil Peart. The band " \
945 "and its membership went through a number of re-configurations between 1968 and 1974, " \
946 "achieving their current form when Peart replaced original drummer John Rutsey in July 1974, " \
947 "two weeks before the group's first United States tour.";
948 ic = elm_icon_add(win);
949 snprintf(buf, sizeof(buf), "%s/images/icon_21.png", elm_app_data_dir_get());
950 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
951 elm_image_file_set(ic, buf, NULL);
952 ic2 = elm_icon_add(win);
953 elm_icon_standard_set(ic2, "clock");
954 elm_image_resizable_set(ic2, EINA_FALSE, EINA_FALSE);
955 elm_list_item_append(li, "Rush", ic, ic2, NULL, &r_data);
959 evas_object_show(li);
960 evas_object_resize(win, 320, 300);
961 evas_object_show(win);
964 /////////////////////////////////////////////////////////////////////////////////////////
967 Evas_Object *win, *list;
971 test_list5_item_del(void *data,
972 Evas_Object *obj EINA_UNUSED,
973 void *event_info EINA_UNUSED)
975 elm_object_item_del(data);
979 test_list5_swipe(void *data EINA_UNUSED,
980 Evas_Object *obj EINA_UNUSED,
984 struct list5_data_cb *info = elm_object_item_data_get(event_info);
986 if (elm_object_item_part_content_get(event_info, "end")) return;
988 button = elm_button_add(info->win);
989 elm_object_text_set(button, "delete");
990 evas_object_propagate_events_set(button, EINA_FALSE);
991 evas_object_smart_callback_add(button, "clicked", test_list5_item_del,
993 elm_object_item_part_content_set(event_info, "end", button);
994 elm_object_item_part_text_set(event_info, "default", "Enlightenment");
998 test_list5(void *data EINA_UNUSED,
999 Evas_Object *obj EINA_UNUSED,
1000 void *event_info EINA_UNUSED)
1002 Evas_Object *win, *li;
1003 static struct list5_data_cb info;
1005 win = elm_win_util_standard_add("list5", "List 5");
1006 elm_win_autodel_set(win, EINA_TRUE);
1009 li = elm_list_add(win);
1010 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1011 elm_list_mode_set(li, ELM_LIST_COMPRESS);
1012 evas_object_smart_callback_add(li, "swipe", test_list5_swipe, NULL);
1013 elm_win_resize_object_add(win, li);
1014 evas_object_show(li);
1017 elm_list_item_append(li, "Network", NULL, NULL, NULL, &info);
1018 elm_list_item_append(li, "Audio", NULL, NULL, NULL, &info);
1021 evas_object_resize(win, 320, 300);
1022 evas_object_show(win);
1026 _first_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED,
1027 void *event_info EINA_UNUSED)
1030 Evas_Object *li = data, *lb;
1031 Elm_Object_Item *lit = elm_list_first_item_get(li);
1034 sprintf(str, "%s is selected", elm_object_item_text_get(lit));
1035 elm_list_item_bring_in(lit);
1036 elm_list_item_selected_set(lit, EINA_TRUE);
1038 lb = evas_object_data_get(li, "label");
1039 elm_object_text_set(lb, str);
1043 _prev_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED,
1044 void *event_info EINA_UNUSED)
1047 Evas_Object *li = data, *lb;
1049 Elm_Object_Item *lit = elm_list_selected_item_get(li);
1051 lit = elm_list_item_prev(lit);
1054 sprintf(str, "%s is selected", elm_object_item_text_get(lit));
1055 elm_list_item_bring_in(lit);
1056 elm_list_item_selected_set(lit, EINA_TRUE);
1058 lb = evas_object_data_get(li, "label");
1059 elm_object_text_set(lb, str);
1063 _next_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED,
1064 void *event_info EINA_UNUSED)
1067 Evas_Object *li = data, *lb;
1069 Elm_Object_Item *lit = elm_list_selected_item_get(li);
1071 lit = elm_list_item_next(lit);
1074 sprintf(str, "%s is selected", elm_object_item_text_get(lit));
1075 elm_list_item_bring_in(lit);
1076 elm_list_item_selected_set(lit, EINA_TRUE);
1078 lb = evas_object_data_get(li, "label");
1079 elm_object_text_set(lb, str);
1083 _last_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED,
1084 void *event_info EINA_UNUSED)
1087 Evas_Object *li = data, *lb;
1088 Elm_Object_Item *lit = elm_list_last_item_get(li);
1091 sprintf(str, "%s is selected", elm_object_item_text_get(lit));
1092 elm_list_item_bring_in(lit);
1093 elm_list_item_selected_set(lit, EINA_TRUE);
1095 lb = evas_object_data_get(li, "label");
1096 elm_object_text_set(lb, str);
1100 test_list6(void *data EINA_UNUSED,
1101 Evas_Object *obj EINA_UNUSED,
1102 void *event_info EINA_UNUSED)
1104 Evas_Object *win, *gd, *bt, *li, *lb;
1106 win = elm_win_util_standard_add("list6", "List 6");
1107 elm_win_autodel_set(win, EINA_TRUE);
1109 gd = elm_grid_add(win);
1110 elm_grid_size_set(gd, 100, 100);
1111 evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1112 elm_win_resize_object_add(win, gd);
1114 li = elm_list_add(win);
1115 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1116 elm_list_mode_set(li, ELM_LIST_COMPRESS);
1117 elm_grid_pack(gd, li, 4, 4, 92, 72);
1118 evas_object_show(li);
1120 elm_list_item_append(li, "Eina", NULL, NULL, _it_clicked, li);
1121 elm_list_item_append(li, "Eet", NULL, NULL, _it_clicked, li);
1122 elm_list_item_append(li, "Evas", NULL, NULL, _it_clicked, li);
1123 elm_list_item_append(li, "Ecore", NULL, NULL, _it_clicked, li);
1124 elm_list_item_append(li, "Embryo", NULL, NULL, _it_clicked, li);
1125 elm_list_item_append(li, "Edje", NULL, NULL, _it_clicked, li);
1126 elm_list_item_append(li, "Efreet", NULL, NULL, _it_clicked, li);
1127 elm_list_item_append(li, "E_dbus", NULL, NULL, _it_clicked, li);
1128 elm_list_item_append(li, "Eeze", NULL, NULL, _it_clicked, li);
1129 elm_list_item_append(li, "Expedite", NULL, NULL, _it_clicked, li);
1130 elm_list_item_append(li, "Emotion", NULL, NULL, _it_clicked, li);
1131 elm_list_item_append(li, "Ethumb", NULL, NULL, _it_clicked, li);
1132 elm_list_item_append(li, "Elementary", NULL, NULL, _it_clicked, li);
1135 bt = elm_button_add(win);
1136 elm_object_text_set(bt, "First");
1137 evas_object_smart_callback_add(bt, "clicked", _first_bt_clicked, li);
1138 elm_grid_pack(gd, bt, 4, 80, 20, 10);
1139 evas_object_show(bt);
1141 bt = elm_button_add(win);
1142 elm_object_text_set(bt, "Prev");
1143 evas_object_smart_callback_add(bt, "clicked", _prev_bt_clicked, li);
1144 elm_grid_pack(gd, bt, 28, 80, 20, 10);
1145 evas_object_show(bt);
1147 bt = elm_button_add(win);
1148 elm_object_text_set(bt, "Next");
1149 evas_object_smart_callback_add(bt, "clicked", _next_bt_clicked, li);
1150 elm_grid_pack(gd, bt, 52, 80, 20, 10);
1151 evas_object_show(bt);
1153 bt = elm_button_add(win);
1154 elm_object_text_set(bt, "Last");
1155 evas_object_smart_callback_add(bt, "clicked", _last_bt_clicked, li);
1156 elm_grid_pack(gd, bt, 76, 80, 20, 10);
1157 evas_object_show(bt);
1159 lb = elm_label_add(win);
1160 elm_object_text_set(lb, "Nothing is selected");
1161 elm_grid_pack(gd, lb, 4, 90, 92, 10);
1162 evas_object_show(lb);
1164 evas_object_data_set(li, "label", lb);
1166 evas_object_show(gd);
1167 evas_object_resize(win, 480, 480);
1168 evas_object_show(win);
1172 _it_clicked_cb(void *data EINA_UNUSED, Evas_Object *li,
1173 void *event_info EINA_UNUSED)
1175 Elm_Object_Item *lit = elm_list_selected_item_get(li);
1176 printf("Item clicked. %s is selected\n", elm_object_item_text_get(lit));
1180 test_list7(void *data EINA_UNUSED,
1181 Evas_Object *obj EINA_UNUSED,
1182 void *event_info EINA_UNUSED)
1184 Evas_Object *win, *bg, *li;
1187 win = elm_win_add(NULL, "list7", ELM_WIN_BASIC);
1188 elm_win_title_set(win, "List Always Select Mode");
1189 elm_win_autodel_set(win, EINA_TRUE);
1191 bg = elm_bg_add(win);
1192 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
1193 elm_bg_file_set(bg, buf, NULL);
1194 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1195 elm_win_resize_object_add(win, bg);
1196 evas_object_show(bg);
1198 li = elm_list_add(win);
1199 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1200 elm_win_resize_object_add(win, li);
1201 elm_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_ALWAYS);
1203 elm_list_item_append(li, "Items", NULL, NULL, _it_clicked_cb, NULL);
1204 elm_list_item_append(li, "callbacks", NULL, NULL, _it_clicked_cb, NULL);
1205 elm_list_item_append(li, "should be called", NULL, NULL, _it_clicked_cb,
1207 elm_list_item_append(li, "only once, each time", NULL, NULL, _it_clicked_cb,
1209 elm_list_item_append(li, "an item is clicked.", NULL, NULL, _it_clicked_cb,
1211 elm_list_item_append(li, "Including already", NULL, NULL, _it_clicked_cb,
1213 elm_list_item_append(li, "selected ones.", NULL, NULL, _it_clicked_cb, NULL);
1216 evas_object_show(li);
1218 evas_object_resize(win, 320, 300);
1219 evas_object_show(win);
1222 static const unsigned _list_focus_objects = 5;
1223 static const char *_list_focus_names[] = {"None", "Square", "Button", "Check", "Box"};
1224 static const int _list_focus_combo[] = { 1, 0, 2, 33, 43, 44, 10, 30, 22, 11, 10, -1 };
1226 static Evas_Object *
1227 test_list_focus_content_get(Evas_Object *obj, unsigned type, Eina_Bool horiz)
1229 Evas_Object *cnt = NULL;
1234 cnt = elm_bg_add(obj);
1235 evas_object_color_set(cnt, 128, 18, 128, 255);
1236 evas_object_size_hint_min_set(cnt, 50, 50);
1239 cnt = elm_button_add(obj);
1242 cnt = elm_check_add(obj);
1245 cnt = elm_box_add(obj);
1246 elm_box_horizontal_set(cnt, !horiz);
1247 evas_object_size_hint_align_set(cnt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1248 elm_box_pack_end(cnt, test_list_focus_content_get(obj, 2, horiz));
1249 elm_box_pack_end(cnt, test_list_focus_content_get(obj, 3, horiz));
1250 elm_box_pack_end(cnt, test_list_focus_content_get(obj, 2, horiz));
1259 evas_object_size_hint_weight_set(cnt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1260 evas_object_show(cnt);
1267 test_list_focus_focus_on_selection_set(Evas_Object *gl,
1268 Evas_Object *chk, Eina_Bool focus)
1270 elm_list_focus_on_selection_set(gl, focus);
1271 elm_check_state_set(chk, focus);
1272 printf("list_focus_on_selection = %s\n", (focus) ? "true" : "false");
1276 test_list_focus_focus_check_changed(void *data, Evas_Object *obj,
1277 void *event_info EINA_UNUSED)
1279 Eina_Bool nextstate = !elm_list_focus_on_selection_get(data);
1280 test_list_focus_focus_on_selection_set(data, obj, nextstate);
1284 test_list_focus_focus_highlight_check_changed(void *data, Evas_Object *obj,
1285 void *event_info EINA_UNUSED)
1287 elm_win_focus_highlight_enabled_set((Evas_Object *)data,
1288 elm_check_state_get(obj));
1292 test_list_focus_focus_animate_check_changed(void *data, Evas_Object *obj,
1293 void *event_info EINA_UNUSED)
1295 elm_win_focus_highlight_animate_set((Evas_Object *)data,
1296 elm_check_state_get(obj));
1300 test_list_focus_focus_move_policy_changed(void *data EINA_UNUSED,
1302 void *event_info EINA_UNUSED)
1304 int val = elm_radio_value_get(obj);
1307 elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_CLICK);
1309 elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_IN);
1313 test_list_focus_item_loop_enable_check_changed(void *data, Evas_Object *obj,
1314 void *event_info EINA_UNUSED)
1316 Evas_Object *li = data;
1317 elm_object_scroll_item_loop_enabled_set(li, elm_check_state_get(obj));
1321 _item_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
1323 printf("%s: %p\n", (char *)data, event_info);
1327 _list_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
1328 Evas_Object *obj EINA_UNUSED, void *event_info)
1330 Evas_Event_Key_Down *ev = event_info;
1331 printf("\n=== Key Down : %s ===\n", ev->keyname);
1334 static Ecore_Timer *timer = NULL;
1336 _test_list_focus_win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
1337 Evas_Object *obj EINA_UNUSED,
1338 void *event_info EINA_UNUSED)
1340 ecore_timer_del(timer);
1345 _focus_timer_cb(void *data)
1347 elm_object_item_focus_set(data, EINA_TRUE);
1350 return ECORE_CALLBACK_CANCEL;
1354 _select_timer_cb(void *data)
1356 elm_list_item_selected_set(data, EINA_TRUE);
1359 return ECORE_CALLBACK_CANCEL;
1363 _focus_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
1364 void *event_info EINA_UNUSED)
1366 ecore_timer_del(timer);
1367 timer = ecore_timer_add(1.5, _focus_timer_cb, data);
1371 _sel_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
1372 void *event_info EINA_UNUSED)
1374 ecore_timer_del(timer);
1375 timer = ecore_timer_add(1.5, _select_timer_cb, data);
1379 _dis_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
1380 void *event_info EINA_UNUSED)
1382 elm_object_item_disabled_set(data, EINA_TRUE);
1386 _focus_button_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
1387 void *event_info EINA_UNUSED)
1389 printf("Button clicked: %s\n", (char *)data);
1393 _test_list_focus(const char *name, const char *title, Eina_Bool horiz)
1395 Evas_Object *win, *li, *btn, *bx, *bx2, *fr, *bx_opt, *chk, *bx_btn;
1396 Evas_Object *btn_focus, *btn_sel, *btn_dis, *bx_mv, *rd, *rdg;
1397 unsigned int lhand, rhand, idx;
1399 Elm_Object_Item *it = NULL, *it_0 = NULL, *it_3 = NULL;
1401 win = elm_win_util_standard_add(name, title);
1402 elm_win_autodel_set(win, EINA_TRUE);
1403 evas_object_event_callback_add(win, EVAS_CALLBACK_DEL,
1404 _test_list_focus_win_del_cb, NULL);
1406 elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
1407 elm_win_focus_highlight_animate_set(win, EINA_TRUE);
1409 bx = elm_box_add(win);
1410 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1411 elm_win_resize_object_add(win, bx);
1412 evas_object_show(bx);
1414 btn = elm_button_add(bx);
1415 elm_object_text_set(btn, "Up");
1416 elm_box_pack_end(bx, btn);
1417 evas_object_smart_callback_add(btn, "clicked",
1418 _focus_button_clicked_cb, "Up");
1419 evas_object_show(btn);
1421 bx2 = elm_box_add(bx);
1422 elm_box_horizontal_set(bx2, EINA_TRUE);
1423 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1424 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1425 elm_box_pack_end(bx, bx2);
1426 evas_object_show(bx2);
1428 btn = elm_button_add(bx2);
1429 elm_object_text_set(btn, "Left");
1430 elm_box_pack_end(bx2, btn);
1431 evas_object_smart_callback_add(btn, "clicked",
1432 _focus_button_clicked_cb, "Left");
1433 evas_object_show(btn);
1435 li = elm_list_add(win);
1436 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1437 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
1438 elm_list_horizontal_set(li, horiz);
1439 elm_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_ALWAYS);
1440 elm_box_pack_end(bx2, li);
1441 evas_object_show(li);
1442 evas_object_smart_callback_add(li, "item,focused", _item_cb, "item,focused");
1443 evas_object_smart_callback_add(li, "item,unfocused", _item_cb, "item,unfocused");
1444 evas_object_smart_callback_add(li, "selected", _item_cb, "selected");
1445 evas_object_smart_callback_add(li, "unselected", _item_cb, "unselected");
1446 evas_object_smart_callback_add(li, "activated", _item_cb, "activated");
1447 evas_object_smart_callback_add(li, "highlighted", _item_cb, "highlighted");
1448 evas_object_smart_callback_add(li, "unhighlighted", _item_cb, "unhighlighted");
1449 evas_object_event_callback_add(li, EVAS_CALLBACK_KEY_DOWN, _list_key_down_cb, NULL);
1451 btn = elm_button_add(bx2);
1452 elm_object_text_set(btn, "Right");
1453 elm_box_pack_end(bx2, btn);
1454 evas_object_smart_callback_add(btn, "clicked",
1455 _focus_button_clicked_cb, "Right");
1456 evas_object_show(btn);
1458 btn = elm_button_add(bx);
1459 elm_object_text_set(btn, "Down");
1460 elm_box_pack_end(bx, btn);
1461 evas_object_smart_callback_add(btn, "clicked",
1462 _focus_button_clicked_cb, "Down");
1463 evas_object_show(btn);
1466 fr = elm_frame_add(bx);
1467 elm_object_text_set(fr, "Options");
1468 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0);
1469 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
1470 elm_box_pack_end(bx, fr);
1471 evas_object_show(fr);
1473 bx_opt = elm_box_add(fr);
1474 elm_box_horizontal_set(bx_opt, EINA_TRUE);
1475 elm_object_content_set(fr, bx_opt);
1476 evas_object_show(bx_opt);
1478 chk = elm_check_add(bx_opt);
1479 elm_object_text_set(chk, "Focus Highlight");
1480 elm_check_state_set(chk, EINA_TRUE);
1481 evas_object_size_hint_weight_set(chk, EVAS_HINT_EXPAND, 0.0);
1482 evas_object_smart_callback_add(chk, "changed",
1483 test_list_focus_focus_highlight_check_changed,
1485 elm_box_pack_end(bx_opt, chk);
1486 evas_object_show(chk);
1488 chk = elm_check_add(bx_opt);
1489 elm_object_text_set(chk, "Focus Animation");
1490 elm_check_state_set(chk, EINA_TRUE);
1491 evas_object_size_hint_weight_set(chk, EVAS_HINT_EXPAND, 0.0);
1492 evas_object_smart_callback_add(chk, "changed",
1493 test_list_focus_focus_animate_check_changed,
1495 elm_box_pack_end(bx_opt, chk);
1496 evas_object_show(chk);
1498 chk = elm_check_add(bx_opt);
1499 elm_object_text_set(chk, "Focus on selection");
1500 evas_object_size_hint_weight_set(chk, EVAS_HINT_EXPAND, 0.0);
1501 evas_object_smart_callback_add(chk, "changed",
1502 test_list_focus_focus_check_changed, li);
1503 elm_box_pack_end(bx_opt, chk);
1504 evas_object_show(chk);
1506 test_list_focus_focus_on_selection_set(li, chk, EINA_FALSE);
1508 chk = elm_check_add(bx_opt);
1509 elm_object_text_set(chk, "Item Looping Enable");
1510 elm_check_state_set(chk, elm_object_scroll_item_loop_enabled_get(li));
1511 evas_object_size_hint_weight_set(chk, EVAS_HINT_EXPAND, 0.0);
1512 evas_object_smart_callback_add(chk, "changed",
1513 test_list_focus_item_loop_enable_check_changed,
1515 elm_box_pack_end(bx_opt, chk);
1516 evas_object_show(chk);
1518 elm_box_pack_end(bx, bx_opt);
1519 // Focus Movement Policy
1520 fr = elm_frame_add(bx);
1521 elm_object_text_set(fr, "Focus Movement Policy");
1522 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0);
1523 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
1524 elm_box_pack_end(bx, fr);
1525 evas_object_show(fr);
1527 bx_mv = elm_box_add(fr);
1528 elm_box_horizontal_set(bx_mv, EINA_TRUE);
1529 elm_object_content_set(fr, bx_mv);
1530 evas_object_show(bx_mv);
1532 rdg = rd = elm_radio_add(bx_mv);
1533 elm_object_text_set(rd, "Focus Move by Click");
1534 elm_radio_state_value_set(rd, 0);
1535 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
1536 evas_object_smart_callback_add(rd, "changed",
1537 test_list_focus_focus_move_policy_changed,
1539 elm_box_pack_end(bx_mv, rd);
1540 evas_object_show(rd);
1542 rd = elm_radio_add(bx_mv);
1543 elm_object_text_set(rd, "Focus Move by Mouse-In");
1544 elm_radio_group_add(rd, rdg);
1545 elm_radio_state_value_set(rd, 1);
1546 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
1547 evas_object_smart_callback_add(rd, "changed",
1548 test_list_focus_focus_move_policy_changed,
1550 elm_box_pack_end(bx_mv, rd);
1551 evas_object_show(rd);
1554 fr = elm_frame_add(bx);
1555 elm_object_text_set(fr, "Focus/Selection");
1556 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0);
1557 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
1558 elm_box_pack_end(bx, fr);
1559 evas_object_show(fr);
1561 bx_btn = elm_box_add(fr);
1562 elm_object_content_set(fr, bx_btn);
1563 evas_object_show(bx_btn);
1565 btn_focus = elm_button_add(bx_btn);
1566 elm_object_text_set(btn_focus, "Focus 3rd Item after 1.5 seconds.");
1567 evas_object_size_hint_weight_set(btn_focus, 0.0, EVAS_HINT_EXPAND);
1568 evas_object_size_hint_align_set(btn_focus, EVAS_HINT_FILL, EVAS_HINT_FILL);
1569 elm_box_pack_end(bx_btn, btn_focus);
1570 evas_object_show(btn_focus);
1572 btn_sel = elm_button_add(bx_btn);
1573 elm_object_text_set(btn_sel, "Select 3rd Item after 1.5 seconds.");
1574 evas_object_size_hint_weight_set(btn_sel, 0.0, EVAS_HINT_EXPAND);
1575 evas_object_size_hint_align_set(btn_sel, EVAS_HINT_FILL, EVAS_HINT_FILL);
1576 elm_box_pack_end(bx_btn, btn_sel);
1577 evas_object_show(btn_sel);
1579 btn_dis = elm_button_add(bx_btn);
1580 elm_object_text_set(btn_dis, "Disable 1st Item.");
1581 evas_object_size_hint_weight_set(btn_dis, 0.0, EVAS_HINT_EXPAND);
1582 evas_object_size_hint_align_set(btn_dis, EVAS_HINT_FILL, EVAS_HINT_FILL);
1583 elm_box_pack_end(bx_btn, btn_dis);
1584 evas_object_show(btn_dis);
1586 for (idx = 0; _list_focus_combo[idx] >= 0; idx++)
1588 lhand = _list_focus_combo[idx] / 10;
1589 rhand = _list_focus_combo[idx] % 10;
1591 if (lhand > 4) lhand = 4;
1592 if (rhand > 4) rhand = 4;
1593 snprintf(buf, sizeof(buf), " %s / %s ",
1594 _list_focus_names[lhand],
1595 _list_focus_names[rhand]);
1597 it = elm_list_item_append(li, buf,
1598 test_list_focus_content_get(li, lhand, horiz),
1599 test_list_focus_content_get(li, rhand, horiz),
1604 elm_object_item_disabled_set(it, EINA_TRUE);
1609 evas_object_smart_callback_add(btn_focus, "clicked", _focus_btn_cb, it_3);
1610 evas_object_smart_callback_add(btn_sel, "clicked", _sel_btn_cb, it_3);
1611 evas_object_smart_callback_add(btn_dis, "clicked", _dis_btn_cb, it_0);
1614 evas_object_show(li);
1616 evas_object_resize(win, 420, 600);
1617 evas_object_show(win);
1621 test_list_focus(void *data EINA_UNUSED,
1622 Evas_Object *obj EINA_UNUSED,
1623 void *event_info EINA_UNUSED)
1625 _test_list_focus("list-focus", "List Focus", EINA_FALSE);
1629 test_list_horiz_focus(void *data EINA_UNUSED,
1630 Evas_Object *obj EINA_UNUSED,
1631 void *event_info EINA_UNUSED)
1633 _test_list_focus("list-focus-horizontal", "List Focus Horizontal", EINA_TRUE);
1637 test_list_separator(void *data EINA_UNUSED,
1638 Evas_Object *obj EINA_UNUSED,
1639 void *event_info EINA_UNUSED)
1641 Evas_Object *win, *li, *ic, *ic2, *bx, *bxx;
1643 Elm_Object_Item *list_it_sep;
1645 win = elm_win_util_standard_add("list", "List Separator");
1646 elm_win_autodel_set(win, EINA_TRUE);
1648 bxx = elm_box_add(win);
1649 evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1650 elm_win_resize_object_add(win, bxx);
1651 evas_object_show(bxx);
1653 li = elm_list_add(win);
1654 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1655 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
1656 elm_box_pack_end(bxx, li);
1658 ic = elm_icon_add(win);
1659 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1660 elm_image_file_set(ic, buf, NULL);
1661 elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
1663 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1664 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1666 ic = elm_icon_add(win);
1667 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1668 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
1669 elm_image_file_set(ic, buf, NULL);
1670 elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
1672 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1673 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1675 ic = elm_icon_add(win);
1676 elm_icon_standard_set(ic, "edit");
1677 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
1678 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
1680 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1681 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1683 ic = elm_icon_add(win);
1684 elm_icon_standard_set(ic, "delete");
1685 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
1686 ic2 = elm_icon_add(win);
1687 elm_icon_standard_set(ic2, "clock");
1688 elm_image_resizable_set(ic2, EINA_FALSE, EINA_FALSE);
1689 elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
1691 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1692 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1694 bx = elm_box_add(win);
1695 elm_box_horizontal_set(bx, EINA_TRUE);
1697 ic = elm_icon_add(win);
1698 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1699 elm_image_file_set(ic, buf, NULL);
1700 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
1701 evas_object_size_hint_align_set(ic, 0.5, 0.5);
1702 elm_box_pack_end(bx, ic);
1703 evas_object_show(ic);
1705 ic = elm_icon_add(win);
1706 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1707 elm_image_file_set(ic, buf, NULL);
1708 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
1709 evas_object_size_hint_align_set(ic, 0.5, 0.0);
1710 elm_box_pack_end(bx, ic);
1711 evas_object_show(ic);
1713 ic = elm_icon_add(win);
1714 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
1715 elm_image_file_set(ic, buf, NULL);
1716 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
1717 evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
1718 elm_box_pack_end(bx, ic);
1719 evas_object_show(ic);
1720 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
1722 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1723 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1725 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
1727 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1728 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1730 elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
1732 list_it_sep = elm_list_item_append(li, NULL, NULL, NULL, NULL, NULL);
1733 elm_list_item_separator_set(list_it_sep, EINA_TRUE);
1735 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
1739 evas_object_show(li);
1741 evas_object_resize(win, 320, 300);
1742 evas_object_show(win);
1747 typedef struct _List_Multi_Data List_Multi_Data;
1748 struct _List_Multi_Data
1756 _multi_select_changed_cb(void *data, Evas_Object *obj,
1757 void *event_info EINA_UNUSED)
1759 Eina_Bool multi = elm_check_state_get(obj);
1760 List_Multi_Data *ld = data;
1763 elm_list_multi_select_set(ld->list, multi);
1764 elm_object_disabled_set(ld->rd1, !multi);
1765 elm_object_disabled_set(ld->rd2, !multi);
1769 _multi_select_mode_changed_cb(void *data, Evas_Object *obj,
1770 void *event_info EINA_UNUSED)
1772 elm_list_multi_select_mode_set(data, elm_radio_value_get(obj));
1776 _multi_select_frame_create(Evas_Object *bx, List_Multi_Data *ld)
1778 Evas_Object *fr, *bx2, *bx3, *tg, *rd, *rdg;
1781 fr = elm_frame_add(bx);
1782 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0);
1783 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 0.5);
1784 elm_object_text_set(fr, "Multi Select Option");
1785 elm_box_pack_end(bx, fr);
1786 evas_object_show(fr);
1788 bx2 = elm_box_add(fr);
1789 elm_object_content_set(fr, bx2);
1790 evas_object_show(bx2);
1792 tg = elm_check_add(bx2);
1793 elm_object_style_set(tg, "toggle");
1794 elm_object_text_set(tg, "Multi Select Mode");
1795 elm_box_pack_end(bx2, tg);
1796 evas_object_show(tg);
1798 bx3 = elm_box_add(bx2);
1799 elm_box_horizontal_set(bx3, EINA_TRUE);
1800 elm_box_pack_end(bx2, bx3);
1801 evas_object_show(bx3);
1803 ld->rd1 = rdg = rd = elm_radio_add(bx3);
1804 elm_radio_state_value_set(rd, ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT);
1805 elm_object_text_set(rd, "Default Mode");
1806 elm_box_pack_end(bx3, rd);
1807 evas_object_show(rd);
1808 elm_object_disabled_set(rd, EINA_TRUE);
1809 evas_object_smart_callback_add(rd, "changed",
1810 _multi_select_mode_changed_cb, ld->list);
1812 ld->rd2 = rd = elm_radio_add(bx3);
1813 elm_radio_state_value_set(rd, ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL);
1814 elm_radio_group_add(rd, rdg);
1815 elm_object_text_set(rd, "With Control Mode");
1816 elm_box_pack_end(bx3, rd);
1817 evas_object_show(rd);
1818 elm_object_disabled_set(rd, EINA_TRUE);
1819 evas_object_smart_callback_add(rd, "changed",
1820 _multi_select_mode_changed_cb, ld->list);
1822 evas_object_smart_callback_add(tg, "changed",
1823 _multi_select_changed_cb, ld);
1827 test_list_multi_select(void *data EINA_UNUSED,
1828 Evas_Object *obj EINA_UNUSED,
1829 void *event_info EINA_UNUSED)
1831 Evas_Object *win, *li, *bx;
1832 List_Multi_Data *ld = calloc(1, sizeof(List_Multi_Data));
1834 win = elm_win_util_standard_add("list-multi-select", "List Multi Select");
1835 elm_win_autodel_set(win, EINA_TRUE);
1836 evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, ld);
1838 bx = elm_box_add(win);
1839 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1840 elm_win_resize_object_add(win, bx);
1841 evas_object_show(bx);
1843 ld->list = li = elm_list_add(bx);
1844 _multi_select_frame_create(bx, ld);
1846 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1847 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
1848 elm_box_pack_end(bx, li);
1849 evas_object_show(li);
1851 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
1852 elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
1853 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
1854 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
1855 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
1856 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
1857 elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
1858 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
1859 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
1860 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
1861 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
1862 elm_list_item_append(li, "Longer label.", NULL, NULL, NULL, NULL);
1866 evas_object_resize(win, 320, 500);
1867 evas_object_show(win);