Remove the APIs elm_toolbar_items_max_set/get.
[framework/uifw/elementary.git] / src / bin / test_list.c
index f3e2569..b057815 100644 (file)
@@ -1,9 +1,9 @@
-#include <Elementary.h>
 #include "test.h"
 #include <Elementary_Cursor.h>
 #ifdef HAVE_CONFIG_H
 # include "elementary_config.h"
 #endif
+#include <Elementary.h>
 #ifndef ELM_LIB_QUICKLAUNCH
 struct _api_data
 {
@@ -79,7 +79,7 @@ Scroll to end
       case ITEM_INSERT_BEFORE: /* 1 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_list_item_insert_before(li,
                         eina_list_nth(items, eina_list_count(items)-1),
@@ -93,7 +93,7 @@ Scroll to end
       case ITEM_INSERT_AFTER: /* 2 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_list_item_insert_after(li,
                         eina_list_nth(items, eina_list_count(items)-2),
@@ -107,7 +107,7 @@ Scroll to end
       case ITEM_SEPARATOR_SET: /* 3 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_list_item_separator_set(eina_list_nth(items, eina_list_count(items)-3), EINA_TRUE);
                   elm_list_item_bring_in(eina_list_nth(items, eina_list_count(items)-3));
@@ -119,7 +119,7 @@ Scroll to end
       case LIST_ITEM_DEL: /* 4 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_object_item_del(eina_list_data_get(eina_list_last(items)));
                 }
@@ -138,7 +138,7 @@ Scroll to end
       case TOOLTIP_TEXT_SET: /* 7 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_object_item_tooltip_text_set(eina_list_data_get(eina_list_last(items)), "Tooltip set from API");
                 }
@@ -149,7 +149,7 @@ Scroll to end
       case TOOLTIP_UNSET: /* 8 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_object_item_tooltip_unset(eina_list_data_get(eina_list_last(items)));
                 }
@@ -159,7 +159,7 @@ Scroll to end
       case ITEM_CURSOR_SET: /* 9 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_object_item_cursor_set(eina_list_data_get(eina_list_last(items)), ELM_CURSOR_HAND2);
                 }
@@ -169,7 +169,7 @@ Scroll to end
       case ITEM_CURSOR_STYLE_SET: /* 10 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_object_item_cursor_style_set(eina_list_data_get(eina_list_last(items)), "transparent");
                 }
@@ -179,7 +179,7 @@ Scroll to end
       case DISABLED_SET: /* 11 */
            {
               const Eina_List *items = elm_list_items_get(li);
-              if(eina_list_count(items))
+              if (eina_list_count(items))
                 {
                   elm_object_item_disabled_set(eina_list_data_get(eina_list_last(items)), EINA_TRUE);
                 }
@@ -286,21 +286,15 @@ test_list(void        *data __UNUSED__,
           Evas_Object *obj __UNUSED__,
           void        *event_info __UNUSED__)
 {
-   Evas_Object *win, *bg, *li, *ic, *ic2, *bx, *tb2, *bt, *bxx;
+   Evas_Object *win, *li, *ic, *ic2, *bx, *tb2, *bt, *bxx;
    char buf[PATH_MAX];
    Elm_Object_Item *list_it1, *list_it2, *list_it3, *list_it4, *list_it5;
    api_data *api = calloc(1, sizeof(api_data));
 
-   win = elm_win_add(NULL, "list", ELM_WIN_BASIC);
-   elm_win_title_set(win, "List");
+   win = elm_win_util_standard_add("list", "List");
    elm_win_autodel_set(win, EINA_TRUE);
    evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);
 
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_show(bg);
-
    bxx = elm_box_add(win);
    elm_win_resize_object_add(win, bxx);
    evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -324,24 +318,24 @@ test_list(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 1, 1);
+   elm_icon_resizable_set(ic, 1, 1);
    list_it1 = elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "edit");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
 
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "delete");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    ic2 = elm_icon_add(win);
    elm_icon_standard_set(ic2, "clock");
-   elm_icon_scale_set(ic2, 0, 0);
+   elm_icon_resizable_set(ic2, 0, 0);
    list_it2 = elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
 
    bx = elm_box_add(win);
@@ -350,7 +344,7 @@ test_list(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.5);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -358,7 +352,7 @@ test_list(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.0);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -366,7 +360,7 @@ test_list(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -450,19 +444,13 @@ test_list_horizontal(void        *data __UNUSED__,
                      Evas_Object *obj __UNUSED__,
                      void        *event_info __UNUSED__)
 {
-   Evas_Object *win, *bg, *li, *ic, *ic2, *bx, *tb2, *bt;
+   Evas_Object *win, *li, *ic, *ic2, *bx, *tb2, *bt;
    char buf[PATH_MAX];
    Elm_Object_Item *list_it1, *list_it2, *list_it3, *list_it4;
 
-   win = elm_win_add(NULL, "list-horizontal", ELM_WIN_BASIC);
-   elm_win_title_set(win, "List Horizontal");
+   win = elm_win_util_standard_add("list-horizontal", "List Horizontal");
    elm_win_autodel_set(win, EINA_TRUE);
 
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_show(bg);
-
    li = elm_list_add(win);
    elm_list_horizontal_set(li, EINA_TRUE);
    elm_list_mode_set(li, ELM_LIST_LIMIT);
@@ -472,24 +460,24 @@ test_list_horizontal(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 1, 1);
+   elm_icon_resizable_set(ic, 1, 1);
    list_it1 = elm_list_item_append(li, "Hello", ic, NULL, NULL, NULL);
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "edit");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
 
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "delete");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    ic2 = elm_icon_add(win);
    elm_icon_standard_set(ic2, "clock");
-   elm_icon_scale_set(ic2, 0, 0);
+   elm_icon_resizable_set(ic2, 0, 0);
    list_it2 = elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
 
    bx = elm_box_add(win);
@@ -497,7 +485,7 @@ test_list_horizontal(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.5);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -505,7 +493,7 @@ test_list_horizontal(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.0);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -630,20 +618,20 @@ test_list2(void        *data __UNUSED__,
    elm_list_item_selected_set(list_it, EINA_TRUE);
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    elm_list_item_append(li, "world", ic, NULL, NULL, NULL);
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "edit");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
 
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "delete");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    ic2 = elm_icon_add(win);
    elm_icon_standard_set(ic2, "clock");
-   elm_icon_scale_set(ic2, 0, 0);
+   elm_icon_resizable_set(ic2, 0, 0);
    elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
 
    bx2 = elm_box_add(win);
@@ -652,7 +640,7 @@ test_list2(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.5);
    elm_box_pack_end(bx2, ic);
    evas_object_show(ic);
@@ -660,7 +648,7 @@ test_list2(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.0);
    elm_box_pack_end(bx2, ic);
    evas_object_show(ic);
@@ -716,11 +704,21 @@ _bt_clicked(void        *data __UNUSED__,
 }
 
 static void
-_it_clicked(void        *data __UNUSED__,
-            Evas_Object *obj __UNUSED__,
-            void        *event_info __UNUSED__)
+_it_clicked(void *data, Evas_Object *obj __UNUSED__,
+                 void *event_info __UNUSED__)
 {
    printf("item was clicked\n");
+   if (!data) return;
+   Evas_Object *li = (Evas_Object *) data;
+   Evas_Object *lb;
+   char str[128];
+
+   Elm_Object_Item *lit = elm_list_selected_item_get(li);
+   if (!lit) return;
+   sprintf(str, "%s is selected", elm_object_item_text_get(lit));
+
+   lb = evas_object_data_get(li, "label");
+   elm_object_text_set(lb, str);
 }
 
 void
@@ -728,18 +726,12 @@ test_list3(void        *data __UNUSED__,
            Evas_Object *obj __UNUSED__,
            void        *event_info __UNUSED__)
 {
-   Evas_Object *win, *bg, *li, *ic, *ic2, *bx;
+   Evas_Object *win, *li, *ic, *ic2, *bx;
    char buf[PATH_MAX];
 
-   win = elm_win_add(NULL, "list3", ELM_WIN_BASIC);
-   elm_win_title_set(win, "List 3");
+   win = elm_win_util_standard_add("list3", "List 3");
    elm_win_autodel_set(win, EINA_TRUE);
 
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_show(bg);
-
    li = elm_list_add(win);
    elm_win_resize_object_add(win, li);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -747,7 +739,7 @@ test_list3(void        *data __UNUSED__,
 
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    ic2 = elm_button_add(win);
    elm_object_text_set(ic2, "Click me");
@@ -757,7 +749,7 @@ test_list3(void        *data __UNUSED__,
 
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    ic2 = elm_button_add(win);
    elm_object_text_set(ic2, "Click me");
@@ -766,15 +758,15 @@ test_list3(void        *data __UNUSED__,
 
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "edit");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_list_item_append(li, ".", ic, NULL, NULL, NULL);
 
    ic = elm_icon_add(win);
    elm_icon_standard_set(ic, "delete");
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    ic2 = elm_icon_add(win);
    elm_icon_standard_set(ic2, "clock");
-   elm_icon_scale_set(ic2, 0, 0);
+   elm_icon_resizable_set(ic2, 0, 0);
    elm_list_item_append(li, "How", ic, ic2, NULL, NULL);
 
    bx = elm_box_add(win);
@@ -783,7 +775,7 @@ test_list3(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.5);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -791,7 +783,7 @@ test_list3(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.5, 0.0);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -799,7 +791,7 @@ test_list3(void        *data __UNUSED__,
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
    elm_box_pack_end(bx, ic);
    evas_object_show(ic);
@@ -890,20 +882,14 @@ test_list4(void        *data __UNUSED__,
            Evas_Object *obj __UNUSED__,
            void        *event_info __UNUSED__)
 {
-   Evas_Object *win, *bg, *li, *ic, *ic2, *naviframe;
+   Evas_Object *win, *li, *ic, *ic2, *naviframe;
    static struct Pginfo info = {NULL, NULL};
    char buf[PATH_MAX];
 
-   win = elm_win_add(NULL, "list4", ELM_WIN_BASIC);
-   elm_win_title_set(win, "List 4");
+   win = elm_win_util_standard_add("list4", "List 4");
    elm_win_autodel_set(win, EINA_TRUE);
    info.win = win;
 
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_show(bg);
-
    naviframe = elm_naviframe_add(win);
    elm_win_resize_object_add(win, naviframe);
    evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -929,7 +915,7 @@ test_list4(void        *data __UNUSED__,
                            "conceptalbums The Dark Side of the Moon, Wish You Were Here, Animals, and The Wall.";
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/mystrale.jpg", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    elm_list_item_append(li, "Pink Floyd", ic, NULL, NULL, &pf_data);
 
@@ -946,7 +932,7 @@ test_list4(void        *data __UNUSED__,
                            "their first album going multi-platinum globally.";
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/mystrale_2.jpg", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    elm_list_item_append(li, "Dire Straits", ic, NULL, NULL, &ds_data);
 
@@ -958,7 +944,7 @@ test_list4(void        *data __UNUSED__,
                            "perform at stadium-sized venues.";
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/icon_17.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 1, 1);
+   elm_icon_resizable_set(ic, 1, 1);
    elm_icon_file_set(ic, buf, NULL);
    elm_list_item_append(li, "Uriah Heep", ic, NULL, NULL, &uh_data);
 
@@ -970,11 +956,11 @@ test_list4(void        *data __UNUSED__,
                           "two weeks before the group's first United States tour.";
    ic = elm_icon_add(win);
    snprintf(buf, sizeof(buf), "%s/images/icon_21.png", elm_app_data_dir_get());
-   elm_icon_scale_set(ic, 0, 0);
+   elm_icon_resizable_set(ic, 0, 0);
    elm_icon_file_set(ic, buf, NULL);
    ic2 = elm_icon_add(win);
    elm_icon_standard_set(ic2, "clock");
-   elm_icon_scale_set(ic2, 0, 0);
+   elm_icon_resizable_set(ic2, 0, 0);
    elm_list_item_append(li, "Rush", ic, ic2, NULL, &r_data);
 
    elm_list_go(li);
@@ -1021,19 +1007,13 @@ test_list5(void        *data __UNUSED__,
            Evas_Object *obj __UNUSED__,
            void        *event_info __UNUSED__)
 {
-   Evas_Object *win, *bg, *li;
+   Evas_Object *win, *li;
    static struct list5_data_cb info;
 
-   win = elm_win_add(NULL, "list5", ELM_WIN_BASIC);
-   elm_win_title_set(win, "List 5");
+   win = elm_win_util_standard_add("list5", "List 5");
    elm_win_autodel_set(win, EINA_TRUE);
    info.win = win;
 
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_show(bg);
-
    li = elm_list_add(win);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_list_mode_set(li, ELM_LIST_COMPRESS);
@@ -1050,4 +1030,149 @@ test_list5(void        *data __UNUSED__,
    evas_object_show(win);
 }
 
+static void
+_first_bt_clicked(void *data, Evas_Object *obj __UNUSED__,
+                  void *event_info __UNUSED__)
+{
+   char str[128];
+   Evas_Object *li = data, *lb;
+   Elm_Object_Item *lit = elm_list_first_item_get(li);
+   if (!lit) return;
+
+   sprintf(str, "%s is selected", elm_object_item_text_get(lit));
+   elm_list_item_bring_in(lit);
+   elm_list_item_selected_set(lit, EINA_TRUE);
+
+   lb = evas_object_data_get(li, "label");
+   elm_object_text_set(lb, str);
+}
+
+static void
+_prev_bt_clicked(void *data, Evas_Object *obj __UNUSED__,
+                 void *event_info __UNUSED__)
+{
+   char str[128];
+   Evas_Object *li = data, *lb;
+
+   Elm_Object_Item *lit = elm_list_selected_item_get(li);
+   if (!lit) return;
+   lit = elm_list_item_prev(lit);
+   if (!lit) return;
+
+   sprintf(str, "%s is selected", elm_object_item_text_get(lit));
+   elm_list_item_bring_in(lit);
+   elm_list_item_selected_set(lit, EINA_TRUE);
+
+   lb = evas_object_data_get(li, "label");
+   elm_object_text_set(lb, str);
+}
+
+static void
+_next_bt_clicked(void *data, Evas_Object *obj __UNUSED__,
+                 void *event_info __UNUSED__)
+{
+   char str[128];
+   Evas_Object *li = data, *lb;
+
+   Elm_Object_Item *lit = elm_list_selected_item_get(li);
+   if (!lit) return;
+   lit = elm_list_item_next(lit);
+   if (!lit) return;
+
+   sprintf(str, "%s is selected", elm_object_item_text_get(lit));
+   elm_list_item_bring_in(lit);
+   elm_list_item_selected_set(lit, EINA_TRUE);
+
+   lb = evas_object_data_get(li, "label");
+   elm_object_text_set(lb, str);
+}
+
+static void
+_last_bt_clicked(void *data, Evas_Object *obj __UNUSED__,
+                 void *event_info __UNUSED__)
+{
+   char str[128];
+   Evas_Object *li = data, *lb;
+   Elm_Object_Item *lit = elm_list_last_item_get(li);
+   if (!lit) return;
+
+   sprintf(str, "%s is selected", elm_object_item_text_get(lit));
+   elm_list_item_bring_in(lit);
+   elm_list_item_selected_set(lit, EINA_TRUE);
+
+   lb = evas_object_data_get(li, "label");
+   elm_object_text_set(lb, str);
+}
+
+void
+test_list6(void        *data __UNUSED__,
+           Evas_Object *obj __UNUSED__,
+           void        *event_info __UNUSED__)
+{
+   Evas_Object *win, *gd, *bt, *li, *lb;
+
+   win = elm_win_util_standard_add("list6", "List 6");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   gd = elm_grid_add(win);
+   elm_grid_size_set(gd, 100, 100);
+   elm_win_resize_object_add(win, gd);
+   evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+   li = elm_list_add(win);
+   evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_list_mode_set(li, ELM_LIST_COMPRESS);
+   elm_grid_pack(gd, li, 4, 4, 92, 72);
+   evas_object_show(li);
+
+   elm_list_item_append(li, "Eina", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Eet", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Evas", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Ecore", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Embryo", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Edje", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Efreet", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "E_dbus", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Eeze", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Expedite", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Emotion", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Ethumb", NULL, NULL, _it_clicked, li);
+   elm_list_item_append(li, "Elementary", NULL, NULL, _it_clicked, li);
+   elm_list_go(li);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "First");
+   evas_object_smart_callback_add(bt, "clicked", _first_bt_clicked, li);
+   elm_grid_pack(gd, bt, 4, 80, 20, 10);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Prev");
+   evas_object_smart_callback_add(bt, "clicked", _prev_bt_clicked, li);
+   elm_grid_pack(gd, bt, 28, 80, 20, 10);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Next");
+   evas_object_smart_callback_add(bt, "clicked", _next_bt_clicked, li);
+   elm_grid_pack(gd, bt, 52, 80, 20, 10);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Last");
+   evas_object_smart_callback_add(bt, "clicked", _last_bt_clicked, li);
+   elm_grid_pack(gd, bt, 76, 80, 20, 10);
+   evas_object_show(bt);
+
+   lb = elm_label_add(win);
+   elm_object_text_set(lb, "Nothing is selected");
+   elm_grid_pack(gd, lb, 4, 90, 92, 10);
+   evas_object_show(lb);
+
+   evas_object_data_set(li, "label", lb);
+
+   evas_object_show(gd);
+   evas_object_resize(win, 480, 480);
+   evas_object_show(win);
+}
 #endif