jackdanielz pushed a commit to branch master.

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

commit 232a538ec9a7f7315676ad3db36145cf4c90262f
Author: Daniel Zaoui <[email protected]>
Date:   Thu Mar 20 11:11:48 2014 +0200

    Eolian: Integration of Clock
---
 src/lib/Makefile.am        |  10 +-
 src/lib/elm_clock.c        | 362 ++++++++-------------------------------------
 src/lib/elm_clock.eo       | 262 ++++++++++++++++++++++++++++++++
 src/lib/elm_clock_eo.h     |   5 +
 src/lib/elm_widget_clock.h |   6 +-
 5 files changed, 339 insertions(+), 306 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 60f77fb..b18fc9f 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -567,7 +567,9 @@ BUILT_SOURCES = \
                elm_calendar.eo.c \
                elm_calendar.eo.h \
                elm_check.eo.c \
-               elm_check.eo.h
+               elm_check.eo.h \
+               elm_clock.eo.c \
+               elm_clock.eo.h
 
 EXTRA_DIST += \
             elm_widget.eo \
@@ -591,7 +593,8 @@ EXTRA_DIST += \
             elm_bubble.eo \
             elm_button.eo \
             elm_calendar.eo \
-            elm_check.eo
+            elm_check.eo \
+            elm_clock.eo
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -615,5 +618,6 @@ nodist_includesunstable_HEADERS = \
                                  elm_bubble.eo.h \
                                  elm_button.eo.h \
                                  elm_calendar.eo.h \
-                                 elm_check.eo.h
+                                 elm_check.eo.h \
+                                 elm_clock.eo.h
 
diff --git a/src/lib/elm_clock.c b/src/lib/elm_clock.c
index ad9766d..6c9e55b 100644
--- a/src/lib/elm_clock.c
+++ b/src/lib/elm_clock.c
@@ -6,8 +6,6 @@
 #include "elm_priv.h"
 #include "elm_widget_clock.h"
 
-EAPI Eo_Op ELM_OBJ_CLOCK_BASE_ID = EO_NOOP;
-
 #define MY_CLASS ELM_OBJ_CLOCK_CLASS
 
 #define MY_CLASS_NAME "Elm_Clock"
@@ -562,19 +560,17 @@ _time_update(Evas_Object *obj)
      sd->cur.ampm = -1;
 }
 
-static void
-_elm_clock_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_clock_elm_widget_theme_apply(Eo *obj, Elm_Clock_Data *sd EINA_UNUSED)
 {
-   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_theme_apply(&int_ret));
-   if (!int_ret) return;
+   if (!int_ret) return EINA_FALSE;
 
    _time_update(obj);
 
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
 static Eina_Bool
@@ -653,10 +649,9 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj)
    return NULL;
 }
 
-static void
-_elm_clock_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_clock_evas_smart_add(Eo *obj, Elm_Clock_Data *priv)
 {
-   Elm_Clock_Smart_Data *priv = _pd;
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
@@ -692,10 +687,9 @@ _elm_clock_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_clock_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_clock_evas_smart_del(Eo *obj, Elm_Clock_Data *sd)
 {
-   Elm_Clock_Smart_Data *sd = _pd;
 
    ecore_timer_del(sd->ticker);
    ecore_timer_del(sd->spin);
@@ -707,37 +701,28 @@ _elm_clock_smart_del(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
 static Eina_Bool _elm_clock_smart_focus_next_enable = EINA_FALSE;
 
-static void
-_elm_clock_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_clock_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, 
Elm_Clock_Data *_pd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = _elm_clock_smart_focus_next_enable;
+   return _elm_clock_smart_focus_next_enable;
 }
 
-static void
-_elm_clock_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_clock_elm_widget_focus_next(Eo *obj, Elm_Clock_Data *sd, 
Elm_Focus_Direction dir, Evas_Object **next)
 {
-   Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction);
-   Evas_Object **next = va_arg(*list, Evas_Object **);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
-
    Evas_Object *ao, *po;
    Eina_List *items = NULL;
 
-   Elm_Clock_Smart_Data *sd = _pd;
 
    if (!sd->edit)
      {
         *next = (Evas_Object *)obj;
-        if (ret) *ret = !elm_widget_highlight_get(obj);
-        return;
+        return !elm_widget_highlight_get(obj);
      }
    else if (!elm_widget_highlight_get(obj))
      {
         *next = (Evas_Object *)obj;
-        if (ret) *ret = EINA_TRUE;
-        return;
+        return EINA_TRUE;
      }
 
    int i;
@@ -771,7 +756,7 @@ _elm_clock_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
         items = eina_list_append(items, ao);
      }
 
-   if (ret) *ret = elm_widget_focus_list_next_get
+   return elm_widget_focus_list_next_get
            (obj, items, eina_list_data_get, dir, next);
 }
 
@@ -794,10 +779,10 @@ _access_obj_process(Evas_Object *obj, Eina_Bool is_access)
     _access_time_register(obj, is_access);
 }
 
-static void
-_elm_clock_smart_access(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list 
*list)
+EOLIAN static void
+_elm_clock_elm_widget_access(Eo *obj EINA_UNUSED, Elm_Clock_Data *_pd 
EINA_UNUSED, Eina_Bool access)
 {
-   _elm_clock_smart_focus_next_enable = va_arg(*list, int);
+   _elm_clock_smart_focus_next_enable = access;
    _access_obj_process(obj, _elm_clock_smart_focus_next_enable);
 }
 
@@ -810,8 +795,8 @@ elm_clock_add(Evas_Object *parent)
    return obj;
 }
 
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_clock_eo_base_constructor(Eo *obj, Elm_Clock_Data *_pd EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
@@ -820,7 +805,7 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
 }
 
 static void
-_timediff_set(Elm_Clock_Smart_Data *sd)
+_timediff_set(Elm_Clock_Data *sd)
 {
    struct timeval timev;
    struct tm *tm;
@@ -834,24 +819,9 @@ _timediff_set(Elm_Clock_Smart_Data *sd)
                     sd->min - tm->tm_min) * 60) + sd->sec - tm->tm_sec;
 }
 
-EAPI void
-elm_clock_time_set(Evas_Object *obj,
-                   int hrs,
-                   int min,
-                   int sec)
+EOLIAN static void
+_elm_clock_time_set(Eo *obj, Elm_Clock_Data *sd, int hrs, int min, int sec)
 {
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_time_set(hrs, min, sec));
-}
-
-static void
-_time_set(Eo *obj, void *_pd, va_list *list)
-{
-   int hrs = va_arg(*list, int);
-   int min = va_arg(*list, int);
-   int sec = va_arg(*list, int);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    sd->hrs = hrs;
    sd->min = min;
    sd->sec = sec;
@@ -860,43 +830,17 @@ _time_set(Eo *obj, void *_pd, va_list *list)
    _time_update(obj);
 }
 
-EAPI void
-elm_clock_time_get(const Evas_Object *obj,
-                   int *hrs,
-                   int *min,
-                   int *sec)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do((Eo *) obj, elm_obj_clock_time_get(hrs, min, sec));
-}
-
-static void
-_time_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_time_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd, int *hrs, int 
*min, int *sec)
 {
-   int *hrs = va_arg(*list, int *);
-   int *min = va_arg(*list, int *);
-   int *sec = va_arg(*list, int *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    if (hrs) *hrs = sd->hrs;
    if (min) *min = sd->min;
    if (sec) *sec = sd->sec;
 }
 
-EAPI void
-elm_clock_edit_set(Evas_Object *obj,
-                   Eina_Bool edit)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_edit_set(edit));
-}
-
-static void
-_edit_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_edit_set(Eo *obj, Elm_Clock_Data *sd, Eina_Bool edit)
 {
-   Eina_Bool edit = va_arg(*list, int);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    sd->edit = edit;
    if (!edit)
      _timediff_set(sd);
@@ -906,38 +850,15 @@ _edit_set(Eo *obj, void *_pd, va_list *list)
      _time_update(obj);
 }
 
-EAPI Eina_Bool
-elm_clock_edit_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_clock_edit_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd)
 {
-   ELM_CLOCK_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_clock_edit_get(&ret));
-   return ret;
+   return sd->edit;
 }
 
-static void
-_edit_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
-   *ret = sd->edit;
-}
-
-EAPI void
-elm_clock_edit_mode_set(Evas_Object *obj,
-                        Elm_Clock_Edit_Mode digedit)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_edit_mode_set(digedit));
-}
-
-static void
-_edit_mode_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_edit_mode_set(Eo *obj, Elm_Clock_Data *sd, Elm_Clock_Edit_Mode 
digedit)
 {
-   Elm_Clock_Edit_Mode digedit = va_arg(*list, Elm_Clock_Edit_Mode);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    sd->digedit = digedit;
    if (digedit == ELM_CLOCK_EDIT_DEFAULT)
      elm_clock_edit_set(obj, EINA_FALSE);
@@ -945,143 +866,53 @@ _edit_mode_set(Eo *obj, void *_pd, va_list *list)
      _time_update(obj);
 }
 
-EAPI Elm_Clock_Edit_Mode
-elm_clock_edit_mode_get(const Evas_Object *obj)
+EOLIAN static Elm_Clock_Edit_Mode
+_elm_clock_edit_mode_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd)
 {
-   ELM_CLOCK_CHECK(obj) 0;
-   Elm_Clock_Edit_Mode ret = 0;
-   eo_do((Eo *) obj, elm_obj_clock_edit_mode_get(&ret));
-   return ret;
+   return sd->digedit;
 }
 
-static void
-_edit_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Elm_Clock_Edit_Mode *ret = va_arg(*list, Elm_Clock_Edit_Mode *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
-   *ret = sd->digedit;
-}
-
-EAPI void
-elm_clock_show_am_pm_set(Evas_Object *obj,
-                         Eina_Bool am_pm)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_show_am_pm_set(am_pm));
-}
-
-static void
-_show_am_pm_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_show_am_pm_set(Eo *obj, Elm_Clock_Data *sd, Eina_Bool am_pm)
 {
-   Eina_Bool am_pm = va_arg(*list, int);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    sd->am_pm = !!am_pm;
    _time_update(obj);
 }
 
-EAPI Eina_Bool
-elm_clock_show_am_pm_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_clock_show_am_pm_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd)
 {
-   ELM_CLOCK_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_clock_show_am_pm_get(&ret));
-   return ret;
+   return sd->am_pm;
 }
 
-static void
-_show_am_pm_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
-   *ret = sd->am_pm;
-}
-
-EAPI void
-elm_clock_show_seconds_set(Evas_Object *obj,
-                           Eina_Bool seconds)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_show_seconds_set(seconds));
-}
-
-static void
-_show_seconds_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_show_seconds_set(Eo *obj, Elm_Clock_Data *sd, Eina_Bool seconds)
 {
-   Eina_Bool seconds = va_arg(*list, int);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    sd->seconds = !!seconds;
    _time_update(obj);
 }
 
-EAPI Eina_Bool
-elm_clock_show_seconds_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_clock_show_seconds_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd)
 {
-   ELM_CLOCK_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_clock_show_seconds_get(&ret));
-   return ret;
+   return sd->seconds;
 }
 
-static void
-_show_seconds_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
-   *ret = sd->seconds;
-}
-
-EAPI void
-elm_clock_first_interval_set(Evas_Object *obj,
-                             double interval)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_first_interval_set(interval));
-}
-
-static void
-_first_interval_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_first_interval_set(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd, double 
interval)
 {
-   double interval = va_arg(*list, double);
-   Elm_Clock_Smart_Data *sd = _pd;
-
    sd->first_interval = interval;
 }
 
-EAPI double
-elm_clock_first_interval_get(const Evas_Object *obj)
+EOLIAN static double
+_elm_clock_first_interval_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd)
 {
-   ELM_CLOCK_CHECK(obj) 0.0;
-   double ret = 0.0;
-   eo_do((Eo *) obj, elm_obj_clock_first_interval_get(&ret));
-   return ret;
+   return sd->first_interval;
 }
 
-static void
-_first_interval_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   double *ret = va_arg(*list, double *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
-   *ret = sd->first_interval;
-}
-
-EAPI void
-elm_clock_pause_set(Evas_Object *obj, Eina_Bool paused)
-{
-   ELM_CLOCK_CHECK(obj);
-   eo_do(obj, elm_obj_clock_pause_set(paused));
-}
-
-static void
-_pause_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_clock_pause_set(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd, Eina_Bool paused)
 {
-   Eina_Bool paused = va_arg(*list, int);
-   Elm_Clock_Smart_Data *sd = _pd;
    paused = !!paused;
    if (sd->paused == paused)
      return;
@@ -1095,94 +926,25 @@ _pause_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
      }
 }
 
-EAPI Eina_Bool
-elm_clock_pause_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_clock_pause_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd)
 {
-   ELM_CLOCK_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do(obj, elm_obj_clock_pause_get(&ret));
-   return ret;
+   return sd->paused;
 }
 
-static void
-_pause_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_clock_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, 
Elm_Clock_Data *_pd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Clock_Smart_Data *sd = _pd;
-
-   *ret = sd->paused;
+   return EINA_FALSE;
 }
 
 static void
-_elm_clock_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
+_elm_clock_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_clock_smart_add),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), 
_elm_clock_smart_del),
-
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), 
_elm_clock_smart_theme),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACCESS), 
_elm_clock_smart_access),
-        
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), 
_elm_clock_smart_focus_next_manager_is),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT), 
_elm_clock_smart_focus_next),
-        
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), 
_elm_clock_smart_focus_direction_manager_is),
-
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_TIME_SET), _time_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_TIME_GET), _time_get),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_SET), _edit_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_GET), _edit_get),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_SET), 
_edit_mode_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_GET), 
_edit_mode_get),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_SET), 
_show_am_pm_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_GET), 
_show_am_pm_get),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_SET), 
_show_seconds_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_GET), 
_show_seconds_get),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_SET), 
_first_interval_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_GET), 
_first_interval_get),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_PAUSE_SET), 
_pause_set),
-        EO_OP_FUNC(ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_PAUSE_GET), 
_pause_get),
-        EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
-
    evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
 
    if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF)
       _elm_clock_smart_focus_next_enable = EINA_TRUE;
 }
-static const Eo_Op_Description op_desc[] = {
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_TIME_SET, "Set a clock widget's 
time, programmatically."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_TIME_GET, "Get a clock widget's 
time values."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_EDIT_SET, "Set whether a given 
clock widget is under <b>edition mode</b> or."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_EDIT_GET, "Retrieve whether a 
given clock widget is under editing mode."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_SET, "Set what digits of 
the given clock widget should be editable."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_GET, "Retrieve what 
digits of the given clock widget should be."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_SET, "Set if the given 
clock widget must show hours in military or."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_GET, "Get if the given 
clock widget shows hours in military or am/pm."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_SET, "Set if the 
given clock widget must show time with seconds or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_GET, "Get whether the 
given clock widget is showing time with seconds."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_SET, "Set the first 
interval on time updates for a user mouse button hold."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_GET, "Get the first 
interval on time updates for a user mouse button hold."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_PAUSE_SET, "Set whether the given 
clock widget should be paused or not."),
-     EO_OP_DESCRIPTION(ELM_OBJ_CLOCK_SUB_ID_PAUSE_GET, "Get if the given clock 
widget is paused."),
-     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_CLOCK_BASE_ID, op_desc, 
ELM_OBJ_CLOCK_SUB_ID_LAST),
-     NULL,
-     sizeof(Elm_Clock_Smart_Data),
-     _class_constructor,
-     NULL
-};
-EO_DEFINE_CLASS(elm_obj_clock_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, 
NULL);
+
+#include "elm_clock.eo.c"
diff --git a/src/lib/elm_clock.eo b/src/lib/elm_clock.eo
new file mode 100644
index 0000000..7f36e15
--- /dev/null
+++ b/src/lib/elm_clock.eo
@@ -0,0 +1,262 @@
+class Elm_Clock (Elm_Layout)
+{
+   eo_prefix: elm_obj_clock;
+   properties {
+      show_am_pm {
+         set {
+            /*@
+            Set if the given clock widget must show hours in military or
+            am/pm mode
+
+            This function sets if the clock must show hours in military or
+            am/pm mode. In some countries like Brazil the military mode
+            (00-24h-format) is used, in opposition to the USA, where the
+            am/pm mode is more commonly used.
+
+            @see elm_clock_show_am_pm_get()
+
+            @ingroup Clock */
+         }
+         get {
+            /*@
+            Get if the given clock widget shows hours in military or am/pm
+            mode
+
+            @return @c EINA_TRUE, if in am/pm mode, @c EINA_FALSE if in
+            military
+
+            This function gets if the clock shows hours in military or am/pm
+            mode.
+
+            @see elm_clock_show_am_pm_set() for more details
+
+            @ingroup Clock */
+         }
+         values {
+            Eina_Bool am_pm; /*@ @c EINA_TRUE to put it in am/pm mode, @c 
EINA_FALSE
+            to military mode */
+         }
+      }
+      first_interval {
+         set {
+            /*@
+            Set the first interval on time updates for a user mouse button hold
+            on clock widgets' time edition.
+
+            This interval value is @b decreased while the user holds the
+            mouse pointer either incrementing or decrementing a given the
+            clock digit's value.
+
+            This helps the user to get to a given time distant from the
+            current one easier/faster, as it will start to flip quicker and
+            quicker on mouse button holds.
+
+            The calculation for the next flip interval value, starting from
+            the one set with this call, is the previous interval divided by
+            1.05, so it decreases a little bit.
+
+            The default starting interval value for automatic flips is
+            @b 0.85 seconds.
+
+            @see elm_clock_first_interval_get()
+
+            @ingroup Clock */
+         }
+         get {
+            /*@
+            Get the first interval on time updates for a user mouse button hold
+            on clock widgets' time edition.
+
+            @return The first interval value, in seconds, set on it
+
+            @see elm_clock_first_interval_set() for more details
+
+            @ingroup Clock */
+         }
+         values {
+            double interval; /*@ The first interval value in seconds */
+         }
+      }
+      show_seconds {
+         set {
+            /*@
+            Set if the given clock widget must show time with seconds or not
+
+            This function sets if the given clock must show or not elapsed
+            seconds. By default, they are @b not shown.
+
+            @see elm_clock_show_seconds_get()
+
+            @ingroup Clock */
+         }
+         get {
+            /*@
+            Get whether the given clock widget is showing time with seconds
+            or not
+
+            @return @c EINA_TRUE if it's showing seconds, @c EINA_FALSE 
otherwise
+
+            This function gets whether @p obj is showing or not the elapsed
+            seconds.
+
+            @see elm_clock_show_seconds_set()
+
+            @ingroup Clock */
+         }
+         values {
+            Eina_Bool seconds; /*@ @c EINA_TRUE to show seconds, @c EINA_FALSE 
otherwise */
+         }
+      }
+      edit {
+         set {
+            /*@
+            Set whether a given clock widget is under <b>edition mode</b> or
+            under (default) displaying-only mode.
+
+            This function makes a clock's time to be editable or not <b>by
+            user interaction</b>. When in edition mode, clocks @b stop
+            ticking, until one brings them back to canonical mode. The
+            elm_clock_edit_mode_set() function will influence which digits
+            of the clock will be editable.
+
+            @note am/pm sheets, if being shown, will @b always be editable
+            under edition mode.
+
+            @see elm_clock_edit_get()
+
+            @ingroup Clock */
+         }
+         get {
+            /*@
+            Retrieve whether a given clock widget is under editing mode
+            or under (default) displaying-only mode.
+
+            @return @c EINA_TRUE, if it's in edition mode, @c EINA_FALSE 
otherwise
+
+            This function retrieves whether the clock's time can be edited
+            or not by user interaction.
+
+            @see elm_clock_edit_set() for more details
+
+            @ingroup Clock */
+         }
+         values {
+            Eina_Bool edit; /*@ @c EINA_TRUE to put it in edition, @c 
EINA_FALSE to
+            put it back to "displaying only" mode */
+         }
+      }
+      pause {
+         set {
+            /*@
+            Set whether the given clock widget should be paused or not.
+
+            This function pauses or starts the clock widget.
+
+            @see elm_clock_pause_get()
+
+            @ingroup Clock
+            @since 1.9 */
+         }
+         get {
+            /*@
+            Get whether the given clock widget is paused.
+
+            @return @c EINA_TRUE if it's paused @c EINA_FALSE otherwise
+
+            This function gets whether the clock is paused or not.
+
+            @see elm_clock_pause_set()
+
+            @ingroup Clock
+            @since 1.9 */
+         }
+         values {
+            Eina_Bool pause; /*@ @c EINA_TRUE to pause clock, @c EINA_FALSE 
otherwise */
+         }
+      }
+      time {
+         set {
+            /*@
+            Set a clock widget's time, programmatically
+
+            This function updates the time that is showed by the clock
+            widget.
+
+            Values @b must be set within the following ranges:
+            - 0 - 23, for hours
+            - 0 - 59, for minutes
+            - 0 - 59, for seconds,
+
+            even if the clock is not in "military" mode.
+
+            @warning The behavior for values set out of those ranges is @b
+            undefined.
+
+            @ingroup Clock */
+         }
+         get {
+            /*@
+            Get a clock widget's time values
+
+            This function gets the time set for @p obj, returning
+            it on the variables passed as the arguments to function
+
+            @note Use @c NULL pointers on the time values you're not
+            interested in: they'll be ignored by the function.
+
+            @ingroup Clock */
+         }
+         values {
+            int hrs; /*@ The hours to set */
+            int min; /*@ The minutes to set */
+            int sec; /*@ The seconds to set */
+         }
+      }
+      edit_mode {
+         set {
+            /*@
+            Set what digits of the given clock widget should be editable
+            when in edition mode.
+
+            @see elm_clock_edit_mode_get()
+
+            @ingroup Clock */
+         }
+         get {
+            /*@
+            Retrieve what digits of the given clock widget should be
+            editable when in edition mode.
+
+            @return Bit mask indicating the digits to be editable
+            (values in #Elm_Clock_Edit_Mode).
+
+            @see elm_clock_edit_mode_set() for more details
+
+            @ingroup Clock */
+         }
+         values {
+            Elm_Clock_Edit_Mode digedit; /*@ Bit mask indicating the digits to 
be editable
+            (values in #Elm_Clock_Edit_Mode). */
+         }
+      }
+   }
+   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::access;
+      Elm_Widget::focus_next;
+      Elm_Widget::theme_apply;
+   }
+   events {
+      changed;
+      language,changed;
+      access,changed;
+      focused;
+      unfocused;
+   }
+
+}
diff --git a/src/lib/elm_clock_eo.h b/src/lib/elm_clock_eo.h
index 86a2515..9b5de2f 100644
--- a/src/lib/elm_clock_eo.h
+++ b/src/lib/elm_clock_eo.h
@@ -1,3 +1,6 @@
+#include "elm_clock.eo.h"
+
+#if 0
 #define ELM_OBJ_CLOCK_CLASS elm_obj_clock_class_get()
 
 const Eo_Class *elm_obj_clock_class_get(void) EINA_CONST;
@@ -230,3 +233,5 @@ enum
  * @ingroup Clock
  */
 #define elm_obj_clock_pause_get(ret) 
ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_PAUSE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+#endif
+
diff --git a/src/lib/elm_widget_clock.h b/src/lib/elm_widget_clock.h
index 7986d3f..685d541 100644
--- a/src/lib/elm_widget_clock.h
+++ b/src/lib/elm_widget_clock.h
@@ -19,8 +19,8 @@
 /**
  * Base layout smart data extended with clock instance data.
  */
-typedef struct _Elm_Clock_Smart_Data Elm_Clock_Smart_Data;
-struct _Elm_Clock_Smart_Data
+typedef struct _Elm_Clock_Data Elm_Clock_Data;
+struct _Elm_Clock_Data
 {
    double                interval, first_interval;
    Elm_Clock_Edit_Mode   digedit;
@@ -52,7 +52,7 @@ struct _Elm_Clock_Smart_Data
  */
 
 #define ELM_CLOCK_DATA_GET(o, sd) \
-  Elm_Clock_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_CLOCK_CLASS)
+  Elm_Clock_Data * sd = eo_data_scope_get(o, ELM_OBJ_CLOCK_CLASS)
 
 #define ELM_CLOCK_DATA_GET_OR_RETURN(o, ptr)         \
   ELM_CLOCK_DATA_GET(o, ptr);                        \

-- 


Reply via email to