Eolian: Integration of Clock
This commit is contained in:
parent
f1ff0f58bf
commit
ee1003af32
|
@ -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
|
||||
|
||||
|
|
|
@ -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 <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"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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); \
|
||||
|
|
Loading…
Reference in New Issue