Eolian: Integration of Progressbar
authorDaniel Zaoui <daniel.zaoui@samsung.com>
Wed, 26 Mar 2014 07:36:41 +0000 (09:36 +0200)
committerDaniel Zaoui <daniel.zaoui@samsung.com>
Mon, 31 Mar 2014 05:19:03 +0000 (08:19 +0300)
src/lib/Makefile.am
src/lib/elm_progressbar.c
src/lib/elm_progressbar.eo [new file with mode: 0644]
src/lib/elm_progressbar_eo.h
src/lib/elm_widget_progressbar.h

index a2035e3..0380399 100644 (file)
@@ -632,7 +632,9 @@ BUILT_SOURCES = \
                elc_popup.eo.c \
                elc_popup.eo.h \
                elm_prefs.eo.c \
-               elm_prefs.eo.h
+               elm_prefs.eo.h \
+               elm_progressbar.eo.c \
+               elm_progressbar.eo.h
 
 EXTRA_DIST += \
             elm_widget.eo \
@@ -688,7 +690,8 @@ EXTRA_DIST += \
             elc_player.eo \
             elm_plug.eo \
             elc_popup.eo \
-            elm_prefs.eo
+            elm_prefs.eo \
+            elm_progressbar.eo
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -744,5 +747,6 @@ nodist_includesunstable_HEADERS = \
                                  elc_player.eo.h \
                                  elm_plug.eo.h \
                                  elc_popup.eo.h \
-                                 elm_prefs.eo.h
+                                 elm_prefs.eo.h \
+                                 elm_progressbar.eo.h
 
index 8014c54..c956061 100644 (file)
@@ -8,8 +8,6 @@
 #include "elm_widget_progressbar.h"
 #include "elm_widget_layout.h"
 
-EAPI Eo_Op ELM_OBJ_PROGRESSBAR_BASE_ID = EO_NOOP;
-
 #define MY_CLASS ELM_OBJ_PROGRESSBAR_CLASS
 
 #define MY_CLASS_NAME "Elm_Progressbar"
@@ -108,8 +106,8 @@ _val_set(Evas_Object *obj)
       }
 }
 
-static void
-_elm_progressbar_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_progressbar_elm_layout_sizing_eval(Eo *obj, Elm_Progressbar_Data *_pd EINA_UNUSED)
 {
    Evas_Coord minw = -1, minh = -1;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
@@ -137,57 +135,46 @@ _icon_signal_emit(Evas_Object *obj)
 /* FIXME: replicated from elm_layout just because progressbar's icon
  * spot is elm.swallow.content, not elm.swallow.icon. Fix that
  * whenever we can changed the theme API */
-static void
-_elm_progressbar_smart_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_progressbar_elm_widget_sub_object_del(Eo *obj, Elm_Progressbar_Data *_pd EINA_UNUSED, Evas_Object *sobj)
 {
-   Evas_Object *sobj = va_arg(*list, Evas_Object *);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
    Eina_Bool int_ret = EINA_FALSE;
-
    eo_do_super(obj, MY_CLASS, elm_obj_widget_sub_object_del(sobj, &int_ret));
-   if(!int_ret) return;
+   if(!int_ret) return EINA_FALSE;
 
    _icon_signal_emit(obj);
 
-   if (ret) *ret =  EINA_TRUE;
+   return EINA_TRUE;
 }
 
 /* FIXME: replicated from elm_layout just because progressbar's icon
  * spot is elm.swallow.content, not elm.swallow.icon. Fix that
  * whenever we can changed the theme API */
-static void
-_elm_progressbar_smart_content_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_progressbar_elm_container_content_set(Eo *obj, Elm_Progressbar_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content)
 {
-   const char *part = va_arg(*list, const char *);
-   Evas_Object *content = va_arg(*list, Evas_Object *);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
    Eina_Bool int_ret = EINA_FALSE;
    eo_do_super(obj, MY_CLASS, elm_obj_container_content_set(part, content, &int_ret));
-   if(!int_ret) return;
+   if(!int_ret) return EINA_FALSE;
 
    _icon_signal_emit(obj);
 
-   if (ret) *ret =  EINA_TRUE;
+   return EINA_TRUE;
 }
 
-static void
-_elm_progressbar_smart_theme(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_progressbar_elm_widget_theme_apply(Eo *obj, Elm_Progressbar_Data *sd)
 {
-   Elm_Progressbar_Smart_Data *sd = _pd;
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
    Eina_Bool int_ret = EINA_FALSE;
    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)
      eina_stringshare_replace(&ld->group, "horizontal");
    else eina_stringshare_replace(&ld->group, "vertical");
 
    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->pulse)
      elm_layout_signal_emit(obj, "elm,state,pulse", "elm");
@@ -224,7 +211,7 @@ _elm_progressbar_smart_theme(Eo *obj, void *_pd, va_list *list)
 
    elm_layout_sizing_eval(obj);
 
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
 static char *
@@ -262,10 +249,9 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj)
    return NULL;
 }
 
-static void
-_elm_progressbar_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_progressbar_evas_smart_add(Eo *obj, Elm_Progressbar_Data *priv)
 {
-   Elm_Progressbar_Smart_Data *priv = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
@@ -302,10 +288,9 @@ _elm_progressbar_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
      (_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, NULL);
 }
 
-static void
-_elm_progressbar_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_progressbar_evas_smart_del(Eo *obj, Elm_Progressbar_Data *sd)
 {
-   Elm_Progressbar_Smart_Data *sd = _pd;
    Elm_Progress_Status *progress_obj;
 
    eina_stringshare_del(sd->units);
@@ -320,18 +305,16 @@ _elm_progressbar_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
 
-static void
-_elm_progressbar_smart_text_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static const Elm_Layout_Part_Alias_Description*
+_elm_progressbar_elm_layout_text_aliases_get(Eo *obj EINA_UNUSED, Elm_Progressbar_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_progressbar_smart_content_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static const Elm_Layout_Part_Alias_Description*
+_elm_progressbar_elm_layout_content_aliases_get(Eo *obj EINA_UNUSED, Elm_Progressbar_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 *
@@ -343,8 +326,8 @@ elm_progressbar_add(Evas_Object *parent)
    return obj;
 }
 
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_progressbar_eo_base_constructor(Eo *obj, Elm_Progressbar_Data *_pd EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
@@ -352,20 +335,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_progressbar_pulse_set(Evas_Object *obj,
-                          Eina_Bool pulse)
+EOLIAN static void
+_elm_progressbar_pulse_set(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd, Eina_Bool pulse)
 {
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_pulse_set(pulse));
-}
-
-static void
-_pulse_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool pulse = va_arg(*list, int);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
    pulse = !!pulse;
    if (sd->pulse == pulse) return;
 
@@ -374,38 +346,15 @@ _pulse_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
    eo_do(obj, elm_obj_widget_theme_apply(NULL));
 }
 
-EAPI Eina_Bool
-elm_progressbar_pulse_get(const Evas_Object *obj)
-{
-   ELM_PROGRESSBAR_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_progressbar_pulse_get(&ret));
-   return ret;
-}
-
-static void
-_pulse_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
-   *ret =  sd->pulse;
-}
-
-EAPI void
-elm_progressbar_pulse(Evas_Object *obj,
-                      Eina_Bool state)
+EOLIAN static Eina_Bool
+_elm_progressbar_pulse_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
 {
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_pulse(state));
+   return sd->pulse;
 }
 
-static void
-_pulse(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_progressbar_pulse(Eo *obj, Elm_Progressbar_Data *sd, Eina_Bool state)
 {
-   Eina_Bool state = va_arg(*list, int);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
    state = !!state;
    if ((!sd->pulse) || (sd->pulse_state == state)) return;
 
@@ -417,19 +366,9 @@ _pulse(Eo *obj, void *_pd, va_list *list)
      elm_layout_signal_emit(obj, "elm,state,pulse,stop", "elm");
 }
 
-EAPI void
-elm_progressbar_part_value_set(Evas_Object *obj, const char *part, double val)
-{
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_part_value_set(part, val));
-}
-
-static void
-_part_value_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_progressbar_part_value_set(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd, const char *part_name, double val)
 {
-   const char *part_name = va_arg(*list, const char *);
-   double val = va_arg(*list, double);
-   Elm_Progressbar_Smart_Data *sd = _pd;
    Elm_Progress_Status *ps;
    Eina_Bool  existing_ps = EINA_FALSE;
    Eina_List *l;
@@ -462,47 +401,23 @@ _part_value_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
    evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);
 }
 
-EAPI double
-elm_progressbar_part_value_get(const Evas_Object *obj, const char * part)
-{
-   ELM_PROGRESSBAR_CHECK(obj) 0.0;
-   double ret;
-   eo_do((Eo *) obj, elm_obj_progressbar_part_value_get(part,&ret));
-   return ret;
-}
-
-static void
-_part_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static double
+_elm_progressbar_part_value_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd, const char* part)
 {
-   const char* part = va_arg(*list, const char *);
-   double *ret = va_arg(*list, double *);
-   Elm_Progressbar_Smart_Data *sd = _pd;
    Elm_Progress_Status *ps;
    Eina_List *l;
 
    EINA_LIST_FOREACH(sd->progress_status, l, ps)
      {
-        if (!strcmp(ps->part_name, part))
-           {
-              *ret = ps->val;
-              return;
-           }
+        if (!strcmp(ps->part_name, part)) return ps->val;
      }
-}
 
-EAPI void
-elm_progressbar_value_set(Evas_Object *obj,
-                          double val)
-{
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_value_set(val));
+   return 0.0;
 }
 
-static void
-_value_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_progressbar_value_set(Eo *obj, Elm_Progressbar_Data *sd, double val)
 {
-   double val = va_arg(*list, double);
-   Elm_Progressbar_Smart_Data *sd = _pd;
    Elm_Progress_Status *ps;
 
    if (sd->val == val) return;
@@ -518,38 +433,15 @@ _value_set(Eo *obj, void *_pd, va_list *list)
    evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);
 }
 
-EAPI double
-elm_progressbar_value_get(const Evas_Object *obj)
+EOLIAN static double
+_elm_progressbar_value_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
 {
-   ELM_PROGRESSBAR_CHECK(obj) 0.0;
-   double ret;
-   eo_do((Eo *) obj, elm_obj_progressbar_value_get(&ret));
-   return ret;
+   return sd->val;
 }
 
-static void
-_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_progressbar_span_size_set(Eo *obj, Elm_Progressbar_Data *sd, Evas_Coord size)
 {
-   double *ret = va_arg(*list, double *);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
-   *ret = sd->val;
-}
-
-EAPI void
-elm_progressbar_span_size_set(Evas_Object *obj,
-                              Evas_Coord size)
-{
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_span_size_set(size));
-}
-
-static void
-_span_size_set(Eo *obj, void *_pd, va_list *list)
-{
-   Evas_Coord size = va_arg(*list, Evas_Coord);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
    if (sd->size == size) return;
 
    sd->size = size;
@@ -566,37 +458,15 @@ _span_size_set(Eo *obj, void *_pd, va_list *list)
    elm_layout_sizing_eval(obj);
 }
 
-EAPI Evas_Coord
-elm_progressbar_span_size_get(const Evas_Object *obj)
-{
-   ELM_PROGRESSBAR_CHECK(obj) 0;
-   Evas_Coord ret;
-   eo_do((Eo *) obj, elm_obj_progressbar_span_size_get(&ret));
-   return ret;
-}
-
-static void
-_span_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Evas_Coord
+_elm_progressbar_span_size_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
 {
-   Evas_Coord *ret = va_arg(*list, Evas_Coord *);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
-   *ret = sd->size;
+   return sd->size;
 }
 
-EAPI void
-elm_progressbar_unit_format_set(Evas_Object *obj,
-                                const char *units)
+EOLIAN static void
+_elm_progressbar_unit_format_set(Eo *obj, Elm_Progressbar_Data *sd, const char *units)
 {
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_unit_format_set(units));
-}
-
-static void
-_unit_format_set(Eo *obj, void *_pd, va_list *list)
-{
-   const char *units = va_arg(*list, const char *);
-   Elm_Progressbar_Smart_Data *sd = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    eina_stringshare_replace(&sd->units, units);
@@ -615,38 +485,15 @@ _unit_format_set(Eo *obj, void *_pd, va_list *list)
    elm_layout_sizing_eval(obj);
 }
 
-EAPI const char *
-elm_progressbar_unit_format_get(const Evas_Object *obj)
-{
-   ELM_PROGRESSBAR_CHECK(obj) NULL;
-   const char *ret = NULL;
-   eo_do((Eo *) obj, elm_obj_progressbar_unit_format_get(&ret));
-   return ret;
-}
-
-static void
-_unit_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static const char*
+_elm_progressbar_unit_format_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
 {
-   const char **ret = va_arg(*list, const char **);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
-   *ret = sd->units;
+   return sd->units;
 }
 
-EAPI void
-elm_progressbar_unit_format_function_set(Evas_Object *obj, char *(func)(double), void (*free_func) (char *))
+EOLIAN static void
+_elm_progressbar_unit_format_function_set(Eo *obj, Elm_Progressbar_Data *sd, progressbar_func_type func, progressbar_freefunc_type free_func)
 {
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_unit_format_function_set(func, free_func));
-}
-
-EAPI void
-_unit_format_function_set(Eo *obj, void *_pd, va_list *list)
-{
-   progressbar_func_type func = va_arg(*list, progressbar_func_type);
-   progressbar_freefunc_type free_func = va_arg(*list, progressbar_freefunc_type);
-   Elm_Progressbar_Smart_Data *sd = _pd;
-
    sd->unit_format_func = func;
    sd->unit_format_free = free_func;
 
@@ -654,20 +501,9 @@ _unit_format_function_set(Eo *obj, void *_pd, va_list *list)
    elm_layout_sizing_eval(obj);
 }
 
-EAPI void
-elm_progressbar_horizontal_set(Evas_Object *obj,
-                               Eina_Bool horizontal)
+EOLIAN static void
+_elm_progressbar_horizontal_set(Eo *obj, Elm_Progressbar_Data *sd, Eina_Bool horizontal)
 {
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_horizontal_set(horizontal));
-}
-
-static void
-_horizontal_set(Eo *obj, void *_pd, va_list *list)
-{
-   Eina_Bool horizontal = va_arg(*list, int);
-   Elm_Progressbar_Smart_Data*sd = _pd;
-
    horizontal = !!horizontal;
    if (sd->horizontal == horizontal) return;
 
@@ -675,36 +511,15 @@ _horizontal_set(Eo *obj, void *_pd, va_list *list)
    eo_do(obj, elm_obj_widget_theme_apply(NULL));
 }
 
-EAPI Eina_Bool
-elm_progressbar_horizontal_get(const Evas_Object *obj)
-{
-   ELM_PROGRESSBAR_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_progressbar_horizontal_get(&ret));
-   return ret;
-}
-
-static void
-_horizontal_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Progressbar_Smart_Data*sd = _pd;
-   *ret = sd->horizontal;
-}
-
-EAPI void
-elm_progressbar_inverted_set(Evas_Object *obj,
-                             Eina_Bool inverted)
+EOLIAN static Eina_Bool
+_elm_progressbar_horizontal_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
 {
-   ELM_PROGRESSBAR_CHECK(obj);
-   eo_do(obj, elm_obj_progressbar_inverted_set(inverted));
+   return sd->horizontal;
 }
 
-static void
-_inverted_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_progressbar_inverted_set(Eo *obj, Elm_Progressbar_Data *sd, Eina_Bool inverted)
 {
-   Eina_Bool inverted = va_arg(*list, int);
-   Elm_Progressbar_Smart_Data*sd = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    inverted = !!inverted;
@@ -722,106 +537,28 @@ _inverted_set(Eo *obj, void *_pd, va_list *list)
    _units_set(obj);
 }
 
-EAPI Eina_Bool
-elm_progressbar_inverted_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_progressbar_inverted_get(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
 {
-   ELM_PROGRESSBAR_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_progressbar_inverted_get(&ret));
-   return ret;
+   return sd->inverted;
 }
 
-static void
-_inverted_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_progressbar_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *_pd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Progressbar_Smart_Data*sd = _pd;
-   *ret = sd->inverted;
+   return EINA_FALSE;
 }
 
-static void
-_elm_progressbar_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_progressbar_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *_pd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = EINA_FALSE;
+   return EINA_FALSE;
 }
 
-static void
-_elm_progressbar_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_progressbar_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_progressbar_smart_add),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_progressbar_smart_del),
-
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_progressbar_smart_theme),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_SUB_OBJECT_DEL), _elm_progressbar_smart_sub_object_del),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_progressbar_smart_focus_next_manager_is),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_progressbar_smart_focus_direction_manager_is),
-
-        EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET), _elm_progressbar_smart_content_set),
-
-        EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_progressbar_smart_sizing_eval),
-        EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_ALIASES_GET), _elm_progressbar_smart_text_aliases_get),
-        EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_CONTENT_ALIASES_GET), _elm_progressbar_smart_content_aliases_get),
-
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_SET), _pulse_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_GET), _pulse_get),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE), _pulse),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_SET), _value_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_GET), _value_get),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_SET), _span_size_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_GET), _span_size_get),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_SET), _unit_format_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_GET), _unit_format_get),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_FUNCTION_SET), _unit_format_function_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_SET), _horizontal_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_GET), _horizontal_get),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_SET), _inverted_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_GET), _inverted_get),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PART_VALUE_SET), _part_value_set),
-        EO_OP_FUNC(ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PART_VALUE_GET), _part_value_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_PROGRESSBAR_SUB_ID_PULSE_SET, "Set whether a given progress bar widget is at 'pulsing mode' or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_GET, "Get whether a given progress bar widget is at 'pulsing mode' or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE, "Start/stop a given progress bar 'pulsing' animation, if its under that mode."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_SET, "Set the progress value (in percentage) on a given progress bar widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_VALUE_GET, "Get the progress value (in percentage) on a given progress bar widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_SET, "Set the (exact) length of the bar region of a given progress bar widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_SPAN_SIZE_GET, "Get the length set for the bar region of a given progress bar widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_SET, "Set the format string for a given progress bar widget's units label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_GET, "Retrieve the format string set for a given progress bar widget's units label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_UNIT_FORMAT_FUNCTION_SET, "Set the format function pointer for the units label."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_SET, "Set the orientation of a given progress bar widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_HORIZONTAL_GET, "Retrieve the orientation of a given progress bar widget."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_SET, "Invert a given progress bar widget's displaying values order."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_INVERTED_GET, "Get whether a given progress bar widget's displaying values are inverted or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_PART_VALUE_SET, "Set the progress value (in percentage) on a given progress bar widget for a part."),
-     EO_OP_DESCRIPTION(ELM_OBJ_PROGRESSBAR_SUB_ID_PART_VALUE_GET, "Get the progress value (in percentage) on a given progress bar widget for a part."),
-     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_PROGRESSBAR_BASE_ID, op_desc, ELM_OBJ_PROGRESSBAR_SUB_ID_LAST),
-     NULL,
-     sizeof(Elm_Progressbar_Smart_Data),
-     _class_constructor,
-     NULL
-};
-EO_DEFINE_CLASS(elm_obj_progressbar_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL);
+
+#include "elm_progressbar.eo.c"
diff --git a/src/lib/elm_progressbar.eo b/src/lib/elm_progressbar.eo
new file mode 100644 (file)
index 0000000..5aa9e0e
--- /dev/null
@@ -0,0 +1,300 @@
+class Elm_Progressbar (Elm_Layout)
+{
+   eo_prefix: elm_obj_progressbar;
+   properties {
+      span_size {
+         set {
+            /*@
+            Set the (exact) length of the bar region of a given progress bar
+            widget
+
+            This sets the minimum width (when in horizontal mode) or height
+            (when in vertical mode) of the actual bar area of the progress
+            bar @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, label 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_progressbar_span_size_get()
+
+            @ingroup Progressbar */
+         }
+         get {
+            /*@
+            Get the length set for the bar region of a given progress bar
+            widget
+
+            @return The length of the progress bar's bar region
+
+            If that size was not set previously, with
+            elm_progressbar_span_size_set(), this call will return @c 0.
+
+            @ingroup Progressbar */
+         }
+         values {
+            Evas_Coord size; /*@ The length of the progress bar's bar region */
+         }
+      }
+      pulse {
+         set {
+            /*@
+            Set whether a given progress bar widget is at "pulsing mode" or
+            not.
+
+            By default, progress bars will display values from the low to
+            high value boundaries. There are, though, contexts in which the
+            progress of a given task is @b unknown.  For such cases,
+            one can set a progress bar widget to a "pulsing state", to give
+            the user an idea that some computation is being held, but
+            without exact progress values. In the default theme, it will
+            animate its bar with the contents filling in constantly and back
+            to non-filled, in a loop. To start and stop this pulsing
+            animation, one has to explicitly call elm_progressbar_pulse().
+
+            @see elm_progressbar_pulse_get()
+            @see elm_progressbar_pulse()
+
+            @ingroup Progressbar */
+         }
+         get {
+            /*@
+            Get whether a given progress bar widget is at "pulsing mode" or
+            not.
+
+            @return @c EINA_TRUE, if @p obj is in pulsing mode, @c EINA_FALSE
+            if it's in the default one (and on errors)
+
+            @ingroup Progressbar */
+         }
+         values {
+            Eina_Bool pulse; /*@ @c EINA_TRUE to put @p obj in pulsing mode,
+            @c EINA_FALSE to put it back to its default one */
+         }
+      }
+      value {
+         set {
+            /*@
+            Set the progress value (in percentage) on a given progress bar
+            widget
+
+            Use this call to set progress bar levels.
+
+            @note If you passes a value out of the specified range for @p
+            val, it will be interpreted as the @b closest of the @b boundary
+            values in the range.
+
+            @ingroup Progressbar */
+         }
+         get {
+            /*@
+            Get the progress value (in percentage) on a given progress bar
+            widget
+
+            @return The value of the progressbar
+
+            @see elm_progressbar_value_set() for more details
+
+            @ingroup Progressbar */
+         }
+         values {
+            double val; /*@ The progress value (@b must be between @c 0.0 and @c
+            1.0) */
+         }
+      }
+      inverted {
+         set {
+            /*@
+            Invert a given progress bar widget's displaying values order
+
+            A progress bar may be @b inverted, in which state it gets its
+            values inverted, with high values 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_progressbar_inverted_get()
+
+            @ingroup Progressbar */
+         }
+         get {
+            /*@
+            Get whether a given progress bar 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_progressbar_inverted_set() for more details
+
+            @ingroup Progressbar */
+         }
+         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. */
+         }
+      }
+      horizontal {
+         set {
+            /*@
+            Set the orientation of a given progress bar widget
+
+            Use this function to change how your progress bar is to be
+            disposed: vertically or horizontally.
+
+            @see elm_progressbar_horizontal_get()
+
+            @ingroup Progressbar */
+         }
+         get {
+            /*@
+            Retrieve the orientation of a given progress bar 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_progressbar_horizontal_set() for more details
+
+            @ingroup Progressbar */
+         }
+         values {
+            Eina_Bool horizontal; /*@ Use @c EINA_TRUE to make @p obj to be
+            @b horizontal, @c EINA_FALSE to make it @b vertical */
+         }
+      }
+      unit_format {
+         set {
+            /*@
+            Set the format string for a given progress bar widget's units
+            label
+
+            If @c NULL is passed on @p format, it will make @p obj's units
+            area to be hidden completely. If not, it'll set the <b>format
+            string</b> for the units label's @b text. The units label is
+            provided a floating point value, so the units text is up display
+            at most one floating point value. Note that the units label is
+            optional. Use a format string such as "%1.2f meters" for
+            example.
+
+            @note The default format string for a progress bar is an integer
+            percentage, as in @c "%.0f %%".
+
+            @see elm_progressbar_unit_format_get()
+
+            @ingroup Progressbar */
+         }
+         get {
+            /*@
+            Retrieve the format string set for a given progress bar widget's
+            units label
+
+            @return The format set string for @p obj's units label or
+            @c NULL, if none was set (and on errors)
+
+            @see elm_progressbar_unit_format_set() for more details
+
+            @ingroup Progressbar */
+         }
+         values {
+            const char *units; /*@ The format string for @p obj's units label */
+         }
+      }
+      unit_format_function {
+         set {
+            /*@
+            Set the format function pointer for the units label
+
+            Set the callback function to format the unit string.
+
+            @see elm_progressbar_unit_format_set() for more info on how this works.
+
+            @since 1.7
+
+            @ingroup Progressbar */
+         }
+         values {
+            progressbar_func_type func; /*@ The unit format function */
+            progressbar_freefunc_type free_func; /*@ The freeing function for the format string. */
+         }
+      }
+   }
+   methods {
+      part_value_set {
+         /*@
+         Set the progress value (in percentage) on a given progress bar
+         widget for the given part name
+
+         @since 1.8
+
+         Use this call to set progress bar status for more than one progress status .
+
+         @ingroup Progressbar */
+
+         params {
+            @in const char *part; /*@ The partname to which val have to set */
+            @in double val; /*@ The progress value (@b must be between @c 0.0 and @c
+            1.0) */
+         }
+      }
+      part_value_get {
+         /*@
+         Get the progress value (in percentage) on a given progress bar
+         widget for a particular part
+
+         @since 1.8
+
+         @return The value of the progressbar
+
+         @see elm_progressbar_value_set() for more details
+
+         @ingroup Progressbar */
+
+         const;
+         return double;
+         params {
+            @in const char *part; /*@ The part name of the progress bar */
+         }
+      }
+      pulse {
+         /*@
+         Start/stop a given progress bar "pulsing" animation, if its
+         under that mode
+
+         @note This call won't do anything if @p obj is not under "pulsing mode".
+
+         @see elm_progressbar_pulse_set() for more details.
+
+         @ingroup Progressbar */
+
+         params {
+            @in Eina_Bool state; /*@ @c EINA_TRUE, to @b start the pulsing animation,
+            @c EINA_FALSE to @b stop it */
+         }
+      }
+   }
+   implements {
+      class::constructor;
+      Eo_Base::constructor;
+      Evas_Smart::add;
+      Evas_Smart::del;
+      Elm_Widget::theme_apply;
+      Elm_Widget::focus_next_manager_is;
+      Elm_Widget::focus_direction_manager_is;
+      Elm_Widget::sub_object_del;
+      Elm_Container::content_set;
+      Elm_Layout::text_aliases::get;
+      Elm_Layout::content_aliases::get;
+      Elm_Layout::sizing_eval;
+   }
+   events {
+      changed;
+      language,changed;
+      access,changed;
+      focused;
+      unfocused;
+   }
+
+}
index 2b11327..946d4e7 100644 (file)
@@ -1,12 +1,15 @@
+typedef char *(*progressbar_func_type)(double);
+typedef void (*progressbar_freefunc_type)(char *);
+
+#include "elm_progressbar.eo.h"
+
+#if 0
 #define ELM_OBJ_PROGRESSBAR_CLASS elm_obj_progressbar_class_get()
 
 const Eo_Class *elm_obj_progressbar_class_get(void) EINA_CONST;
 
 extern EAPI Eo_Op ELM_OBJ_PROGRESSBAR_BASE_ID;
 
-typedef char *(*progressbar_func_type)(double);
-typedef void (*progressbar_freefunc_type)(char *);
-
 enum
 {
    ELM_OBJ_PROGRESSBAR_SUB_ID_PULSE_SET,
@@ -263,3 +266,4 @@ enum
  * @ingroup Progressbar
  */
 #define elm_obj_progressbar_part_value_get(part, ret) ELM_OBJ_PROGRESSBAR_ID(ELM_OBJ_PROGRESSBAR_SUB_ID_PART_VALUE_GET), EO_TYPECHECK(const char*, part), EO_TYPECHECK(double *, ret)
+#endif
index e84c593..8feada6 100644 (file)
 /**
  * Base layout smart data extended with progressbar instance data.
  */
-typedef struct _Elm_Progressbar_Smart_Data Elm_Progressbar_Smart_Data;
+typedef struct _Elm_Progressbar_Data Elm_Progressbar_Data;
 typedef struct _Elm_Progress_Status Elm_Progress_Status;
 
-struct _Elm_Progressbar_Smart_Data
+struct _Elm_Progressbar_Data
 {
    Evas_Object          *spacer;
    const char           *units;
@@ -49,7 +49,7 @@ struct _Elm_Progress_Status
  */
 
 #define ELM_PROGRESSBAR_DATA_GET(o, sd) \
-  Elm_Progressbar_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_PROGRESSBAR_CLASS)
+  Elm_Progressbar_Data * sd = eo_data_scope_get(o, ELM_OBJ_PROGRESSBAR_CLASS)
 
 #define ELM_PROGRESSBAR_DATA_GET_OR_RETURN(o, ptr)   \
   ELM_PROGRESSBAR_DATA_GET(o, ptr);                  \