1 #include <Elementary.h>
3 #include <Elementary_Cursor.h>
5 # include "elementary_config.h"
7 #ifndef ELM_LIB_QUICKLAUNCH
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_list_item_del(eina_list_data_get(eina_list_last(items)));
129 case SCROLLER_POLICY_SET_ON: /* 5 */
130 elm_list_bounce_set(li, EINA_TRUE, EINA_TRUE);
131 elm_list_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_list_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_list_item_tooltip_text_set(eina_list_data_get(eina_list_last(items)), "Tooltip set from API");
145 elm_list_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_list_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_list_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_list_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_list_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_list_bounce_set(li, EINA_TRUE, EINA_FALSE);
211 case LIST_CLEAR: /* 17 */
224 _api_bt_clicked(void *data, Evas_Object *obj, void *event_info __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 __UNUSED__,
241 void *event_info __UNUSED__)
243 elm_list_item_show(data);
247 scroll_top(void *data __UNUSED__,
248 Evas_Object *obj __UNUSED__,
249 void *event_info __UNUSED__)
251 printf("Top edge!\n");
255 scroll_bottom(void *data __UNUSED__,
256 Evas_Object *obj __UNUSED__,
257 void *event_info __UNUSED__)
259 printf("Bottom edge!\n");
263 scroll_left(void *data __UNUSED__,
264 Evas_Object *obj __UNUSED__,
265 void *event_info __UNUSED__)
267 printf("Left edge!\n");
271 scroll_right(void *data __UNUSED__,
272 Evas_Object *obj __UNUSED__,
273 void *event_info __UNUSED__)
275 printf("Right edge!\n");
279 _cleanup_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
285 test_list(void *data __UNUSED__,
286 Evas_Object *obj __UNUSED__,
287 void *event_info __UNUSED__)
289 Evas_Object *win, *bg, *li, *ic, *ic2, *bx, *tb2, *bt, *bxx;
291 Elm_Object_Item *list_it1, *list_it2, *list_it3, *list_it4, *list_it5;
292 api_data *api = calloc(1, sizeof(api_data));
294 win = elm_win_add(NULL, "list", ELM_WIN_BASIC);
295 elm_win_title_set(win, "List");
296 elm_win_autodel_set(win, EINA_TRUE);
297 evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);
299 bg = elm_bg_add(win);
300 elm_win_resize_object_add(win, bg);
301 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
302 evas_object_show(bg);
304 bxx = elm_box_add(win);
305 elm_win_resize_object_add(win, bxx);
306 evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
307 evas_object_show(bxx);
309 li = elm_list_add(win);
310 elm_list_mode_set(li, ELM_LIST_LIMIT);
311 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
312 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
315 bt = elm_button_add(win);
316 elm_object_text_set(bt, "Next API function");
317 evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api);
318 elm_box_pack_end(bxx, bt);
319 elm_object_disabled_set(bt, api->state == API_STATE_LAST);
320 evas_object_show(bt);
322 elm_box_pack_end(bxx, li);
324 ic = elm_icon_add(win);
325 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
326 elm_icon_file_set(ic, buf, NULL);
327 elm_icon_scale_set(ic, 1, 1);
328 list_it1 = elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
329 ic = elm_icon_add(win);
330 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
331 elm_icon_scale_set(ic, 0, 0);
332 elm_icon_file_set(ic, buf, NULL);
333 elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
334 ic = elm_icon_add(win);
335 elm_icon_standard_set(ic, "edit");
336 elm_icon_scale_set(ic, 0, 0);
337 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
339 ic = elm_icon_add(win);
340 elm_icon_standard_set(ic, "delete");
341 elm_icon_scale_set(ic, 0, 0);
342 ic2 = elm_icon_add(win);
343 elm_icon_standard_set(ic2, "clock");
344 elm_icon_scale_set(ic2, 0, 0);
345 list_it2 = elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
347 bx = elm_box_add(win);
348 elm_box_horizontal_set(bx, EINA_TRUE);
350 ic = elm_icon_add(win);
351 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
352 elm_icon_file_set(ic, buf, NULL);
353 elm_icon_scale_set(ic, 0, 0);
354 evas_object_size_hint_align_set(ic, 0.5, 0.5);
355 elm_box_pack_end(bx, ic);
356 evas_object_show(ic);
358 ic = elm_icon_add(win);
359 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
360 elm_icon_file_set(ic, buf, NULL);
361 elm_icon_scale_set(ic, 0, 0);
362 evas_object_size_hint_align_set(ic, 0.5, 0.0);
363 elm_box_pack_end(bx, ic);
364 evas_object_show(ic);
366 ic = elm_icon_add(win);
367 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
368 elm_icon_file_set(ic, buf, NULL);
369 elm_icon_scale_set(ic, 0, 0);
370 evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
371 elm_box_pack_end(bx, ic);
372 evas_object_show(ic);
373 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
375 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
376 list_it3 = elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
377 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
378 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
379 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
380 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
381 list_it4 = elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
382 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
383 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
384 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
385 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
386 elm_list_item_append(li, "Is this label long enough?", NULL, NULL, NULL, NULL);
387 list_it5 = elm_list_item_append(li, "Maybe this one is even longer so we can test long long items.", NULL, NULL, NULL, NULL);
391 evas_object_show(li);
393 tb2 = elm_table_add(win);
394 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
395 elm_win_resize_object_add(win, tb2);
397 bt = elm_button_add(win);
398 elm_object_text_set(bt, "Hello");
399 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it1);
400 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
401 evas_object_size_hint_align_set(bt, 0.9, 0.5);
402 elm_table_pack(tb2, bt, 0, 0, 1, 1);
403 evas_object_show(bt);
405 bt = elm_button_add(win);
406 elm_object_text_set(bt, "How");
407 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it2);
408 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
409 evas_object_size_hint_align_set(bt, 0.9, 0.5);
410 elm_table_pack(tb2, bt, 0, 1, 1, 1);
411 evas_object_show(bt);
413 bt = elm_button_add(win);
414 elm_object_text_set(bt, "doing");
415 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it3);
416 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
417 evas_object_size_hint_align_set(bt, 0.9, 0.5);
418 elm_table_pack(tb2, bt, 0, 2, 1, 1);
419 evas_object_show(bt);
421 bt = elm_button_add(win);
422 elm_object_text_set(bt, "Here");
423 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it4);
424 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
425 evas_object_size_hint_align_set(bt, 0.9, 0.5);
426 elm_table_pack(tb2, bt, 0, 3, 1, 1);
427 evas_object_show(bt);
429 bt = elm_button_add(win);
430 elm_object_text_set(bt, "Maybe this...");
431 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it5);
432 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
433 evas_object_size_hint_align_set(bt, 0.9, 0.5);
434 elm_table_pack(tb2, bt, 0, 4, 1, 1);
435 evas_object_show(bt);
437 evas_object_show(tb2);
439 evas_object_resize(win, 320, 300);
440 evas_object_show(win);
442 evas_object_smart_callback_add(li, "scroll,edge,top", scroll_top, NULL);
443 evas_object_smart_callback_add(li, "scroll,edge,bottom", scroll_bottom, NULL);
444 evas_object_smart_callback_add(li, "scroll,edge,left", scroll_left, NULL);
445 evas_object_smart_callback_add(li, "scroll,edge,right", scroll_right, NULL);
449 test_list_horizontal(void *data __UNUSED__,
450 Evas_Object *obj __UNUSED__,
451 void *event_info __UNUSED__)
453 Evas_Object *win, *bg, *li, *ic, *ic2, *bx, *tb2, *bt;
455 Elm_Object_Item *list_it1, *list_it2, *list_it3, *list_it4;
457 win = elm_win_add(NULL, "list-horizontal", ELM_WIN_BASIC);
458 elm_win_title_set(win, "List Horizontal");
459 elm_win_autodel_set(win, EINA_TRUE);
461 bg = elm_bg_add(win);
462 elm_win_resize_object_add(win, bg);
463 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
464 evas_object_show(bg);
466 li = elm_list_add(win);
467 elm_list_horizontal_set(li, EINA_TRUE);
468 elm_list_mode_set(li, ELM_LIST_LIMIT);
469 elm_win_resize_object_add(win, li);
470 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
472 ic = elm_icon_add(win);
473 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
474 elm_icon_file_set(ic, buf, NULL);
475 elm_icon_scale_set(ic, 1, 1);
476 list_it1 = elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
477 ic = elm_icon_add(win);
478 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
479 elm_icon_scale_set(ic, 0, 0);
480 elm_icon_file_set(ic, buf, NULL);
481 elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
482 ic = elm_icon_add(win);
483 elm_icon_standard_set(ic, "edit");
484 elm_icon_scale_set(ic, 0, 0);
485 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
487 ic = elm_icon_add(win);
488 elm_icon_standard_set(ic, "delete");
489 elm_icon_scale_set(ic, 0, 0);
490 ic2 = elm_icon_add(win);
491 elm_icon_standard_set(ic2, "clock");
492 elm_icon_scale_set(ic2, 0, 0);
493 list_it2 = elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
495 bx = elm_box_add(win);
497 ic = elm_icon_add(win);
498 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
499 elm_icon_file_set(ic, buf, NULL);
500 elm_icon_scale_set(ic, 0, 0);
501 evas_object_size_hint_align_set(ic, 0.5, 0.5);
502 elm_box_pack_end(bx, ic);
503 evas_object_show(ic);
505 ic = elm_icon_add(win);
506 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
507 elm_icon_file_set(ic, buf, NULL);
508 elm_icon_scale_set(ic, 0, 0);
509 evas_object_size_hint_align_set(ic, 0.5, 0.0);
510 elm_box_pack_end(bx, ic);
511 evas_object_show(ic);
513 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
515 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
516 list_it3 = elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
517 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
518 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
519 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
520 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
522 list_it4 = elm_list_item_append(li, "And", NULL, NULL, NULL, NULL);
523 elm_list_item_append(li, "here", NULL, NULL, NULL, NULL);
524 elm_list_item_append(li, "we", NULL, NULL, NULL, NULL);
525 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
526 elm_list_item_append(li, "done", NULL, NULL, NULL, NULL);
527 elm_list_item_append(li, "with", NULL, NULL, NULL, NULL);
528 elm_list_item_append(li, "items.", NULL, NULL, NULL, NULL);
532 evas_object_show(li);
534 tb2 = elm_table_add(win);
535 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
536 elm_win_resize_object_add(win, tb2);
538 bt = elm_button_add(win);
539 elm_object_text_set(bt, "Hello");
540 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it1);
541 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
542 evas_object_size_hint_align_set(bt, 0.5, 0.9);
543 elm_table_pack(tb2, bt, 0, 0, 1, 1);
544 evas_object_show(bt);
546 bt = elm_button_add(win);
547 elm_object_text_set(bt, "How");
548 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it2);
549 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
550 evas_object_size_hint_align_set(bt, 0.5, 0.9);
551 elm_table_pack(tb2, bt, 1, 0, 1, 1);
552 evas_object_show(bt);
554 bt = elm_button_add(win);
555 elm_object_text_set(bt, "doing");
556 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it3);
557 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
558 evas_object_size_hint_align_set(bt, 0.5, 0.9);
559 elm_table_pack(tb2, bt, 2, 0, 1, 1);
560 evas_object_show(bt);
562 bt = elm_button_add(win);
563 elm_object_text_set(bt, "And");
564 evas_object_smart_callback_add(bt, "clicked", my_show_it, list_it4);
565 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
566 evas_object_size_hint_align_set(bt, 0.5, 0.9);
567 elm_table_pack(tb2, bt, 3, 0, 1, 1);
568 evas_object_show(bt);
570 evas_object_show(tb2);
572 evas_object_resize(win, 320, 300);
573 evas_object_show(win);
579 my_li2_clear(void *data,
580 Evas_Object *obj __UNUSED__,
581 void *event_info __UNUSED__)
583 elm_list_clear(data);
587 my_li2_sel(void *data __UNUSED__,
589 void *event_info __UNUSED__)
591 Elm_Object_Item *list_it = elm_list_selected_item_get(obj);
592 elm_list_item_selected_set(list_it, 0);
596 test_list2(void *data __UNUSED__,
597 Evas_Object *obj __UNUSED__,
598 void *event_info __UNUSED__)
600 Evas_Object *win, *bg, *li, *ic, *ic2, *bx, *bx2, *bt;
602 Elm_Object_Item *list_it;
604 win = elm_win_add(NULL, "list2", ELM_WIN_BASIC);
605 elm_win_title_set(win, "List 2");
606 elm_win_autodel_set(win, EINA_TRUE);
608 bg = elm_bg_add(win);
609 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
610 elm_bg_file_set(bg, buf, NULL);
611 elm_win_resize_object_add(win, bg);
612 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
613 evas_object_show(bg);
615 bx = elm_box_add(win);
616 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
617 elm_win_resize_object_add(win, bx);
618 evas_object_show(bx);
620 li = elm_list_add(win);
621 evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
622 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
623 elm_list_mode_set(li, ELM_LIST_LIMIT);
624 // elm_list_multi_select_set(li, 1);
626 ic = elm_icon_add(win);
627 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
628 elm_icon_file_set(ic, buf, NULL);
629 list_it = elm_list_item_append(li, "Hello", ic, NULL, my_li2_sel, NULL);
630 elm_list_item_selected_set(list_it, EINA_TRUE);
631 ic = elm_icon_add(win);
632 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
633 elm_icon_scale_set(ic, 0, 0);
634 elm_icon_file_set(ic, buf, NULL);
635 elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
636 ic = elm_icon_add(win);
637 elm_icon_standard_set(ic, "edit");
638 elm_icon_scale_set(ic, 0, 0);
639 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
641 ic = elm_icon_add(win);
642 elm_icon_standard_set(ic, "delete");
643 elm_icon_scale_set(ic, 0, 0);
644 ic2 = elm_icon_add(win);
645 elm_icon_standard_set(ic2, "clock");
646 elm_icon_scale_set(ic2, 0, 0);
647 elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
649 bx2 = elm_box_add(win);
650 elm_box_horizontal_set(bx2, EINA_TRUE);
652 ic = elm_icon_add(win);
653 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
654 elm_icon_file_set(ic, buf, NULL);
655 elm_icon_scale_set(ic, 0, 0);
656 evas_object_size_hint_align_set(ic, 0.5, 0.5);
657 elm_box_pack_end(bx2, ic);
658 evas_object_show(ic);
660 ic = elm_icon_add(win);
661 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
662 elm_icon_file_set(ic, buf, NULL);
663 elm_icon_scale_set(ic, 0, 0);
664 evas_object_size_hint_align_set(ic, 0.5, 0.0);
665 elm_box_pack_end(bx2, ic);
666 evas_object_show(ic);
667 elm_list_item_append(li, "are", bx2, NULL, NULL, NULL);
669 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
670 elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
671 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
672 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
673 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
674 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
675 elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
676 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
677 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
678 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
679 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
680 elm_list_item_append(li, "Longer label.", NULL, NULL, NULL, NULL);
684 elm_box_pack_end(bx, li);
685 evas_object_show(li);
687 bx2 = elm_box_add(win);
688 elm_box_horizontal_set(bx2, EINA_TRUE);
689 elm_box_homogeneous_set(bx2, EINA_TRUE);
690 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
691 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
693 bt = elm_button_add(win);
694 elm_object_text_set(bt, "Clear");
695 evas_object_smart_callback_add(bt, "clicked", my_li2_clear, li);
696 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
697 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
698 elm_box_pack_end(bx2, bt);
699 evas_object_show(bt);
701 elm_box_pack_end(bx, bx2);
702 evas_object_show(bx2);
704 evas_object_resize(win, 320, 300);
705 evas_object_show(win);
711 _bt_clicked(void *data __UNUSED__,
712 Evas_Object *obj __UNUSED__,
713 void *event_info __UNUSED__)
715 printf("button was clicked\n");
719 _it_clicked(void *data __UNUSED__,
720 Evas_Object *obj __UNUSED__,
721 void *event_info __UNUSED__)
723 printf("item was clicked\n");
727 test_list3(void *data __UNUSED__,
728 Evas_Object *obj __UNUSED__,
729 void *event_info __UNUSED__)
731 Evas_Object *win, *bg, *li, *ic, *ic2, *bx;
734 win = elm_win_add(NULL, "list3", ELM_WIN_BASIC);
735 elm_win_title_set(win, "List 3");
736 elm_win_autodel_set(win, EINA_TRUE);
738 bg = elm_bg_add(win);
739 elm_win_resize_object_add(win, bg);
740 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
741 evas_object_show(bg);
743 li = elm_list_add(win);
744 elm_win_resize_object_add(win, li);
745 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
746 elm_list_mode_set(li, ELM_LIST_COMPRESS);
748 ic = elm_icon_add(win);
749 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
750 elm_icon_scale_set(ic, 0, 0);
751 elm_icon_file_set(ic, buf, NULL);
752 ic2 = elm_button_add(win);
753 elm_object_text_set(ic2, "Click me");
754 evas_object_smart_callback_add(ic2, "clicked", _bt_clicked, NULL);
755 evas_object_propagate_events_set(ic2, 0);
756 elm_list_item_append(li, "Hello", ic, ic2, _it_clicked, NULL);
758 ic = elm_icon_add(win);
759 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
760 elm_icon_scale_set(ic, 0, 0);
761 elm_icon_file_set(ic, buf, NULL);
762 ic2 = elm_button_add(win);
763 elm_object_text_set(ic2, "Click me");
764 evas_object_smart_callback_add(ic2, "clicked", _bt_clicked, NULL);
765 elm_list_item_append(li, "world", ic, ic2, _it_clicked, NULL);
767 ic = elm_icon_add(win);
768 elm_icon_standard_set(ic, "edit");
769 elm_icon_scale_set(ic, 0, 0);
770 elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
772 ic = elm_icon_add(win);
773 elm_icon_standard_set(ic, "delete");
774 elm_icon_scale_set(ic, 0, 0);
775 ic2 = elm_icon_add(win);
776 elm_icon_standard_set(ic2, "clock");
777 elm_icon_scale_set(ic2, 0, 0);
778 elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
780 bx = elm_box_add(win);
781 elm_box_horizontal_set(bx, EINA_TRUE);
783 ic = elm_icon_add(win);
784 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
785 elm_icon_file_set(ic, buf, NULL);
786 elm_icon_scale_set(ic, 0, 0);
787 evas_object_size_hint_align_set(ic, 0.5, 0.5);
788 elm_box_pack_end(bx, ic);
789 evas_object_show(ic);
791 ic = elm_icon_add(win);
792 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
793 elm_icon_file_set(ic, buf, NULL);
794 elm_icon_scale_set(ic, 0, 0);
795 evas_object_size_hint_align_set(ic, 0.5, 0.0);
796 elm_box_pack_end(bx, ic);
797 evas_object_show(ic);
799 ic = elm_icon_add(win);
800 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
801 elm_icon_file_set(ic, buf, NULL);
802 elm_icon_scale_set(ic, 0, 0);
803 evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
804 elm_box_pack_end(bx, ic);
805 evas_object_show(ic);
807 elm_list_item_append(li, "are", bx, NULL, NULL, NULL);
808 elm_list_item_append(li, "you", NULL, NULL, NULL, NULL);
809 elm_list_item_append(li, "doing", NULL, NULL, NULL, NULL);
810 elm_list_item_append(li, "out", NULL, NULL, NULL, NULL);
811 elm_list_item_append(li, "there", NULL, NULL, NULL, NULL);
812 elm_list_item_append(li, "today", NULL, NULL, NULL, NULL);
813 elm_list_item_append(li, "?", NULL, NULL, NULL, NULL);
814 elm_list_item_append(li, "Here", NULL, NULL, NULL, NULL);
815 elm_list_item_append(li, "are", NULL, NULL, NULL, NULL);
816 elm_list_item_append(li, "some", NULL, NULL, NULL, NULL);
817 elm_list_item_append(li, "more", NULL, NULL, NULL, NULL);
818 elm_list_item_append(li, "items", NULL, NULL, NULL, NULL);
819 elm_list_item_append(li, "Is this label long enough?", NULL, NULL, NULL, NULL);
820 elm_list_item_append(li, "Maybe this one is even longer so we can test long long items.", NULL, NULL, NULL, NULL);
824 evas_object_show(li);
826 evas_object_resize(win, 320, 300);
827 evas_object_show(win);
830 ///////////////////////////////////////////////////////////////////////////////////////
834 Evas_Object *naviframe, *win;
838 test_list4_back_cb(void *data,
839 Evas_Object *obj __UNUSED__,
840 void *event_info __UNUSED__)
842 struct Pginfo *info = data;
845 elm_naviframe_item_pop(info->naviframe);
849 test_list4_swipe(void *data,
850 Evas_Object *obj __UNUSED__,
853 Evas_Object *box, *entry, *button;
854 struct Pginfo *info = data;
856 if ((!event_info) || (!data)) return;
858 item_data = elm_object_item_data_get(event_info);
860 box = elm_box_add(info->win);
861 elm_box_horizontal_set(box, EINA_FALSE);
862 elm_box_homogeneous_set(box, EINA_FALSE);
863 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
864 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
865 evas_object_show(box);
867 entry = elm_entry_add(info->win);
868 elm_entry_scrollable_set(entry, EINA_TRUE);
869 elm_entry_editable_set(entry, EINA_FALSE);
870 elm_object_text_set(entry, item_data);
871 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
872 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
873 evas_object_show(entry);
875 button = elm_button_add(info->win);
876 elm_object_text_set(button, "back");
877 evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
878 evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
879 evas_object_smart_callback_add(button, "clicked", test_list4_back_cb, info);
880 evas_object_show(button);
882 elm_box_pack_start(box, entry);
883 elm_box_pack_end(box, button);
885 elm_naviframe_item_simple_push(info->naviframe, box);
889 test_list4(void *data __UNUSED__,
890 Evas_Object *obj __UNUSED__,
891 void *event_info __UNUSED__)
893 Evas_Object *win, *bg, *li, *ic, *ic2, *naviframe;
894 static struct Pginfo info = {NULL, NULL};
897 win = elm_win_add(NULL, "list4", ELM_WIN_BASIC);
898 elm_win_title_set(win, "List 4");
899 elm_win_autodel_set(win, EINA_TRUE);
902 bg = elm_bg_add(win);
903 elm_win_resize_object_add(win, bg);
904 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
905 evas_object_show(bg);
907 naviframe = elm_naviframe_add(win);
908 elm_win_resize_object_add(win, naviframe);
909 evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
910 evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
911 evas_object_show(naviframe);
912 info.naviframe = naviframe;
914 li = elm_list_add(win);
915 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
916 elm_list_mode_set(li, ELM_LIST_COMPRESS);
917 evas_object_smart_callback_add(li, "swipe", test_list4_swipe, &info);
918 elm_naviframe_item_simple_push(naviframe, li);
920 static char pf_data[] = "Pink Floyd were formed in 1965, and originally consisted of university" \
921 "students Roger Waters, Nick Mason, Richard Wright, and Syd Barrett. The group were a popular" \
922 "fixture on London's underground music scene, and under Barrett's leadership released two " \
923 "charting singles, \"Arnold Layne\" and \"See Emily Play\", and a successful debut album, " \
924 "ThePiper at the Gates of Dawn. In 1968, guitarist and singer David Gilmour joined the " \
925 "line-up. Barrett was soon removed, due to his increasingly erratic behaviour. Following " \
926 "Barrett's departure, bass player and singer Roger Waters became the band's lyricist and " \
927 "conceptual leader, with Gilmour assuming lead guitar and much of the vocals. With this " \
928 "line-up, Floyd went on to achieve worldwide critical and commercial success with the " \
929 "conceptalbums The Dark Side of the Moon, Wish You Were Here, Animals, and The Wall.";
930 ic = elm_icon_add(win);
931 snprintf(buf, sizeof(buf), "%s/images/mystrale.jpg", elm_app_data_dir_get());
932 elm_icon_scale_set(ic, 0, 0);
933 elm_icon_file_set(ic, buf, NULL);
934 elm_list_item_append(li, "Pink Floyd", ic, NULL, NULL, &pf_data);
936 static char ds_data[] = "Dire Straits were a British rock band, formed by Mark Knopfler " \
937 "(lead vocals and lead guitar), his younger brother David Knopfler (rhythm guitar and " \
938 "backing vocals), John Illsley (bass guitar and backing vocals), and Pick Withers (drums " \
939 "and percussion), and managed by Ed Bicknell, active between 1977 and 1995. Although the " \
940 "band was formed in an era when punk rock was at the forefront, Dire Straits played a more "
941 "bluesy style, albeit with a stripped-down sound that appealed to audiences weary of the " \
942 "overproduced stadium rock of the 1970s.[citation needed] In their early days, Mark and " \
943 "David requested that pub owners turn down their sound so that patrons could converse " \
944 "while the band played, an indication of their unassuming demeanor. Despite this oddly " \
945 "self-effacing approach to rock and roll, Dire Straits soon became hugely successful, with " \
946 "their first album going multi-platinum globally.";
947 ic = elm_icon_add(win);
948 snprintf(buf, sizeof(buf), "%s/images/mystrale_2.jpg", elm_app_data_dir_get());
949 elm_icon_scale_set(ic, 0, 0);
950 elm_icon_file_set(ic, buf, NULL);
951 elm_list_item_append(li, "Dire Straits", ic, NULL, NULL, &ds_data);
953 static char uh_data[] = "Uriah Heep are an English hard rock band. The band released several " \
954 "commercially successful albums in the 1970s such as Uriah Heep Live (1973), but their " \
955 "audience declined by the 1980s, to the point where they became essentially a cult band in " \
956 "the United States and United Kingdom. Uriah Heep maintain a significant following in " \
957 "Germany, the Netherlands, Scandinavia, the Balkans, Japan and Russia, where they still " \
958 "perform at stadium-sized venues.";
959 ic = elm_icon_add(win);
960 snprintf(buf, sizeof(buf), "%s/images/icon_17.png", elm_app_data_dir_get());
961 elm_icon_scale_set(ic, 1, 1);
962 elm_icon_file_set(ic, buf, NULL);
963 elm_list_item_append(li, "Uriah Heep", ic, NULL, NULL, &uh_data);
965 static char r_data[] = "Rush is a Canadian rock band formed in August 1968, in the Willowdale " \
966 "neighbourhood of Toronto, Ontario. The band is composed of bassist, keyboardist, and lead " \
967 "vocalist Geddy Lee, guitarist Alex Lifeson, and drummer and lyricist Neil Peart. The band " \
968 "and its membership went through a number of re-configurations between 1968 and 1974, " \
969 "achieving their current form when Peart replaced original drummer John Rutsey in July 1974, " \
970 "two weeks before the group's first United States tour.";
971 ic = elm_icon_add(win);
972 snprintf(buf, sizeof(buf), "%s/images/icon_21.png", elm_app_data_dir_get());
973 elm_icon_scale_set(ic, 0, 0);
974 elm_icon_file_set(ic, buf, NULL);
975 ic2 = elm_icon_add(win);
976 elm_icon_standard_set(ic2, "clock");
977 elm_icon_scale_set(ic2, 0, 0);
978 elm_list_item_append(li, "Rush", ic, ic2, NULL, &r_data);
982 evas_object_show(li);
983 evas_object_resize(win, 320, 300);
984 evas_object_show(win);
987 /////////////////////////////////////////////////////////////////////////////////////////
990 Evas_Object *win, *list;
994 test_list5_item_del(void *data,
995 Evas_Object *obj __UNUSED__,
996 void *event_info __UNUSED__)
998 elm_object_item_del(data);
1002 test_list5_swipe(void *data __UNUSED__,
1003 Evas_Object *obj __UNUSED__,
1006 Evas_Object *button;
1007 struct list5_data_cb *info = elm_object_item_data_get(event_info);
1009 if (elm_object_item_part_content_get(event_info, "end")) return;
1011 button = elm_button_add(info->win);
1012 elm_object_text_set(button, "delete");
1013 evas_object_propagate_events_set(button, 0);
1014 evas_object_smart_callback_add(button, "clicked", test_list5_item_del,
1016 elm_object_item_part_content_set(event_info, "end", button);
1020 test_list5(void *data __UNUSED__,
1021 Evas_Object *obj __UNUSED__,
1022 void *event_info __UNUSED__)
1024 Evas_Object *win, *bg, *li;
1025 static struct list5_data_cb info;
1027 win = elm_win_add(NULL, "list5", ELM_WIN_BASIC);
1028 elm_win_title_set(win, "List 5");
1029 elm_win_autodel_set(win, EINA_TRUE);
1032 bg = elm_bg_add(win);
1033 elm_win_resize_object_add(win, bg);
1034 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1035 evas_object_show(bg);
1037 li = elm_list_add(win);
1038 evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1039 elm_list_mode_set(li, ELM_LIST_COMPRESS);
1040 evas_object_smart_callback_add(li, "swipe", test_list5_swipe, NULL);
1041 elm_win_resize_object_add(win, li);
1042 evas_object_show(li);
1045 elm_list_item_append(li, "Network", NULL, NULL, NULL, &info);
1046 elm_list_item_append(li, "Audio", NULL, NULL, NULL, &info);
1049 evas_object_resize(win, 320, 300);
1050 evas_object_show(win);