diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 60f77fb226..b18fc9f010 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/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/legacy/elementary/src/lib/elm_clock.c b/legacy/elementary/src/lib/elm_clock.c index ad9766d038..6c9e55ba6b 100644 --- a/legacy/elementary/src/lib/elm_clock.c +++ b/legacy/elementary/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) +EOLIAN static void +_elm_clock_time_get(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd, 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) -{ - 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) +EOLIAN static void +_elm_clock_edit_set(Eo *obj, Elm_Clock_Data *sd, 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) -{ - 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) +EOLIAN static void +_elm_clock_edit_mode_set(Eo *obj, Elm_Clock_Data *sd, Elm_Clock_Edit_Mode digedit) { - 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) -{ - 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) +EOLIAN static void +_elm_clock_show_am_pm_set(Eo *obj, Elm_Clock_Data *sd, Eina_Bool am_pm) { - 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) -{ - 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) +EOLIAN static void +_elm_clock_show_seconds_set(Eo *obj, Elm_Clock_Data *sd, Eina_Bool seconds) { - 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) -{ - 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) +EOLIAN static void +_elm_clock_first_interval_set(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd, double interval) { - 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) -{ - 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) +EOLIAN static void +_elm_clock_pause_set(Eo *obj EINA_UNUSED, Elm_Clock_Data *sd, Eina_Bool paused) { - 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) -{ - 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; +} + +EOLIAN static Eina_Bool +_elm_clock_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Clock_Data *_pd EINA_UNUSED) +{ + return EINA_FALSE; } static void -_pause_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +_elm_clock_class_constructor(Eo_Class *klass) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Clock_Smart_Data *sd = _pd; - - *ret = sd->paused; -} - -static void -_elm_clock_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) -{ - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_FALSE; -} - -static void -_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 edition mode 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/legacy/elementary/src/lib/elm_clock.eo b/legacy/elementary/src/lib/elm_clock.eo new file mode 100644 index 0000000000..7f36e1591f --- /dev/null +++ b/legacy/elementary/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 edition mode or + under (default) displaying-only mode. + + This function makes a clock's time to be editable or not by + user interaction. 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/legacy/elementary/src/lib/elm_clock_eo.h b/legacy/elementary/src/lib/elm_clock_eo.h index 86a2515159..9b5de2ff10 100644 --- a/legacy/elementary/src/lib/elm_clock_eo.h +++ b/legacy/elementary/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/legacy/elementary/src/lib/elm_widget_clock.h b/legacy/elementary/src/lib/elm_widget_clock.h index 7986d3f6b0..685d541823 100644 --- a/legacy/elementary/src/lib/elm_widget_clock.h +++ b/legacy/elementary/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); \