+
+///////////////////////////////////////////////////////////////////////////////////////
+
+struct Pginfo
+{
+ Evas_Object *naviframe, *win;
+};
+
+static void
+test_list4_back_cb(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ struct Pginfo *info = data;
+ if (!info) return;
+
+ elm_naviframe_item_pop(info->naviframe);
+}
+
+static void
+test_list4_swipe(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info)
+{
+ Evas_Object *box, *entry, *button;
+ struct Pginfo *info = data;
+ char *item_data;
+ if ((!event_info) || (!data)) return;
+
+ item_data = elm_object_item_data_get(event_info);
+
+ box = elm_box_add(info->win);
+ elm_box_horizontal_set(box, EINA_FALSE);
+ elm_box_homogeneous_set(box, EINA_FALSE);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+
+ entry = elm_entry_add(info->win);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_entry_editable_set(entry, EINA_FALSE);
+ elm_object_text_set(entry, item_data);
+ evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(entry);
+
+ button = elm_button_add(info->win);
+ elm_object_text_set(button, "back");
+ evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
+ evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
+ evas_object_smart_callback_add(button, "clicked", test_list4_back_cb, info);
+ evas_object_show(button);
+
+ elm_box_pack_start(box, entry);
+ elm_box_pack_end(box, button);
+
+ elm_naviframe_item_simple_push(info->naviframe, box);
+}
+
+void
+test_list4(void *data __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ Evas_Object *win, *li, *ic, *ic2, *naviframe;
+ static struct Pginfo info = {NULL, NULL};
+ char buf[PATH_MAX];
+
+ win = elm_win_util_standard_add("list4", "List 4");
+ elm_win_autodel_set(win, EINA_TRUE);
+ info.win = win;
+
+ 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);
+ evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(naviframe);
+ info.naviframe = naviframe;
+
+ 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);
+ evas_object_smart_callback_add(li, "swipe", test_list4_swipe, &info);
+ elm_naviframe_item_simple_push(naviframe, li);
+
+ static char pf_data[] = "Pink Floyd were formed in 1965, and originally consisted of university" \
+ "students Roger Waters, Nick Mason, Richard Wright, and Syd Barrett. The group were a popular" \
+ "fixture on London's underground music scene, and under Barrett's leadership released two " \
+ "charting singles, \"Arnold Layne\" and \"See Emily Play\", and a successful debut album, " \
+ "ThePiper at the Gates of Dawn. In 1968, guitarist and singer David Gilmour joined the " \
+ "line-up. Barrett was soon removed, due to his increasingly erratic behaviour. Following " \
+ "Barrett's departure, bass player and singer Roger Waters became the band's lyricist and " \
+ "conceptual leader, with Gilmour assuming lead guitar and much of the vocals. With this " \
+ "line-up, Floyd went on to achieve worldwide critical and commercial success with the " \
+ "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_resizable_set(ic, 0, 0);
+ elm_icon_file_set(ic, buf, NULL);
+ elm_list_item_append(li, "Pink Floyd", ic, NULL, NULL, &pf_data);
+
+ static char ds_data[] = "Dire Straits were a British rock band, formed by Mark Knopfler " \
+ "(lead vocals and lead guitar), his younger brother David Knopfler (rhythm guitar and " \
+ "backing vocals), John Illsley (bass guitar and backing vocals), and Pick Withers (drums " \
+ "and percussion), and managed by Ed Bicknell, active between 1977 and 1995. Although the " \
+ "band was formed in an era when punk rock was at the forefront, Dire Straits played a more "
+ "bluesy style, albeit with a stripped-down sound that appealed to audiences weary of the " \
+ "overproduced stadium rock of the 1970s.[citation needed] In their early days, Mark and " \
+ "David requested that pub owners turn down their sound so that patrons could converse " \
+ "while the band played, an indication of their unassuming demeanor. Despite this oddly " \
+ "self-effacing approach to rock and roll, Dire Straits soon became hugely successful, with " \
+ "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_resizable_set(ic, 0, 0);
+ elm_icon_file_set(ic, buf, NULL);
+ elm_list_item_append(li, "Dire Straits", ic, NULL, NULL, &ds_data);
+
+ static char uh_data[] = "Uriah Heep are an English hard rock band. The band released several " \
+ "commercially successful albums in the 1970s such as Uriah Heep Live (1973), but their " \
+ "audience declined by the 1980s, to the point where they became essentially a cult band in " \
+ "the United States and United Kingdom. Uriah Heep maintain a significant following in " \
+ "Germany, the Netherlands, Scandinavia, the Balkans, Japan and Russia, where they still " \
+ "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_resizable_set(ic, 1, 1);
+ elm_icon_file_set(ic, buf, NULL);
+ elm_list_item_append(li, "Uriah Heep", ic, NULL, NULL, &uh_data);
+
+ static char r_data[] = "Rush is a Canadian rock band formed in August 1968, in the Willowdale " \
+ "neighbourhood of Toronto, Ontario. The band is composed of bassist, keyboardist, and lead " \
+ "vocalist Geddy Lee, guitarist Alex Lifeson, and drummer and lyricist Neil Peart. The band " \
+ "and its membership went through a number of re-configurations between 1968 and 1974, " \
+ "achieving their current form when Peart replaced original drummer John Rutsey in July 1974, " \
+ "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_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_resizable_set(ic2, 0, 0);
+ elm_list_item_append(li, "Rush", ic, ic2, NULL, &r_data);
+
+ elm_list_go(li);
+
+ evas_object_show(li);
+ evas_object_resize(win, 320, 300);
+ evas_object_show(win);
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+struct list5_data_cb
+{
+ Evas_Object *win, *list;
+};
+
+static void
+test_list5_item_del(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ elm_object_item_del(data);
+}
+
+static void
+test_list5_swipe(void *data __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info)
+{
+ Evas_Object *button;
+ struct list5_data_cb *info = elm_object_item_data_get(event_info);
+
+ if (elm_object_item_part_content_get(event_info, "end")) return;
+
+ button = elm_button_add(info->win);
+ elm_object_text_set(button, "delete");
+ evas_object_propagate_events_set(button, 0);
+ evas_object_smart_callback_add(button, "clicked", test_list5_item_del,
+ event_info);
+ elm_object_item_part_content_set(event_info, "end", button);
+}
+
+void
+test_list5(void *data __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ Evas_Object *win, *li;
+ static struct list5_data_cb info;
+
+ win = elm_win_util_standard_add("list5", "List 5");
+ elm_win_autodel_set(win, EINA_TRUE);
+ info.win = win;
+
+ 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);
+ evas_object_smart_callback_add(li, "swipe", test_list5_swipe, NULL);
+ elm_win_resize_object_add(win, li);
+ evas_object_show(li);
+ info.list = li;
+
+ elm_list_item_append(li, "Network", NULL, NULL, NULL, &info);
+ elm_list_item_append(li, "Audio", NULL, NULL, NULL, &info);
+
+ elm_list_go(li);
+ evas_object_resize(win, 320, 300);
+ 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);
+}