jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=bf407bf136c12d70fa92eb96106f27826db764aa

commit bf407bf136c12d70fa92eb96106f27826db764aa
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Wed Mar 26 11:53:31 2014 +0200

    Eolian: Integration of Slideshow
---
 src/lib/Makefile.am            |  10 +-
 src/lib/elm_slideshow.c        | 528 +++++++----------------------------------
 src/lib/elm_slideshow.eo       | 439 ++++++++++++++++++++++++++++++++++
 src/lib/elm_slideshow_eo.h     |   4 +
 src/lib/elm_widget_slideshow.h |   6 +-
 5 files changed, 541 insertions(+), 446 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 1cf5b1c..939a75b 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -646,7 +646,9 @@ BUILT_SOURCES = \
                elm_separator.eo.c \
                elm_separator.eo.h \
                elm_slider.eo.c \
-               elm_slider.eo.h
+               elm_slider.eo.h \
+               elm_slideshow.eo.c \
+               elm_slideshow.eo.h
 
 EXTRA_DIST += \
             elm_widget.eo \
@@ -709,7 +711,8 @@ EXTRA_DIST += \
             elm_scroller.eo \
             elm_segment_control.eo \
             elm_separator.eo \
-            elm_slider.eo
+            elm_slider.eo \
+            elm_slideshow.eo
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -772,5 +775,6 @@ nodist_includesunstable_HEADERS = \
                                  elm_scroller.eo.h \
                                  elm_segment_control.eo.h \
                                  elm_separator.eo.h \
-                                 elm_slider.eo.h
+                                 elm_slider.eo.h \
+                                 elm_slideshow.eo.h
 
diff --git a/src/lib/elm_slideshow.c b/src/lib/elm_slideshow.c
index 406185b..18c8277 100644
--- a/src/lib/elm_slideshow.c
+++ b/src/lib/elm_slideshow.c
@@ -7,8 +7,6 @@
 #include "elm_priv.h"
 #include "elm_widget_slideshow.h"
 
-EAPI Eo_Op ELM_OBJ_SLIDESHOW_BASE_ID = EO_NOOP;
-
 #define MY_CLASS ELM_OBJ_SLIDESHOW_CLASS
 
 #define MY_CLASS_NAME "Elm_Slideshow"
@@ -27,22 +25,15 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = 
{
    {NULL, NULL}
 };
 
-static void
-_elm_slideshow_smart_event(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slideshow_elm_widget_event(Eo *obj, Elm_Slideshow_Data *sd, Evas_Object 
*src, Evas_Callback_Type type, void *event_info)
 {
-   Evas_Object *src = va_arg(*list, Evas_Object *);
-   Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type);
-   Evas_Event_Key_Down *ev = va_arg(*list, void *);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
-   if (ret) *ret = EINA_FALSE;
+   Evas_Event_Key_Down *ev = event_info;
    (void) src;
 
-   if (elm_widget_disabled_get(obj)) return;
-   if (type != EVAS_CALLBACK_KEY_DOWN) return;
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
-
-   Elm_Slideshow_Smart_Data *sd = _pd;
+   if (elm_widget_disabled_get(obj)) return EINA_FALSE;
+   if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
+   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
 
    if ((!strcmp(ev->key, "Left")) ||
        ((!strcmp(ev->key, "KP_Left")) && (!ev->string)))
@@ -70,15 +61,15 @@ _elm_slideshow_smart_event(Eo *obj, void *_pd, va_list 
*list)
         goto success;
      }
 
-   return;
+   return EINA_FALSE;
 
 success:
    ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
-static void
-_elm_slideshow_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_elm_layout_sizing_eval(Eo *obj, Elm_Slideshow_Data *_pd 
EINA_UNUSED)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
    Evas_Coord minw = -1, minh = -1;
@@ -304,10 +295,9 @@ _item_del_pre_hook(Elm_Object_Item *it)
    return EINA_TRUE;
 }
 
-static void
-_elm_slideshow_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_evas_smart_add(Eo *obj, Elm_Slideshow_Data *priv)
 {
-   Elm_Slideshow_Smart_Data *priv = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
@@ -349,10 +339,9 @@ _elm_slideshow_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    elm_layout_sizing_eval(obj);
 }
 
-static void
-_elm_slideshow_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_evas_smart_del(Eo *obj, Elm_Slideshow_Data *sd)
 {
-   Elm_Slideshow_Smart_Data *sd = _pd;
    const char *layout;
 
    elm_slideshow_clear(obj);
@@ -374,8 +363,8 @@ elm_slideshow_add(Evas_Object *parent)
    return obj;
 }
 
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_eo_base_constructor(Eo *obj, Elm_Slideshow_Data *_pd 
EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
@@ -383,31 +372,13 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
 }
 
-EAPI Elm_Object_Item *
-elm_slideshow_item_add(Evas_Object *obj,
-                       const Elm_Slideshow_Item_Class *itc,
-                       const void *data)
-{
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-   Elm_Object_Item *ret;
-   eo_do(obj, elm_obj_slideshow_item_add(itc, data, &ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_item_add(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_slideshow_item_add(Eo *obj, Elm_Slideshow_Data *sd, const 
Elm_Slideshow_Item_Class *itc, const void *data)
 {
    Elm_Slideshow_Item *item;
 
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
-   const Elm_Slideshow_Item_Class *itc = va_arg(*list, const 
Elm_Slideshow_Item_Class *);
-   const void *data = va_arg(*list, const void *);
-   Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
-   *ret = NULL;
-
    item = elm_widget_item_new(obj, Elm_Slideshow_Item);
-   if (!item) return;
+   if (!item) return NULL;
 
    elm_widget_item_del_pre_hook_set(item, _item_del_pre_hook);
    item->itc = itc;
@@ -418,36 +389,16 @@ _elm_slideshow_item_add(Eo *obj, void *_pd, va_list *list)
 
    if (!sd->current) elm_slideshow_item_show((Elm_Object_Item *)item);
 
-   *ret = (Elm_Object_Item *)item;
+   return (Elm_Object_Item *)item;
 }
 
-EAPI Elm_Object_Item *
-elm_slideshow_item_sorted_insert(Evas_Object *obj,
-                                 const Elm_Slideshow_Item_Class *itc,
-                                 const void *data,
-                                 Eina_Compare_Cb func)
+EOLIAN static Elm_Object_Item*
+_elm_slideshow_item_sorted_insert(Eo *obj, Elm_Slideshow_Data *sd, const 
Elm_Slideshow_Item_Class *itc, const void *data, Eina_Compare_Cb func)
 {
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-   Elm_Object_Item *ret;
-   eo_do(obj, elm_obj_slideshow_item_sorted_insert(itc, data, func, &ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_item_sorted_insert(Eo *obj, void *_pd, va_list *list)
-{
-   const Elm_Slideshow_Item_Class *itc = va_arg(*list, const 
Elm_Slideshow_Item_Class *);
-   const void *data = va_arg(*list, const void *);
-   Eina_Compare_Cb func = va_arg(*list, Eina_Compare_Cb);
-   Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
-   *ret = NULL;
-
    Elm_Slideshow_Item *item;
 
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
    item = elm_widget_item_new(obj, Elm_Slideshow_Item);
-   if (!item) return;
+   if (!item) return NULL;
 
    elm_widget_item_del_pre_hook_set(item, _item_del_pre_hook);
    item->itc = itc;
@@ -458,7 +409,7 @@ _elm_slideshow_item_sorted_insert(Eo *obj, void *_pd, 
va_list *list)
 
    if (!sd->current) elm_slideshow_item_show((Elm_Object_Item *)item);
 
-   *ret = (Elm_Object_Item *)item;
+   return (Elm_Object_Item *)item;
 }
 
 EAPI void
@@ -501,21 +452,12 @@ elm_slideshow_item_show(Elm_Object_Item *it)
    evas_object_smart_callback_call(WIDGET(item), SIG_CHANGED, sd->current);
 }
 
-EAPI void
-elm_slideshow_next(Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_next());
-}
-
-static void
-_elm_slideshow_next(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_next(Eo *obj, Elm_Slideshow_Data *sd)
 {
    char buf[1024];
    Elm_Slideshow_Item *next = NULL;
 
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
    if (sd->current) next = _item_next_get(sd->current);
 
    if ((!next) || (next == sd->current)) return;
@@ -547,21 +489,12 @@ _elm_slideshow_next(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    evas_object_smart_callback_call(obj, SIG_CHANGED, sd->current);
 }
 
-EAPI void
-elm_slideshow_previous(Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_previous());
-}
-
-static void
-_elm_slideshow_previous(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_previous(Eo *obj, Elm_Slideshow_Data *sd)
 {
    char buf[1024];
    Elm_Slideshow_Item *prev = NULL;
 
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
    if (sd->current) prev = _item_prev_get(sd->current);
 
    if ((!prev) || (prev == sd->current)) return;
@@ -593,89 +526,33 @@ _elm_slideshow_previous(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    evas_object_smart_callback_call(obj, SIG_CHANGED, sd->current);
 }
 
-EAPI const Eina_List *
-elm_slideshow_transitions_get(const Evas_Object *obj)
+EOLIAN static const Eina_List*
+_elm_slideshow_transitions_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-   const Eina_List *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_transitions_get(&ret));
-   return ret;
+   return sd->transitions;
 }
 
-static void
-_elm_slideshow_transitions_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const Eina_List **ret = va_arg(*list, const Eina_List **);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->transitions;
-}
-
-EAPI const Eina_List *
-elm_slideshow_layouts_get(const Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-
-   const Eina_List *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_layouts_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_layouts_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static const Eina_List*
+_elm_slideshow_layouts_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   const Eina_List **ret = va_arg(*list, const Eina_List **);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->layout.list;
+   return sd->layout.list;
 }
 
-EAPI void
-elm_slideshow_transition_set(Evas_Object *obj,
-                             const char *transition)
+EOLIAN static void
+_elm_slideshow_transition_set(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd, 
const char *transition)
 {
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_transition_set(transition));
-}
-
-static void
-_elm_slideshow_transition_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const char *transition = va_arg(*list, const char *);
-   Elm_Slideshow_Smart_Data *sd = _pd;
    eina_stringshare_replace(&sd->transition, transition);
 }
 
-EAPI const char *
-elm_slideshow_transition_get(const Evas_Object *obj)
+EOLIAN static const char*
+_elm_slideshow_transition_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-
-   const char *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_transition_get(&ret));
-   return ret;
+   return sd->transition;
 }
 
-static void
-_elm_slideshow_transition_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slideshow_timeout_set(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd, double 
timeout)
 {
-   const char **ret = va_arg(*list, const char **);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->transition;
-}
-
-EAPI void
-elm_slideshow_timeout_set(Evas_Object *obj,
-                          double timeout)
-{
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_timeout_set(timeout));
-}
-
-static void
-_elm_slideshow_timeout_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   double timeout = va_arg(*list, double);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
    sd->timeout = timeout;
 
    ELM_SAFE_FREE(sd->timer, ecore_timer_del);
@@ -683,73 +560,30 @@ _elm_slideshow_timeout_set(Eo *obj EINA_UNUSED, void 
*_pd, va_list *list)
      sd->timer = ecore_timer_add(timeout, _timer_cb, obj);
 }
 
-EAPI double
-elm_slideshow_timeout_get(const Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj) - 1.0;
-   double ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_timeout_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_timeout_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   double *ret = va_arg(*list, double *);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->timeout;
-}
-
-EAPI void
-elm_slideshow_loop_set(Evas_Object *obj,
-                       Eina_Bool loop)
+EOLIAN static double
+_elm_slideshow_timeout_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_loop_set(loop));
+   return sd->timeout;
 }
 
-static void
-_elm_slideshow_loop_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slideshow_loop_set(Eo *obj, Elm_Slideshow_Data *sd, Eina_Bool loop)
 {
-   Eina_Bool loop = va_arg(*list, int);
    ELM_SLIDESHOW_CHECK(obj);
-   Elm_Slideshow_Smart_Data *sd = _pd;
    sd->loop = loop;
 }
 
-EAPI const char *
-elm_slideshow_layout_get(const Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj) EINA_FALSE;
-   const char *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_layout_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_layout_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const char **ret = va_arg(*list, const char **);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->layout.current;
-}
-
-EAPI void
-elm_slideshow_layout_set(Evas_Object *obj,
-                         const char *layout)
+EOLIAN static const char*
+_elm_slideshow_layout_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_layout_set(layout));
+   return sd->layout.current;
 }
 
-static void
-_elm_slideshow_layout_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slideshow_layout_set(Eo *obj, Elm_Slideshow_Data *sd, const char *layout)
 {
-
    char buf[PATH_MAX];
-   const char *layout = va_arg(*list, const char *);
 
-   Elm_Slideshow_Smart_Data *sd = _pd;
 
    sd->layout.current = layout;
    snprintf(buf, sizeof(buf), "elm,layout,%s", layout);
@@ -759,37 +593,17 @@ _elm_slideshow_layout_set(Eo *obj, void *_pd, va_list 
*list)
    elm_layout_signal_emit(obj, buf, "slideshow");
 }
 
-EAPI Eina_Bool
-elm_slideshow_loop_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_slideshow_loop_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   ELM_SLIDESHOW_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_loop_get(&ret));
-   return ret;
+   return sd->loop;
 }
 
-static void
-_elm_slideshow_loop_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->loop;
-}
-
-EAPI void
-elm_slideshow_clear(Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_clear());
-}
-
-static void
-_elm_slideshow_clear(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slideshow_clear(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
    Elm_Slideshow_Item *item;
 
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
    sd->previous = NULL;
    sd->current = NULL;
    EINA_LIST_FREE(sd->items_built, item)
@@ -802,38 +616,16 @@ _elm_slideshow_clear(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list EINA_UNUSED)
      elm_widget_item_free(item);
 }
 
-EAPI const Eina_List *
-elm_slideshow_items_get(const Evas_Object *obj)
+EOLIAN static const Eina_List*
+_elm_slideshow_items_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-   const Eina_List *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_items_get(&ret));
-   return ret;
+   return sd->items;
 }
 
-static void
-_elm_slideshow_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_slideshow_item_current_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   const Eina_List **ret = va_arg(*list, const Eina_List **);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->items;
-}
-
-EAPI Elm_Object_Item *
-elm_slideshow_item_current_get(const Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-   Elm_Object_Item *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_item_current_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_item_current_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = (Elm_Object_Item *)sd->current;
+   return (Elm_Object_Item *)sd->current;
 }
 
 EAPI Evas_Object *
@@ -843,205 +635,61 @@ elm_slideshow_item_object_get(const Elm_Object_Item *it)
    return VIEW(it);
 }
 
-EAPI int
-elm_slideshow_cache_before_get(const Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj) - 1;
-   int ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_cache_before_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_cache_before_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static int
+_elm_slideshow_cache_before_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   int *ret = va_arg(*list, int *);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->count_item_pre_before;
+   return sd->count_item_pre_before;
 }
 
-EAPI void
-elm_slideshow_cache_before_set(Evas_Object *obj, int count)
+EOLIAN static void
+_elm_slideshow_cache_before_set(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd, 
int count)
 {
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_cache_before_set(count));
-}
-
-static void
-_elm_slideshow_cache_before_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   int count = va_arg(*list, int);
-
-   Elm_Slideshow_Smart_Data *sd = _pd;
    if (!sd) return;
    if (count < 0) count = 0;
    sd->count_item_pre_before = count;
 }
 
-EAPI int
-elm_slideshow_cache_after_get(const Evas_Object *obj)
-{
-   ELM_SLIDESHOW_CHECK(obj) - 1;
-   int ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_cache_after_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slideshow_cache_after_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static int
+_elm_slideshow_cache_after_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   int *ret = va_arg(*list, int *);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = sd->count_item_pre_after;
+   return sd->count_item_pre_after;
 }
 
-EAPI void
-elm_slideshow_cache_after_set(Evas_Object *obj,
-                              int count)
-{
-   ELM_SLIDESHOW_CHECK(obj);
-   eo_do(obj, elm_obj_slideshow_cache_after_set(count));
-}
-
-static void
-_elm_slideshow_cache_after_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slideshow_cache_after_set(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd, 
int count)
 {
-   int count = va_arg(*list, int);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-
    if (count < 0) count = 0;
    sd->count_item_pre_after = count;
 }
 
-EAPI Elm_Object_Item *
-elm_slideshow_item_nth_get(const Evas_Object *obj,
-                           unsigned int nth)
+EOLIAN static Elm_Object_Item*
+_elm_slideshow_item_nth_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd, 
unsigned int nth)
 {
-   ELM_SLIDESHOW_CHECK(obj) NULL;
-   Elm_Object_Item *ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_item_nth_get(nth, &ret));
-   return ret;
+   return eina_list_nth(sd->items, nth);
 }
 
-static void
- _elm_slideshow_item_nth_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static unsigned int
+_elm_slideshow_count_get(Eo *obj EINA_UNUSED, Elm_Slideshow_Data *sd)
 {
-   unsigned int nth = va_arg(*list, unsigned int);
-   Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
-
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = eina_list_nth(sd->items, nth);
+   return eina_list_count(sd->items);
 }
 
-EAPI unsigned int
-elm_slideshow_count_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_slideshow_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, 
Elm_Slideshow_Data *_pd EINA_UNUSED)
 {
-   ELM_SLIDESHOW_CHECK(obj) 0;
-   unsigned int ret;
-   eo_do((Eo *) obj, elm_obj_slideshow_count_get(&ret));
-   return ret;
+   return EINA_FALSE;
 }
 
-static void
-_elm_slideshow_count_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slideshow_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, 
Elm_Slideshow_Data *_pd EINA_UNUSED)
 {
-   unsigned int *ret = va_arg(*list, unsigned int *);
-   Elm_Slideshow_Smart_Data *sd = _pd;
-   *ret = eina_list_count(sd->items);
+   return EINA_FALSE;
 }
 
-static void
-_elm_slideshow_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = EINA_FALSE;
-}
-
-static void
-_elm_slideshow_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_slideshow_class_constructor(Eo_Class *klass)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = EINA_FALSE;
-}
-
-static void
-_class_constructor(Eo_Class *klass)
-{
-   const Eo_Op_Func_Description func_desc[] = {
-        EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
-
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), 
_elm_slideshow_smart_add),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), 
_elm_slideshow_smart_del),
-
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), 
_elm_slideshow_smart_event),
-        
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), 
_elm_slideshow_smart_focus_next_manager_is),
-        
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), 
_elm_slideshow_smart_focus_direction_manager_is),
-
-        EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), 
_elm_slideshow_smart_sizing_eval),
-
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_ADD), 
_elm_slideshow_item_add),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_SORTED_INSERT), 
_elm_slideshow_item_sorted_insert),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_NEXT), 
_elm_slideshow_next),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_PREVIOUS), 
_elm_slideshow_previous),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITIONS_GET), 
_elm_slideshow_transitions_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUTS_GET), 
_elm_slideshow_layouts_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_SET), 
_elm_slideshow_transition_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_GET), 
_elm_slideshow_transition_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_SET), 
_elm_slideshow_timeout_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_GET), 
_elm_slideshow_timeout_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_SET), 
_elm_slideshow_loop_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_GET), 
_elm_slideshow_layout_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_SET), 
_elm_slideshow_layout_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_GET), 
_elm_slideshow_loop_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CLEAR), 
_elm_slideshow_clear),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEMS_GET), 
_elm_slideshow_items_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_CURRENT_GET), 
_elm_slideshow_item_current_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_GET), 
_elm_slideshow_cache_before_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_SET), 
_elm_slideshow_cache_before_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_GET), 
_elm_slideshow_cache_after_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_SET), 
_elm_slideshow_cache_after_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_NTH_GET), 
_elm_slideshow_item_nth_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET), 
_elm_slideshow_count_get),
-        EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
-
    evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
 }
-static const Eo_Op_Description op_desc[] = {
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_ADD, "Add (append) a new 
item in a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_SORTED_INSERT, "Insert a 
new item into the given slideshow widget, using the func function to sort items 
(by item handles)."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_NEXT, "Slide to the next item, 
in a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_PREVIOUS, "Slide to the 
previous item, in a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITIONS_GET, "Returns the 
list of sliding transition/effect names available, for a given slideshow 
widget.."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUTS_GET, "Returns the list 
of layout names available, for a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_SET, "Set the 
current slide transition/effect in use for a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_TRANSITION_GET, "Get the 
current slide transition/effect in use for a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_SET, "Set the interval 
between each image transition on a given slideshow widget, and start the 
slideshow, itself."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_TIMEOUT_GET, "Get the interval 
set for image transitions on a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_SET, "Set if, after a 
slideshow is started, for a given slideshow widget, its items should be 
displayed cyclically or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_GET, "Get the current 
slide layout in use for a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_LAYOUT_SET, "Set the current 
slide layout in use for a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_LOOP_GET, "Get if, after a 
slideshow is started, for a given slideshow widget, its items are to be 
displayed cyclically or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_CLEAR, "Remove all items from 
a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_ITEMS_GET, "Get the internal 
list of items in a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_CURRENT_GET, "Returns the 
currently displayed item, in a given slideshow widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_GET, "Retrieve 
the number of items to cache, on a given slideshow widget, before the current 
item."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_BEFORE_SET, "Set the 
number of items to cache, on a given slideshow widget, before the current 
item."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_GET, "Retrieve the 
number of items to cache, on a given slideshow widget, after the current 
item."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_CACHE_AFTER_SET, "Set the 
number of items to cache, on a given slideshow widget, after the current 
item."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_ITEM_NTH_GET, "Get the the 
item, in a given slideshow widget, placed at position nth, in its internal 
items list."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET, "Get the number of 
items stored in a given slideshow widget."),
-     EO_OP_DESCRIPTION_SENTINEL
-};
-static const Eo_Class_Description class_desc = {
-     EO_VERSION,
-     MY_CLASS_NAME,
-     EO_CLASS_TYPE_REGULAR,
-     EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_SLIDESHOW_BASE_ID, op_desc, 
ELM_OBJ_SLIDESHOW_SUB_ID_LAST),
-     NULL,
-     sizeof(Elm_Slideshow_Smart_Data),
-     _class_constructor,
-     NULL
-};
-EO_DEFINE_CLASS(elm_obj_slideshow_class_get, &class_desc, 
ELM_OBJ_LAYOUT_CLASS, NULL);
+
+#include "elm_slideshow.eo.c"
diff --git a/src/lib/elm_slideshow.eo b/src/lib/elm_slideshow.eo
new file mode 100644
index 0000000..37c57d1
--- /dev/null
+++ b/src/lib/elm_slideshow.eo
@@ -0,0 +1,439 @@
+class Elm_Slideshow (Elm_Layout)
+{
+   eo_prefix: elm_obj_slideshow;
+   properties {
+      cache_after {
+         set {
+            /*@
+            Set the number of items to cache, on a given slideshow widget,
+            <b>after the current item</b>
+
+            The default value for this property is @c 2. See
+            @ref Slideshow_Caching "slideshow caching" for more details.
+
+            @see elm_slideshow_cache_after_get()
+
+            @ingroup Slideshow */
+         }
+         get {
+            /*@
+            Retrieve the number of items to cache, on a given slideshow widget,
+            <b>after the current item</b>
+
+            @return The number of items set to be cached after the current one
+
+            @see elm_slideshow_cache_after_set() for more details
+
+            @ingroup Slideshow */
+         }
+         values {
+            int count; /*@ Number of items to cache after the current one */
+         }
+      }
+      cache_before {
+         set {
+            /*@
+            Set the number of items to cache, on a given slideshow widget,
+            <b>before the current item</b>
+
+            The default value for this property is @c 2. See
+            @ref Slideshow_Caching "slideshow caching" for more details.
+
+            @see elm_slideshow_cache_before_get()
+
+            @ingroup Slideshow */
+         }
+         get {
+            /*@
+            Retrieve the number of items to cache, on a given slideshow widget,
+            <b>before the current item</b>
+
+            @return The number of items set to be cached before the current one
+
+            @see elm_slideshow_cache_before_set() for more details
+
+            @ingroup Slideshow */
+         }
+         values {
+            int count; /*@ Number of items to cache before the current one */
+         }
+      }
+      layout {
+         set {
+            /*@
+            Set the current slide layout in use for a given slideshow widget
+
+            If @p layout is implemented in @p obj's theme (i.e., is contained
+            in the list returned by elm_slideshow_layouts_get()), this new
+            images layout will be used on the widget.
+
+            @see elm_slideshow_layouts_get() for more details
+
+            @ingroup Slideshow */
+         }
+         get {
+            /*@
+            Get the current slide layout in use for a given slideshow widget
+
+            @return The current layout's name
+
+            @see elm_slideshow_layout_set() for more details
+
+            @ingroup Slideshow */
+         }
+         values {
+            const char *layout; /*@ The new layout's name string */
+         }
+      }
+      transition {
+         set {
+            /*@
+            Set the current slide transition/effect in use for a given
+            slideshow widget
+
+            If @p transition is implemented in @p obj's theme (i.e., is
+            contained in the list returned by
+            elm_slideshow_transitions_get()), this new sliding effect will
+            be used on the widget.
+
+            @see elm_slideshow_transitions_get() for more details
+
+            @ingroup Slideshow */
+         }
+         get {
+            /*@
+            Get the current slide transition/effect in use for a given
+            slideshow widget
+
+            @return The current transition's name
+
+            @see elm_slideshow_transition_set() for more details
+
+            @ingroup Slideshow */
+         }
+         values {
+            const char *transition; /*@ The new transition's name string */
+         }
+      }
+      loop {
+         set {
+            /*@
+            Set if, after a slideshow is started, for a given slideshow
+            widget, its items should be displayed cyclically or not.
+
+            @note elm_slideshow_next() and elm_slideshow_previous() will @b
+            ignore what is set by this functions, i.e., they'll @b always
+            cycle through items. This affects only the "automatic"
+            slideshow, as set by elm_slideshow_timeout_set().
+
+            @see elm_slideshow_loop_get()
+
+            @ingroup Slideshow */
+         }
+         get {
+            /*@
+            Get if, after a slideshow is started, for a given slideshow
+            widget, its items are to be displayed cyclically or not.
+
+            @return @c EINA_TRUE, if the items in @p obj will be cycled
+            through or @c EINA_FALSE, otherwise
+
+            @see elm_slideshow_loop_set() for more details
+
+            @ingroup Slideshow */
+         }
+         values {
+            Eina_Bool loop; /*@ Use @c EINA_TRUE to make it cycle through 
items or
+            @c EINA_FALSE for it to stop at the end of @p obj's internal
+            list of items */
+         }
+      }
+      timeout {
+         set {
+            /*@
+            Set the interval between each image transition on a given
+            slideshow widget, <b>and start the slideshow, itself</b>
+
+            After this call, the slideshow widget will start cycling its
+            view, sequentially and automatically, with the images of the
+            items it has. The time between each new image displayed is going
+            to be @p timeout, in @b seconds. If a different timeout was set
+            previously and an slideshow was in progress, it will continue
+            with the new time between transitions, after this call.
+
+            @note A value less than or equal to 0 on @p timeout will disable
+            the widget's internal timer, thus halting any slideshow which
+            could be happening on @p obj.
+
+            @see elm_slideshow_timeout_get()
+
+            @ingroup Slideshow */
+         }
+         get {
+            /*@
+            Get the interval set for image transitions on a given slideshow
+            widget.
+
+            @return Returns the timeout set on it or -1.0, on errors
+
+            @see elm_slideshow_timeout_set() for more details
+
+            @ingroup Slideshow */
+         }
+         values {
+            double timeout; /*@ The new displaying timeout for images */
+         }
+      }
+      items {
+         get {
+            /*@
+            Get the internal list of items in a given slideshow widget.
+
+            @return The list of items (#Elm_Object_Item as data) or
+            @c NULL on errors.
+
+            This list is @b not to be modified in any way and must not be
+            freed. Use the list members with functions like
+            elm_object_item_del(), elm_object_item_data_get().
+
+            @warning This list is only valid until @p obj object's internal
+            items list is changed. It should be fetched again with another
+            call to this function when changes happen.
+
+            @ingroup Slideshow */
+            return const Eina_List *;
+         }
+      }
+      transitions {
+         get {
+            /*@
+            Returns the list of sliding transition/effect names available, for 
a
+            given slideshow widget.
+
+            @return The list of transitions (list of @b stringshared strings
+            as data)
+
+            The transitions, which come from @p obj's theme, must be an EDC
+            data item named @c "transitions" on the theme file, with (prefix)
+            names of EDC programs actually implementing them.
+
+            The available transitions for slideshows on the default theme are:
+            - @c "fade" - the current item fades out, while the new one
+            fades in to the slideshow's viewport.
+            - @c "black_fade" - the current item fades to black, and just
+            then, the new item will fade in.
+            - @c "horizontal" - the current item slides horizontally, until
+            it gets out of the slideshow's viewport, while the new item
+            comes from the left to take its place.
+            - @c "vertical" - the current item slides vertically, until it
+            gets out of the slideshow's viewport, while the new item comes
+            from the bottom to take its place.
+            - @c "square" - the new item starts to appear from the middle of
+            the current one, but with a tiny size, growing until its
+            target (full) size and covering the old one.
+
+            @warning The stringshared strings get no new references
+            exclusive to the user grabbing the list, here, so if you'd like
+            to use them out of this call's context, you'd better @c
+            eina_stringshare_ref() them. Also the list is an internal list and
+            so is only valid for as long as the slideshow object is valid and
+            has not internally changed its list for some reason, so make a
+            copy if you need it around.
+
+            @see elm_slideshow_transition_set()
+
+            @ingroup Slideshow */
+            return const Eina_List *;
+         }
+      }
+      count {
+         get {
+            /*@
+            Get the number of items stored in a given slideshow widget
+
+            @return The number of items on @p obj, at the moment of this call
+
+            @ingroup Slideshow */
+            return unsigned int;
+         }
+      }
+      item_current {
+         get {
+            /*@
+            Returns the currently displayed item, in a given slideshow widget
+
+            @return A handle to the item being displayed in @p obj or
+            @c NULL, if none is (and on errors)
+
+            @ingroup Slideshow */
+            return Elm_Object_Item *;
+         }
+      }
+      layouts {
+         get {
+            /*@
+            Returns the list of @b layout names available, for a given
+            slideshow widget.
+
+            @return The list of layouts (list of @b stringshared strings
+            as data)
+
+            Slideshow layouts will change how the widget is to dispose each
+            image item in its viewport, with regard to cropping, scaling,
+            etc.
+
+            The layouts, which come from @p obj's theme, must be an EDC
+            data item name @c "layouts" on the theme file, with (prefix)
+            names of EDC programs actually implementing them.
+
+            The available layouts for slideshows on the default theme are:
+            - @c "fullscreen" - item images with original aspect, scaled to
+            touch top and down slideshow borders or, if the image's height
+            is not enough, left and right slideshow borders.
+            - @c "not_fullscreen" - the same behavior as the @c "fullscreen"
+            one, but always leaving 10% of the slideshow's dimensions of
+            distance between the item image's borders and the slideshow
+            borders, for each axis.
+
+            @warning The stringshared strings get no new references
+            exclusive to the user grabbing the list, here, so if you'd like
+            to use them out of this call's context, you'd better @c
+            eina_stringshare_ref() them.
+
+            @see elm_slideshow_layout_set()
+
+            @ingroup Slideshow */
+            return const Eina_List *;
+         }
+      }
+   }
+   methods {
+      previous {
+         /*@
+         Slide to the @b previous item, in a given slideshow widget
+
+         The sliding animation @p obj is set to use will be the
+         transition effect used, after this call is issued.
+
+         @note If the beginning of the slideshow's internal list of items
+         is reached, it'll wrap around to the list's end, again.
+
+         @ingroup Slideshow */
+
+      }
+      item_nth_get {
+         /*@
+         Get the the item, in a given slideshow widget, placed at
+         position @p nth, in its internal items list
+
+         @return The item stored in @p obj at position @p nth or @c NULL,
+         if there's no item with that index (and on errors)
+
+         @ingroup Slideshow */
+
+         const;
+         return Elm_Object_Item *;
+         params {
+            @in unsigned int nth; /*@ The number of the item to grab a handle 
to (0 being
+            the first) */
+         }
+      }
+      next {
+         /*@
+         Slide to the @b next item, in a given slideshow widget
+
+         The sliding animation @p obj is set to use will be the
+         transition effect used, after this call is issued.
+
+         @note If the end of the slideshow's internal list of items is
+         reached, it'll wrap around to the list's beginning, again.
+
+         @ingroup Slideshow */
+
+      }
+      clear {
+         /*@
+         Remove all items from a given slideshow widget
+
+         This removes (and deletes) all items in @p obj, leaving it
+         empty.
+
+         @see elm_object_item_del(), to remove just one item.
+
+         @ingroup Slideshow */
+
+      }
+      item_add {
+         /*@
+         Add (append) a new item in a given slideshow widget.
+
+         @return A handle to the item added or @c NULL, on errors
+
+         Add a new item to @p obj's internal list of items, appending it.
+         The item's class must contain the function really fetching the
+         image object to show for this item, which could be an Evas image
+         object or an Elementary photo, for example. The @p data
+         parameter is going to be passed to both class functions of the
+         item.
+
+         @see #Elm_Slideshow_Item_Class
+         @see elm_slideshow_item_sorted_insert()
+         @see elm_object_item_data_set()
+
+         @ingroup Slideshow */
+
+         return Elm_Object_Item *;
+         params {
+            @in const Elm_Slideshow_Item_Class *itc; /*@ The item class for 
the item */
+            @in const void *data; /*@ The item's data */
+         }
+      }
+      item_sorted_insert {
+         /*@
+         Insert a new item into the given slideshow widget, using the @p func
+         function to sort items (by item handles).
+
+         @return Returns The slideshow item handle, on success, or
+         @c NULL, on errors
+
+         Add a new item to @p obj's internal list of items, in a position
+         determined by the @p func comparing function. The item's class
+         must contain the function really fetching the image object to
+         show for this item, which could be an Evas image object or an
+         Elementary photo, for example. The @p data parameter is going to
+         be passed to both class functions of the item.
+
+         @see #Elm_Slideshow_Item_Class
+         @see elm_slideshow_item_add()
+
+         @ingroup Slideshow */
+
+         return Elm_Object_Item *;
+         params {
+            @in const Elm_Slideshow_Item_Class *itc; /*@ The item class for 
the item */
+            @in const void *data; /*@ The item's data */
+            @in Eina_Compare_Cb func; /*@ The comparing function to be used to 
sort slideshow
+            items <b>by #Elm_Slideshow_Item_Class item handles</b> */
+         }
+      }
+   }
+   implements {
+      class::constructor;
+      Eo_Base::constructor;
+      Evas_Smart::add;
+      Evas_Smart::del;
+      Elm_Widget::focus_next_manager_is;
+      Elm_Widget::focus_direction_manager_is;
+      Elm_Widget::event;
+      Elm_Layout::sizing_eval;
+   }
+   events {
+      changed;
+      transition,end;
+      language,changed;
+      access,changed;
+      focused;
+      unfocused;
+   }
+
+}
diff --git a/src/lib/elm_slideshow_eo.h b/src/lib/elm_slideshow_eo.h
index defce73..175d3b1 100644
--- a/src/lib/elm_slideshow_eo.h
+++ b/src/lib/elm_slideshow_eo.h
@@ -1,3 +1,6 @@
+#include "elm_slideshow.eo.h"
+
+#if 0
 #define ELM_OBJ_SLIDESHOW_CLASS elm_obj_slideshow_class_get()
 
 const Eo_Class *elm_obj_slideshow_class_get(void) EINA_CONST;
@@ -371,3 +374,4 @@ enum
  * @ingroup Slideshow
  */
 #define elm_obj_slideshow_count_get(ret) 
ELM_OBJ_SLIDESHOW_ID(ELM_OBJ_SLIDESHOW_SUB_ID_COUNT_GET), EO_TYPECHECK(unsigned 
int *, ret)
+#endif
diff --git a/src/lib/elm_widget_slideshow.h b/src/lib/elm_widget_slideshow.h
index 2d0e3c8..e42db21 100644
--- a/src/lib/elm_widget_slideshow.h
+++ b/src/lib/elm_widget_slideshow.h
@@ -17,7 +17,7 @@
 /**
  * Base layout smart data extended with slideshow instance data.
  */
-typedef struct _Elm_Slideshow_Smart_Data Elm_Slideshow_Smart_Data;
+typedef struct _Elm_Slideshow_Data       Elm_Slideshow_Data;
 typedef struct _Elm_Slideshow_Item       Elm_Slideshow_Item;
 
 struct _Elm_Slideshow_Item
@@ -29,7 +29,7 @@ struct _Elm_Slideshow_Item
    const Elm_Slideshow_Item_Class *itc;
 };
 
-struct _Elm_Slideshow_Smart_Data
+struct _Elm_Slideshow_Data
 {
    // list of Elm_Slideshow_Item*
    Eina_List            *items;
@@ -59,7 +59,7 @@ struct _Elm_Slideshow_Smart_Data
  */
 
 #define ELM_SLIDESHOW_DATA_GET(o, sd) \
-  Elm_Slideshow_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_SLIDESHOW_CLASS)
+  Elm_Slideshow_Data * sd = eo_data_scope_get(o, ELM_OBJ_SLIDESHOW_CLASS)
 
 #define ELM_SLIDESHOW_DATA_GET_OR_RETURN(o, ptr)     \
   ELM_SLIDESHOW_DATA_GET(o, ptr);                    \

-- 


Reply via email to