jackdanielz pushed a commit to branch master.

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

commit f1b2622462f36c5ae4613aa54e2c92d02ab66a1b
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Wed Mar 26 11:46:20 2014 +0200

    Eolian: Integration of Slider
---
 src/lib/Makefile.am         |  10 +-
 src/lib/elm_slider.c        | 565 +++++++++-----------------------------------
 src/lib/elm_slider.eo       | 390 ++++++++++++++++++++++++++++++
 src/lib/elm_slider_eo.h     |  11 +-
 src/lib/elm_widget_slider.h |   6 +-
 5 files changed, 516 insertions(+), 466 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 18f5856..1cf5b1c 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -644,7 +644,9 @@ BUILT_SOURCES = \
                elm_segment_control.eo.c \
                elm_segment_control.eo.h \
                elm_separator.eo.c \
-               elm_separator.eo.h
+               elm_separator.eo.h \
+               elm_slider.eo.c \
+               elm_slider.eo.h
 
 EXTRA_DIST += \
             elm_widget.eo \
@@ -706,7 +708,8 @@ EXTRA_DIST += \
             elm_route.eo \
             elm_scroller.eo \
             elm_segment_control.eo \
-            elm_separator.eo
+            elm_separator.eo \
+            elm_slider.eo
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -768,5 +771,6 @@ nodist_includesunstable_HEADERS = \
                                  elm_route.eo.h \
                                  elm_scroller.eo.h \
                                  elm_segment_control.eo.h \
-                                 elm_separator.eo.h
+                                 elm_separator.eo.h \
+                                 elm_slider.eo.h
 
diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c
index a044277..2690684 100644
--- a/src/lib/elm_slider.c
+++ b/src/lib/elm_slider.c
@@ -8,8 +8,6 @@
 #include "elm_widget_slider.h"
 #include "elm_widget_layout.h"
 
-EAPI Eo_Op ELM_OBJ_SLIDER_BASE_ID = EO_NOOP;
-
 #define MY_CLASS ELM_OBJ_SLIDER_CLASS
 
 #define MY_CLASS_NAME "Elm_Slider"
@@ -352,21 +350,15 @@ _popup_emit(void *data,
      }
 }
 
-static void
-_elm_slider_smart_event(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_event(Eo *obj, Elm_Slider_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);
-   void *event_info = va_arg(*list, void *);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Slider_Smart_Data *sd = _pd;
    Evas_Event_Mouse_Wheel *mev;
    Evas_Event_Key_Down *ev;
 
-   if (ret) *ret = EINA_FALSE;
    (void) src;
 
-   if (elm_widget_disabled_get(obj)) return;
+   if (elm_widget_disabled_get(obj)) return EINA_FALSE;
 
    if (type == EVAS_CALLBACK_KEY_DOWN) goto key_down;
    else if (type == EVAS_CALLBACK_KEY_UP)
@@ -384,13 +376,13 @@ _elm_slider_smart_event(Eo *obj, void *_pd, va_list *list)
               (!strcmp(ev_up->key, "KP_Down"))))
              _popup_hide(obj, NULL, NULL, NULL);
 
-         return;
+         return EINA_FALSE;
      }
    else if (type != EVAS_CALLBACK_MOUSE_WHEEL)
-     return;
+     return EINA_FALSE;
 
    mev = event_info;
-   if (mev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
+   if (mev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
 
    if (mev->z < 0) _drag_up(obj, NULL, NULL, NULL);
    else _drag_down(obj, NULL, NULL, NULL);
@@ -400,12 +392,12 @@ _elm_slider_smart_event(Eo *obj, void *_pd, va_list *list)
 
 key_down:
    ev = event_info;
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
-   if (elm_widget_disabled_get(obj)) return;
+   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
+   if (elm_widget_disabled_get(obj)) return EINA_FALSE;
    if ((!strcmp(ev->key, "Left")) ||
        ((!strcmp(ev->key, "KP_Left")) && (!ev->string)))
      {
-        if (!sd->horizontal) return;
+        if (!sd->horizontal) return EINA_FALSE;
         if (!sd->inverted) _drag_down(obj, NULL, NULL, NULL);
         else _drag_up(obj, NULL, NULL, NULL);
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@@ -414,7 +406,7 @@ key_down:
    else if ((!strcmp(ev->key, "Right")) ||
             ((!strcmp(ev->key, "KP_Right")) && (!ev->string)))
      {
-        if (!sd->horizontal) return;
+        if (!sd->horizontal) return EINA_FALSE;
         if (!sd->inverted) _drag_up(obj, NULL, NULL, NULL);
         else _drag_down(obj, NULL, NULL, NULL);
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@@ -423,7 +415,7 @@ key_down:
    else if ((!strcmp(ev->key, "Up")) ||
             ((!strcmp(ev->key, "KP_Up")) && (!ev->string)))
      {
-        if (sd->horizontal) return;
+        if (sd->horizontal) return EINA_FALSE;
         if (sd->inverted) _drag_up(obj, NULL, NULL, NULL);
         else _drag_down(obj, NULL, NULL, NULL);
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@@ -432,31 +424,26 @@ key_down:
    else if ((!strcmp(ev->key, "Down")) ||
             ((!strcmp(ev->key, "KP_Down")) && (!ev->string)))
      {
-        if (sd->horizontal) return;
+        if (sd->horizontal) return EINA_FALSE;
         if (sd->inverted) _drag_down(obj, NULL, NULL, NULL);
         else _drag_up(obj, NULL, NULL, NULL);
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
         goto success;
      }
-   else return;
+   else return EINA_FALSE;
 
 success:
    _popup_show(obj, NULL, NULL, NULL);
    _slider_update(obj, EINA_TRUE);
 
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
-static void
-_elm_slider_smart_activate(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_activate(Eo *obj, Elm_Slider_Data *sd, Elm_Activate act)
 {
-   Elm_Activate act = va_arg(*list, Elm_Activate);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
-   Elm_Slider_Smart_Data *sd = _pd;
-
-   if (elm_widget_disabled_get(obj)) return;
-   if (act == ELM_ACTIVATE_DEFAULT) return;
+   if (elm_widget_disabled_get(obj)) return EINA_FALSE;
+   if (act == ELM_ACTIVATE_DEFAULT) return EINA_FALSE;
 
    if ((act == ELM_ACTIVATE_UP) ||
        (act == ELM_ACTIVATE_RIGHT))
@@ -473,7 +460,7 @@ _elm_slider_smart_activate(Eo *obj, void *_pd, va_list 
*list)
 
    _slider_update(obj, EINA_TRUE);
 
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
 static void
@@ -510,7 +497,7 @@ _track_resize_cb(void *data,
 }
 
 static void
-_popup_add(Elm_Slider_Smart_Data *sd, Eo *obj)
+_popup_add(Elm_Slider_Data *sd, Eo *obj)
 {
    /* if theme has an overlayed slider mode, then lets support it */
    if (!edje_object_part_exists(elm_layout_edje_get(obj), "elm.track.slider")) 
return;
@@ -541,15 +528,12 @@ _popup_add(Elm_Slider_Smart_Data *sd, Eo *obj)
    elm_layout_content_set(obj, "elm.track.slider", sd->track);
 }
 
-static void
-_elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_theme_apply(Eo *obj, Elm_Slider_Data *sd)
 {
-   Elm_Slider_Smart_Data *sd = _pd;
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
    Eina_Bool int_ret;
    ELM_LAYOUT_DATA_GET(obj, ld);
-   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
 
    if (sd->horizontal)
      {
@@ -569,7 +553,7 @@ _elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list)
      }
 
    eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret));
-   if (!int_ret) return;
+   if (!int_ret) return EINA_FALSE;
 
    if (sd->popup)
      edje_object_scale_set(sd->popup, elm_widget_scale_get(obj) *
@@ -609,11 +593,11 @@ _elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list)
 
    evas_object_smart_changed(obj);
 
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
-static void
-_elm_slider_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
+EOLIAN static void
+_elm_slider_elm_layout_sizing_eval(Eo *obj, Elm_Slider_Data *_pd EINA_UNUSED)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
    Evas_Coord minw = -1, minh = -1;
@@ -785,11 +769,9 @@ _min_max_set(Evas_Object *obj)
      }
 }
 
-static void
-_elm_slider_smart_calculate(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slider_evas_smart_calculate(Eo *obj, Elm_Slider_Data *sd)
 {
-   Elm_Slider_Smart_Data *sd = _pd;
-
    elm_layout_freeze(obj);
 
    if (sd->horizontal)
@@ -843,10 +825,9 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj)
    return NULL;
 }
 
-static void
-_elm_slider_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slider_evas_smart_add(Eo *obj, Elm_Slider_Data *priv)
 {
-   Elm_Slider_Smart_Data *priv = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
@@ -901,11 +882,9 @@ _elm_slider_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    evas_object_smart_changed(obj);
 }
 
-static void
-_elm_slider_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slider_evas_smart_del(Eo *obj, Elm_Slider_Data *sd)
 {
-   Elm_Slider_Smart_Data *sd = _pd;
-
    eina_stringshare_del(sd->indicator);
    eina_stringshare_del(sd->units);
    ecore_timer_del(sd->delay);
@@ -914,18 +893,16 @@ _elm_slider_smart_del(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
 
-static void
-_elm_slider_smart_text_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, 
va_list *list)
+EOLIAN static const Elm_Layout_Part_Alias_Description*
+_elm_slider_elm_layout_text_aliases_get(Eo *obj EINA_UNUSED, Elm_Slider_Data 
*_pd EINA_UNUSED)
 {
-   const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const 
Elm_Layout_Part_Alias_Description **);
-   *aliases = _text_aliases;
+   return _text_aliases;
 }
 
-static void
-_elm_slider_smart_content_aliases_get(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
+EOLIAN static const Elm_Layout_Part_Alias_Description*
+_elm_slider_elm_layout_content_aliases_get(Eo *obj EINA_UNUSED, 
Elm_Slider_Data *_pd EINA_UNUSED)
 {
-   const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const 
Elm_Layout_Part_Alias_Description **);
-   *aliases = _content_aliases;
+   return _content_aliases;
 }
 
 EAPI Evas_Object *
@@ -937,8 +914,8 @@ elm_slider_add(Evas_Object *parent)
    return obj;
 }
 
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_slider_eo_base_constructor(Eo *obj, Elm_Slider_Data *_pd EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
@@ -946,20 +923,9 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
 }
 
-EAPI void
-elm_slider_span_size_set(Evas_Object *obj,
-                         Evas_Coord size)
+EOLIAN static void
+_elm_slider_span_size_set(Eo *obj, Elm_Slider_Data *sd, Evas_Coord size)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_span_size_set(size));
-}
-
-static void
-_elm_slider_span_size_set(Eo *obj, void *_pd, va_list *list)
-{
-   Evas_Coord size = va_arg(*list, Evas_Coord);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    if (sd->size == size) return;
    sd->size = size;
 
@@ -979,36 +945,15 @@ _elm_slider_span_size_set(Eo *obj, void *_pd, va_list 
*list)
    evas_object_smart_changed(obj);
 }
 
-EAPI Evas_Coord
-elm_slider_span_size_get(const Evas_Object *obj)
-{
-   ELM_SLIDER_CHECK(obj) 0;
-   Evas_Coord ret;
-   eo_do((Eo *) obj, elm_obj_slider_span_size_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slider_span_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Evas_Coord
+_elm_slider_span_size_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   Evas_Coord *ret = va_arg(*list, Evas_Coord *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->size;
+   return sd->size;
 }
 
-EAPI void
-elm_slider_unit_format_set(Evas_Object *obj,
-                           const char *units)
+EOLIAN static void
+_elm_slider_unit_format_set(Eo *obj, Elm_Slider_Data *sd, const char *units)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_unit_format_set(units));
-}
-
-static void
-_elm_slider_unit_format_set(Eo *obj, void *_pd, va_list *list)
-{
-   const char *units = va_arg(*list, const char *);
-   Elm_Slider_Smart_Data *sd = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    eina_stringshare_replace(&sd->units, units);
@@ -1029,72 +974,28 @@ _elm_slider_unit_format_set(Eo *obj, void *_pd, va_list 
*list)
    evas_object_smart_changed(obj);
 }
 
-EAPI const char *
-elm_slider_unit_format_get(const Evas_Object *obj)
-{
-   ELM_SLIDER_CHECK(obj) NULL;
-   const char *ret;
-   eo_do((Eo *) obj, elm_obj_slider_unit_format_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slider_unit_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const char **ret = va_arg(*list, const char **);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->units;
-}
-
-EAPI void
-elm_slider_indicator_format_set(Evas_Object *obj,
-                                const char *indicator)
+EOLIAN static const char*
+_elm_slider_unit_format_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_indicator_format_set(indicator));
+   return sd->units;
 }
 
-static void
-_elm_slider_indicator_format_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_indicator_format_set(Eo *obj, Elm_Slider_Data *sd, const char 
*indicator)
 {
-   const char *indicator = va_arg(*list, const char *);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    eina_stringshare_replace(&sd->indicator, indicator);
    evas_object_smart_changed(obj);
 }
 
-EAPI const char *
-elm_slider_indicator_format_get(const Evas_Object *obj)
-{
-   ELM_SLIDER_CHECK(obj) NULL;
-   const char *ret;
-   eo_do((Eo *) obj, elm_obj_slider_indicator_format_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slider_indicator_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const char **ret = va_arg(*list, const char **);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->indicator;
-}
-
-EAPI void
-elm_slider_horizontal_set(Evas_Object *obj,
-                          Eina_Bool horizontal)
+EOLIAN static const char*
+_elm_slider_indicator_format_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_horizontal_set(horizontal));
+   return sd->indicator;
 }
 
-static void
-_elm_slider_horizontal_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_horizontal_set(Eo *obj, Elm_Slider_Data *sd, Eina_Bool horizontal)
 {
-   Eina_Bool horizontal = va_arg(*list, int);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    horizontal = !!horizontal;
    if (sd->horizontal == horizontal) return;
    sd->horizontal = horizontal;
@@ -1102,39 +1003,15 @@ _elm_slider_horizontal_set(Eo *obj, void *_pd, va_list 
*list)
    eo_do(obj, elm_obj_widget_theme_apply(NULL));
 }
 
-EAPI Eina_Bool
-elm_slider_horizontal_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_slider_horizontal_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   ELM_SLIDER_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret;
-   eo_do((Eo *) obj, elm_obj_slider_horizontal_get(&ret));
-   return ret;
+   return sd->horizontal;
 }
 
-static void
-_elm_slider_horizontal_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_min_max_set(Eo *obj, Elm_Slider_Data *sd, double min, double max)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->horizontal;
-}
-
-EAPI void
-elm_slider_min_max_set(Evas_Object *obj,
-                       double min,
-                       double max)
-{
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_min_max_set(min, max));
-}
-
-static void
-_elm_slider_min_max_set(Eo *obj, void *_pd, va_list *list)
-{
-   double min = va_arg(*list, double);
-   double max = va_arg(*list, double);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    if ((sd->val_min == min) && (sd->val_max == max)) return;
    sd->val_min = min;
    sd->val_max = max;
@@ -1144,43 +1021,20 @@ _elm_slider_min_max_set(Eo *obj, void *_pd, va_list 
*list)
    _visuals_refresh(obj);
 }
 
-EAPI void
-elm_slider_min_max_get(const Evas_Object *obj,
-                       double *min,
-                       double *max)
+EOLIAN static void
+_elm_slider_min_max_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd, double *min, 
double *max)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do((Eo *) obj, elm_obj_slider_min_max_get(min, max));
-}
-
-static void
-_elm_slider_min_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   double *min = va_arg(*list, double *);
-   double *max = va_arg(*list, double *);
    if (min) *min = 0.0;
    if (max) *max = 0.0;
 
-   Elm_Slider_Smart_Data *sd = _pd;
 
    if (min) *min = sd->val_min;
    if (max) *max = sd->val_max;
 }
 
-EAPI void
-elm_slider_value_set(Evas_Object *obj,
-                     double val)
+EOLIAN static void
+_elm_slider_value_set(Eo *obj, Elm_Slider_Data *sd, double val)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_value_set(val));
-}
-
-static void
-_elm_slider_value_set(Eo *obj, void *_pd, va_list *list)
-{
-   double val = va_arg(*list, double);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    if (sd->val == val) return;
    sd->val = val;
 
@@ -1190,36 +1044,15 @@ _elm_slider_value_set(Eo *obj, void *_pd, va_list *list)
    _visuals_refresh(obj);
 }
 
-EAPI double
-elm_slider_value_get(const Evas_Object *obj)
-{
-   ELM_SLIDER_CHECK(obj) 0.0;
-   double ret;
-   eo_do((Eo *) obj, elm_obj_slider_value_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slider_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   double *ret = va_arg(*list, double *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->val;
-}
-
-EAPI void
-elm_slider_inverted_set(Evas_Object *obj,
-                        Eina_Bool inverted)
+EOLIAN static double
+_elm_slider_value_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_inverted_set(inverted));
+   return sd->val;
 }
 
-static void
-_elm_slider_inverted_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_inverted_set(Eo *obj, Elm_Slider_Data *sd, Eina_Bool inverted)
 {
-   Eina_Bool inverted = va_arg(*list, int);
-   Elm_Slider_Smart_Data *sd = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    inverted = !!inverted;
@@ -1244,80 +1077,32 @@ _elm_slider_inverted_set(Eo *obj, void *_pd, va_list 
*list)
    _visuals_refresh(obj);
 }
 
-EAPI Eina_Bool
-elm_slider_inverted_get(const Evas_Object *obj)
-{
-   ELM_SLIDER_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret;
-   eo_do((Eo *) obj, elm_obj_slider_inverted_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slider_inverted_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slider_inverted_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->inverted;
+   return sd->inverted;
 }
 
-EAPI void
-elm_slider_indicator_format_function_set(Evas_Object *obj,
-                                         char *(*func)(double),
-                                         void (*free_func)(char *))
+EOLIAN static void
+_elm_slider_indicator_format_function_set(Eo *obj, Elm_Slider_Data *sd, 
slider_func_type func, slider_freefunc_type free_func)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_indicator_format_function_set(func, free_func));
-}
-
-static void
-_elm_slider_indicator_format_function_set(Eo *obj, void *_pd, va_list *list)
-{
-   slider_func_type func = va_arg(*list, slider_func_type);
-   slider_freefunc_type free_func = va_arg(*list, slider_freefunc_type);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    sd->indicator_format_func = func;
    sd->indicator_format_free = free_func;
    evas_object_smart_changed(obj);
 }
 
-EAPI void
-elm_slider_units_format_function_set(Evas_Object *obj,
-                                     char *(*func)(double),
-                                     void (*free_func)(char *))
-{
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_units_format_function_set(func, free_func));
-}
-
-static void
-_elm_slider_units_format_function_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_units_format_function_set(Eo *obj, Elm_Slider_Data *sd, 
slider_func_type func, slider_freefunc_type free_func)
 {
-   slider_func_type func = va_arg(*list, slider_func_type);
-   slider_freefunc_type free_func = va_arg(*list, slider_freefunc_type);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    sd->units_format_func = func;
    sd->units_format_free = free_func;
 
    evas_object_smart_changed(obj);
 }
 
-EAPI void
-elm_slider_indicator_show_set(Evas_Object *obj,
-                              Eina_Bool show)
+EOLIAN static void
+_elm_slider_indicator_show_set(Eo *obj, Elm_Slider_Data *sd, Eina_Bool show)
 {
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_indicator_show_set(show));
-}
-
-static void
-_elm_slider_indicator_show_set(Eo *obj, void *_pd, va_list *list)
-{
-   Eina_Bool show = va_arg(*list, int);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    if (show)
      {
         sd->indicator_show = EINA_TRUE;
@@ -1336,35 +1121,15 @@ _elm_slider_indicator_show_set(Eo *obj, void *_pd, 
va_list *list)
    evas_object_smart_changed(obj);
 }
 
-EAPI Eina_Bool
-elm_slider_indicator_show_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_slider_indicator_show_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   ELM_SLIDER_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret;
-   eo_do((Eo *) obj, elm_obj_slider_indicator_show_get(&ret));
-   return ret;
+   return sd->indicator_show;
 }
 
-static void
-_elm_slider_indicator_show_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_step_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd, double step)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->indicator_show;
-}
-
-EAPI void
-elm_slider_step_set(Evas_Object *obj, double step)
-{
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_step_set(step));
-}
-
-static void
-_elm_slider_step_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   double step = va_arg(*list, double);
-   Elm_Slider_Smart_Data *sd = _pd;
    if (sd->step == step) return;
 
    if (step < 0.0) step = 0.0;
@@ -1373,79 +1138,43 @@ _elm_slider_step_set(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
    sd->step = step;
 }
 
-EAPI double
-elm_slider_step_get(const Evas_Object *obj)
+EOLIAN static double
+_elm_slider_step_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
 {
-   ELM_SLIDER_CHECK(obj) 0.0;
-   double ret;
-   eo_do((Eo *) obj, elm_obj_slider_step_get(&ret));
-   return ret;
+   return sd->step;
 }
 
-static void
-_elm_slider_step_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_slider_indicator_show_on_focus_set(Eo *obj EINA_UNUSED, Elm_Slider_Data 
*sd, Eina_Bool flag)
 {
-   double *ret = va_arg(*list, double *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->step;
-}
-
-EAPI void
-elm_slider_indicator_show_on_focus_set(Evas_Object *obj, Eina_Bool flag)
-{
-   ELM_SLIDER_CHECK(obj);
-   eo_do(obj, elm_obj_slider_indicator_show_on_focus_set(flag));
-}
-
-static void
-_elm_slider_indicator_show_on_focus_set(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
-{
-   Eina_Bool flag = va_arg(*list, int);
-   Elm_Slider_Smart_Data *sd = _pd;
-
    if (flag)
      sd->always_popup_show = EINA_TRUE;
    else
      sd->always_popup_show = EINA_FALSE;
 }
 
-EAPI Eina_Bool
-elm_slider_indicator_show_on_focus_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_slider_indicator_show_on_focus_get(Eo *obj EINA_UNUSED, Elm_Slider_Data 
*sd)
 {
-   ELM_SLIDER_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret;
-
-   eo_do((Eo *) obj, elm_obj_slider_indicator_show_on_focus_get(&ret));
-   return ret;
-}
-
-static void
-_elm_slider_indicator_show_on_focus_get(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Slider_Smart_Data *sd = _pd;
-   *ret = sd->always_popup_show;
+   return sd->always_popup_show;
 }
 
-static void
-_elm_slider_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, 
Elm_Slider_Data *_pd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = EINA_FALSE;
+   return EINA_FALSE;
 }
 
-static void
-_elm_slider_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, 
Elm_Slider_Data *_pd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = EINA_FALSE;
+   return EINA_FALSE;
 }
 
-static void
-_elm_slider_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_on_focus(Eo *obj, Elm_Slider_Data *sd)
 {
    Eina_Bool int_ret;
-   Elm_Slider_Smart_Data *sd = _pd;
 
    eo_do_super(obj, MY_CLASS, elm_obj_widget_on_focus(&int_ret));
 
@@ -1453,92 +1182,14 @@ _elm_slider_smart_on_focus(Eo *obj, void *_pd 
EINA_UNUSED, va_list *list EINA_UN
      _popup_show(obj, NULL, NULL, NULL);
    else
      _popup_hide(obj, NULL, NULL, NULL);
-}
 
-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_slider_smart_add),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), 
_elm_slider_smart_del),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), 
_elm_slider_smart_calculate),
-
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), 
_elm_slider_smart_theme),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), 
_elm_slider_smart_event),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACTIVATE), 
_elm_slider_smart_activate),
-        
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), 
_elm_slider_smart_focus_next_manager_is),
-        
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), 
_elm_slider_smart_focus_direction_manager_is),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ON_FOCUS), 
_elm_slider_smart_on_focus),
-
-        EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), 
_elm_slider_smart_sizing_eval),
-        EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_ALIASES_GET), 
_elm_slider_smart_text_aliases_get),
-        
EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_CONTENT_ALIASES_GET), 
_elm_slider_smart_content_aliases_get),
-
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET), 
_elm_slider_span_size_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET), 
_elm_slider_span_size_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET), 
_elm_slider_unit_format_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET), 
_elm_slider_unit_format_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET), 
_elm_slider_indicator_format_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET), 
_elm_slider_indicator_format_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET), 
_elm_slider_horizontal_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET), 
_elm_slider_horizontal_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET), 
_elm_slider_min_max_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET), 
_elm_slider_min_max_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_SET), 
_elm_slider_value_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_GET), 
_elm_slider_value_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET), 
_elm_slider_inverted_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET), 
_elm_slider_inverted_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET),
 _elm_slider_indicator_format_function_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET), 
_elm_slider_units_format_function_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET), 
_elm_slider_indicator_show_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET), 
_elm_slider_indicator_show_get),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_STEP_SET), 
_elm_slider_step_set),
-        EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_STEP_GET), 
_elm_slider_step_get),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_SET),
 _elm_slider_indicator_show_on_focus_set),
-        
EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_GET),
 _elm_slider_indicator_show_on_focus_get),
-        EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
+   return int_ret;
+}
 
+EOLIAN static void
+_elm_slider_class_constructor(Eo_Class *klass)
+{
    evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
 }
 
-static const Eo_Op_Description op_desc[] = {
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET, "Set the (exact) 
length of the bar region of a given slider widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET, "Get the length 
set for the bar region of a given slider widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET, "Set the format 
string for the unit label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET, "Get the unit 
label format of the slider."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET, "Set the 
format string for the indicator label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET, "Get the 
indicator label format of the slider."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET, "Set the 
orientation of a given slider widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET, "Retrieve the 
orientation of a given slider widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET, "Set the minimum and 
maximum values for the slider."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET, "Get the minimum and 
maximum values of the slider."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_VALUE_SET, "Set the value the 
slider displays."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_VALUE_GET, "Get the value 
displayed by the spinner."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET, "Invert a given 
slider widget's displaying values order."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET, "Get whether a 
given slider widget's displaying values are inverted or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET, 
"Set the format function pointer for the indicator label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET, "Set 
the format function pointer for the units label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET, "Set whether 
to enlarge slider indicator (augmented knob) or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET, "Get whether 
a given slider widget's enlarging indicator or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_STEP_SET, "Set the draggable's 
step size."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_STEP_GET, "Get the draggable's 
step size."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_SET, "Set 
the visiblity of slider indicator."),
-     EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_GET, "Get 
the visiblity of slider indicator."),
-     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_SLIDER_BASE_ID, op_desc, 
ELM_OBJ_SLIDER_SUB_ID_LAST),
-     NULL,
-     sizeof(Elm_Slider_Smart_Data),
-     _class_constructor,
-     NULL
-};
-
-EO_DEFINE_CLASS(elm_obj_slider_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, 
NULL);
+#include "elm_slider.eo.c"
diff --git a/src/lib/elm_slider.eo b/src/lib/elm_slider.eo
new file mode 100644
index 0000000..2bd8d9f
--- /dev/null
+++ b/src/lib/elm_slider.eo
@@ -0,0 +1,390 @@
+class Elm_Slider (Elm_Layout)
+{
+   eo_prefix: elm_obj_slider;
+   properties {
+      horizontal {
+         set {
+            /*@
+            Set the orientation of a given slider widget.
+
+            Use this function to change how your slider is to be
+            disposed: vertically or horizontally.
+
+            By default it's displayed horizontally.
+
+            @see elm_slider_horizontal_get()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Retrieve the orientation of a given slider widget
+
+            @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
+            @c EINA_FALSE if it's @b vertical (and on errors).
+
+            @see elm_slider_horizontal_set() for more details.
+
+            @ingroup Slider */
+         }
+         values {
+            Eina_Bool horizontal; /*@ Use @c EINA_TRUE to make @p obj to be
+            @b horizontal, @c EINA_FALSE to make it @b vertical. */
+         }
+      }
+      value {
+         set {
+            /*@
+            Set the value the slider displays.
+
+            Value will be presented on the unit label following format 
specified with
+            elm_slider_unit_format_set() and on indicator with
+            elm_slider_indicator_format_set().
+
+            @warning The value must to be between min and max values. This 
values
+            are set by elm_slider_min_max_set().
+
+            @see elm_slider_value_get()
+            @see elm_slider_unit_format_set()
+            @see elm_slider_indicator_format_set()
+            @see elm_slider_min_max_set()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get the value displayed by the slider.
+
+            @return The value displayed.
+
+            @see elm_slider_value_set() for details.
+
+            @ingroup Slider */
+         }
+         values {
+            double val; /*@ The value to be displayed. */
+         }
+      }
+      indicator_format {
+         set {
+            /*@
+            Set the format string for the indicator label.
+
+            The slider may display its value somewhere else then unit label,
+            for example, above the slider knob that is dragged around. This 
function
+            sets the format string used for this.
+
+            If @c NULL, indicator label won't be visible. If not it sets the 
format
+            string for the label text. To the label text is provided a 
floating point
+            value, so the label text can display up to 1 floating point value.
+            Note that this is optional.
+
+            Use a format string such as "%1.2f meters" for example, and it will
+            display values like: "3.14 meters" for a value equal to 3.14159.
+
+            Default is indicator label disabled.
+
+            @see elm_slider_indicator_format_get()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get the indicator label format of the slider.
+
+            @return The indicator label format string in UTF-8.
+
+            The slider may display its value somewhere else then unit label,
+            for example, above the slider knob that is dragged around. This 
function
+            gets the format string used for this.
+
+            @see elm_slider_indicator_format_set() for more
+            information on how this works.
+
+            @ingroup Slider */
+         }
+         values {
+            const char *indicator; /*@ The format string for the indicator 
display. */
+         }
+      }
+      inverted {
+         set {
+            /*@
+            Invert a given slider widget's displaying values order
+
+            A slider may be @b inverted, in which state it gets its
+            values inverted, with high vales being on the left or top and
+            low values on the right or bottom, as opposed to normally have
+            the low values on the former and high values on the latter,
+            respectively, for horizontal and vertical modes.
+
+            @see elm_slider_inverted_get()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get whether a given slider widget's displaying values are
+            inverted or not.
+
+            @return @c EINA_TRUE, if @p obj has inverted values,
+            @c EINA_FALSE otherwise (and on errors).
+
+            @see elm_slider_inverted_set() for more details.
+
+            @ingroup Slider */
+         }
+         values {
+            Eina_Bool inverted; /*@ Use @c EINA_TRUE to make @p obj inverted,
+            @c EINA_FALSE to bring it back to default, non-inverted values. */
+         }
+      }
+      indicator_show {
+         set {
+            /*@
+            Set whether to enlarge slider indicator (augmented knob) or not.
+
+            By default, indicator will be bigger while dragged by the user.
+
+            @warning It won't display values set with
+            elm_slider_indicator_format_set() if you disable indicator.
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get whether a given slider widget's enlarging indicator or not.
+
+            @return @c EINA_TRUE, if @p obj is enlarging indicator, or
+            @c EINA_FALSE otherwise (and on errors).
+
+            @see elm_slider_indicator_show_set() for details.
+
+            @ingroup Slider */
+         }
+         values {
+            Eina_Bool show; /*@ @c EINA_TRUE will make it enlarge, @c 
EINA_FALSE will
+            let the knob always at default size. */
+         }
+      }
+      min_max {
+         set {
+            /*@
+            Set the minimum and maximum values for the slider.
+
+            Define the allowed range of values to be selected by the user.
+
+            If actual value is less than @p min, it will be updated to @p min. 
If it
+            is bigger then @p max, will be updated to @p max. Actual value can 
be
+            get with elm_slider_value_get().
+
+            By default, min is equal to 0.0, and max is equal to 1.0.
+
+            @warning Maximum must be greater than minimum, otherwise behavior
+            is undefined.
+
+            @see elm_slider_min_max_get()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get the minimum and maximum values of the slider.
+
+            @note If only one value is needed, the other pointer can be passed
+            as @c NULL.
+
+            @see elm_slider_min_max_set() for details.
+
+            @ingroup Slider */
+         }
+         values {
+            double min; /*@ The minimum value. */
+            double max; /*@ The maximum value. */
+         }
+      }
+      unit_format {
+         set {
+            /*@
+            Set the format string for the unit label.
+
+            Unit label is displayed all the time, if set, after slider's bar.
+            In horizontal mode, at right and in vertical mode, at bottom.
+
+            If @c NULL, unit label won't be visible. If not it sets the format
+            string for the label text. To the label text is provided a 
floating point
+            value, so the label text can display up to 1 floating point value.
+            Note that this is optional.
+
+            Use a format string such as "%1.2f meters" for example, and it will
+            display values like: "3.14 meters" for a value equal to 3.14159.
+
+            Default is unit label disabled.
+
+            @see elm_slider_indicator_format_get()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get the unit label format of the slider.
+
+            @return The unit label format string in UTF-8.
+
+            Unit label is displayed all the time, if set, after slider's bar.
+            In horizontal mode, at right and in vertical mode, at bottom.
+
+            @see elm_slider_unit_format_set() for more
+            information on how this works.
+
+            @ingroup Slider */
+         }
+         values {
+            const char *units; /*@ The format string for the unit display. */
+         }
+      }
+      indicator_show_on_focus {
+         set {
+            /*@
+            Show the indicator of slider on focus
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get whether the indicator of the slider is set or not
+
+            @return @c EINA_TRUE, if indicator is set
+            @c EINA_FALSE otherwise.
+
+            @ingroup Slider */
+         }
+         values {
+            Eina_Bool flag; /*@ @ EINA_TRUE sets the indicator visible */
+         }
+      }
+      span_size {
+         set {
+            /*@
+            Set the (exact) length of the bar region of a given slider widget.
+
+            This sets the minimum width (when in horizontal mode) or height
+            (when in vertical mode) of the actual bar area of the slider
+            @p obj. This in turn affects the object's minimum size. Use
+            this when you're not setting other size hints expanding on the
+            given direction (like weight and alignment hints) and you would
+            like it to have a specific size.
+
+            @note Icon, end, label, indicator and unit text around @p obj
+            will require their
+            own space, which will make @p obj to require more the @p size,
+            actually.
+
+            @see elm_slider_span_size_get()
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get the length set for the bar region of a given slider widget
+
+            @return The length of the slider's bar region.
+
+            If that size was not set previously, with
+            elm_slider_span_size_set(), this call will return @c 0.
+
+            @ingroup Slider */
+         }
+         values {
+            Evas_Coord size; /*@ The length of the slider's bar region. */
+         }
+      }
+      step {
+         set {
+            /*@
+            Set the step by which slider indicator will move.
+
+            This value is used when draggable object is moved automatically 
i.e., in case
+            of key event when up/down/left/right key is pressed or in case when
+            accessibility is set and flick event is used to inc/dec slider 
values.
+            By default step value is equal to 0.05.
+
+            @see elm_slider_step_get() for more details.
+
+            @ingroup Slider */
+         }
+         get {
+            /*@
+            Get the step by which slider indicator moves.
+
+            @return The step value.
+
+            @see elm_slider_step_set() for more details.
+
+            @ingroup Slider */
+         }
+         values {
+            double step; /*@ The step value. */
+         }
+      }
+      indicator_format_function {
+         set {
+            /*@
+            Set the format function pointer for the indicator label
+
+            Set the callback function to format the indicator string.
+
+            @see elm_slider_indicator_format_set() for more info on how this 
works.
+
+            @ingroup Slider */
+         }
+         values {
+            slider_func_type func; /*@ The indicator format function. */
+            slider_freefunc_type free_func; /*@ The freeing function for the 
format string. */
+         }
+      }
+      units_format_function {
+         set {
+            /*@
+            Set the format function pointer for the units label
+
+            Set the callback function to format the units string.
+
+            @see elm_slider_unit_format_set() for more info on how this works.
+
+            @ingroup Slider */
+         }
+         values {
+            slider_func_type func; /*@ The units format function. */
+            slider_freefunc_type free_func; /*@ The freeing function for the 
format string. */
+         }
+      }
+   }
+   implements {
+      class::constructor;
+      Eo_Base::constructor;
+      Evas_Smart::calculate;
+      Evas_Smart::add;
+      Evas_Smart::del;
+      Elm_Widget::theme_apply;
+      Elm_Widget::activate;
+      Elm_Widget::focus_next_manager_is;
+      Elm_Widget::focus_direction_manager_is;
+      Elm_Widget::on_focus;
+      Elm_Widget::event;
+      Elm_Layout::text_aliases::get;
+      Elm_Layout::content_aliases::get;
+      Elm_Layout::sizing_eval;
+   }
+   events {
+      changed;
+      delay,changed;
+      slider,drag,start;
+      slider,drag,stop;
+      language,changed;
+      access,changed;
+      focused;
+      unfocused;
+   }
+
+}
diff --git a/src/lib/elm_slider_eo.h b/src/lib/elm_slider_eo.h
index fdcc3d5..b431fdc 100644
--- a/src/lib/elm_slider_eo.h
+++ b/src/lib/elm_slider_eo.h
@@ -1,12 +1,15 @@
+typedef char *(*slider_func_type)(double);
+typedef void (*slider_freefunc_type)(char *);
+
+#include "elm_slider.eo.h"
+
+#if 0
 #define ELM_OBJ_SLIDER_CLASS elm_obj_slider_class_get()
 
 const Eo_Class *elm_obj_slider_class_get(void) EINA_CONST;
 
 extern EAPI Eo_Op ELM_OBJ_SLIDER_BASE_ID;
 
-typedef char *(*slider_func_type)(double);
-typedef void (*slider_freefunc_type)(char *);
-
 enum
 {
    ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET,
@@ -356,3 +359,5 @@ enum
  * @ingroup Slider
  */
 #define elm_obj_slider_indicator_show_on_focus_get(ret) 
ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_GET), 
EO_TYPECHECK(Eina_Bool*, ret)
+
+#endif
diff --git a/src/lib/elm_widget_slider.h b/src/lib/elm_widget_slider.h
index 8f9f14b..287ed9f 100644
--- a/src/lib/elm_widget_slider.h
+++ b/src/lib/elm_widget_slider.h
@@ -17,8 +17,8 @@
 /**
  * Base layout smart data extended with slider instance data.
  */
-typedef struct _Elm_Slider_Smart_Data Elm_Slider_Smart_Data;
-struct _Elm_Slider_Smart_Data
+typedef struct _Elm_Slider_Data Elm_Slider_Data;
+struct _Elm_Slider_Data
 {
    Evas_Object          *spacer, *popup, *track;
    Ecore_Timer          *delay;
@@ -52,7 +52,7 @@ struct _Elm_Slider_Smart_Data
  */
 
 #define ELM_SLIDER_DATA_GET(o, sd) \
-  Elm_Slider_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_SLIDER_CLASS)
+  Elm_Slider_Data * sd = eo_data_scope_get(o, ELM_OBJ_SLIDER_CLASS)
 
 #define ELM_SLIDER_DATA_GET_OR_RETURN(o, ptr)        \
   ELM_SLIDER_DATA_GET(o, ptr);                       \

-- 


Reply via email to