#include <Elementary.h>
#define IMG_NUM 8
static Evas_Object *slideshow, *bt_start, *bt_stop;
static void
_notify_show(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   evas_object_show(data);
}
static void
_next(void  *data, Evas_Object *obj, void *event_info)
{
}
static void
_previous(void *data, Evas_Object *obj, void *event_info)
{
}
static void
_first(void *data, Evas_Object *obj, void *event_info)
{
   elm_slideshow_item_show(data);
}
static void
_last(void *data, Evas_Object *obj, void *event_info)
{
   elm_slideshow_item_show(data);
}
static void
_mouse_in_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   evas_object_show(data);
}
static void
_mouse_out_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
}
static void
_transition_select(void *data, Evas_Object *obj, void *event_info)
{
   elm_object_text_set(obj, data);
}
static void
_layout_select(void *data, Evas_Object *obj, void *event_info)
{
   elm_object_text_set(obj, data);
}
static void
_start(void *data, Evas_Object *obj, void *event_info)
{
}
static void
_stop(void *data, Evas_Object *obj, void *event_info)
{
}
static void
_spin(void *data, Evas_Object *obj, void *event_info)
{
}
static Evas_Object *
_get(void *data, Evas_Object *obj)
{
   return photo;
}
static int
_cmp_func(const void *data1, const void *data2)
{
   const char *img_path1, *img_path2;
   return strcasecmp(img_path1, img_path2);
}
EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win, *notify, *bx, *bt, *hv, *spin;
   const char *transition, *layout;
   const Eina_List *l, *list;
   const char *data_dir;
   char img[IMG_NUM][PATH_MAX];
   char *img_files[] =
     {
        "logo.png", "plant_01.jpg", "rock_01.jpg", "rock_02.jpg", "sky_01.jpg",
        "wood_01.jpg", "mystrale.jpg", "mystrale_2.jpg"
     };
   int i = 0;
   for (i = 0; i < IMG_NUM; i++)
     snprintf(img[i], PATH_MAX, "%s/images/%s", data_dir, img_files[i]);
   evas_object_size_hint_weight_set(slideshow,
                                    EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_show(slideshow);
   itc.func.get = _get;
   itc.func.del = NULL;
   for (i = 0; i < IMG_NUM; i++)
     {
                                                    _cmp_func);
        if (!slide_first) slide_first = slide_it;
     }
   slide_last = slide_it;
   fprintf(stdout, "List of items in the slideshow:\n");
   EINA_LIST_FOREACH(list, l, slide_it)
     fprintf(stdout, "\t%s\n",
   evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_show(notify);
   elm_object_content_set(notify, bx);
   evas_object_show(bx);
   evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_IN,
                                  _mouse_in_cb, notify);
   evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_OUT,
                                  _mouse_out_cb, notify);
   elm_object_text_set(bt, "First");
   evas_object_smart_callback_add(bt, "clicked", _first, slide_first);
   evas_object_show(bt);
   elm_object_text_set(bt, "Previous");
   evas_object_smart_callback_add(bt, "clicked", _previous, slideshow);
   evas_object_show(bt);
   elm_object_text_set(bt, "Next");
   evas_object_smart_callback_add(bt, "clicked", _next, slideshow);
   evas_object_show(bt);
   elm_object_text_set(bt, "Last");
   evas_object_smart_callback_add(bt, "clicked", _last, slide_last);
   evas_object_show(bt);
                           transition);
   elm_object_text_set(hv, eina_list_data_get(
   evas_object_show(hv);
   evas_object_show(hv);
   evas_object_smart_callback_add(spin, "changed", _spin, spin);
   evas_object_show(spin);
   bt_start = bt;
   elm_object_text_set(bt, "Start");
   evas_object_smart_callback_add(bt, "clicked", _start, spin);
   evas_object_show(bt);
   bt_stop = bt;
   elm_object_text_set(bt, "Stop");
   evas_object_smart_callback_add(bt, "clicked", _stop, spin);
   evas_object_show(bt);
   evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_UP,
                                  _notify_show, notify);
   evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_MOVE,
                                  _notify_show, notify);
   evas_object_resize(win, 600, 400);
   evas_object_show(win);
   return 0;
}