From ebaeb196251a7fd202db98da053c8c13bb2d771c Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Fri, 21 Mar 2014 16:01:48 +0200 Subject: [PATCH] Eolian: Integration of Day Selector --- legacy/elementary/src/lib/Makefile.am | 10 +- legacy/elementary/src/lib/elm_dayselector.c | 335 ++++-------------- legacy/elementary/src/lib/elm_dayselector.eo | 182 ++++++++++ .../elementary/src/lib/elm_dayselector_eo.h | 5 + .../src/lib/elm_widget_dayselector.h | 6 +- 5 files changed, 264 insertions(+), 274 deletions(-) create mode 100644 legacy/elementary/src/lib/elm_dayselector.eo diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 09cd9d454b..f745086951 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -577,7 +577,9 @@ BUILT_SOURCES = \ elc_ctxpopup.eo.c \ elc_ctxpopup.eo.h \ elm_datetime.eo.c \ - elm_datetime.eo.h + elm_datetime.eo.h \ + elm_dayselector.eo.c \ + elm_dayselector.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -606,7 +608,8 @@ EXTRA_DIST += \ elm_colorselector.eo \ elm_conformant.eo \ elc_ctxpopup.eo \ - elm_datetime.eo + elm_datetime.eo \ + elm_dayselector.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -635,5 +638,6 @@ nodist_includesunstable_HEADERS = \ elm_conformant.eo.h \ elm_colorselector.eo.h \ elc_ctxpopup.eo.h \ - elm_datetime.eo.h + elm_datetime.eo.h \ + elm_dayselector.eo.h diff --git a/legacy/elementary/src/lib/elm_dayselector.c b/legacy/elementary/src/lib/elm_dayselector.c index 3b6c471f27..3f1c8402bb 100644 --- a/legacy/elementary/src/lib/elm_dayselector.c +++ b/legacy/elementary/src/lib/elm_dayselector.c @@ -7,8 +7,6 @@ #include "elm_widget_dayselector.h" #include "elm_widget_container.h" -EAPI Eo_Op ELM_OBJ_DAYSELECTOR_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_DAYSELECTOR_CLASS #define MY_CLASS_NAME "Elm_Dayselector" @@ -31,8 +29,8 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {NULL, NULL} }; -static void -_elm_dayselector_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_dayselector_elm_layout_sizing_eval(Eo *obj, Elm_Dayselector_Data *sd EINA_UNUSED) { Evas_Coord min_w = -1, min_h = -1; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); @@ -53,22 +51,17 @@ _dayselector_resize(void *data, elm_layout_sizing_eval(data); } -static void -_elm_dayselector_smart_translate(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_dayselector_elm_widget_translate(Eo *obj EINA_UNUSED, Elm_Dayselector_Data *sd) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; - time_t t; Eina_List *l; char buf[1024]; struct tm time_daysel; Elm_Dayselector_Item *it; - Elm_Dayselector_Smart_Data *sd = _pd; - if (sd->weekdays_names_set) - goto exit; + return EINA_TRUE; t = time(NULL); localtime_r(&t, &time_daysel); @@ -81,8 +74,7 @@ _elm_dayselector_smart_translate(Eo *obj EINA_UNUSED, void *_pd, va_list *list) eo_do_super(obj, MY_CLASS, elm_obj_widget_translate(NULL)); - exit: - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static void @@ -120,28 +112,24 @@ _update_items(Evas_Object *obj) } static inline unsigned int -_item_location_get(Elm_Dayselector_Smart_Data *sd, +_item_location_get(Elm_Dayselector_Data *sd, Elm_Dayselector_Item *it) { return (ELM_DAYSELECTOR_MAX - sd->week_start + it->day) % ELM_DAYSELECTOR_MAX; } -static void -_elm_dayselector_smart_theme(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_dayselector_elm_widget_theme_apply(Eo *obj, Elm_Dayselector_Data *sd) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; Eina_List *l; char buf[1024]; Elm_Dayselector_Item *it; - Elm_Dayselector_Smart_Data *sd = _pd; - eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; EINA_LIST_FOREACH(sd->items, l, it) { @@ -157,7 +145,7 @@ _elm_dayselector_smart_theme(Eo *obj, void *_pd, va_list *list) _update_items(obj); elm_layout_sizing_eval(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static void @@ -227,28 +215,22 @@ _item_find(const Evas_Object *obj, return NULL; } -static void -_elm_dayselector_smart_content_set(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, const char *item, Evas_Object *content) { - const char *item= 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; int day; char buf[1024]; Elm_Dayselector_Item *it = NULL; - Elm_Dayselector_Smart_Data *sd = _pd; - if (strcmp(elm_object_widget_type_get(content), "Elm_Check")) - return; + return EINA_FALSE; - if (!item) return; + if (!item) return EINA_FALSE; day = atoi(item + (strlen(item) - 1)); - if (day < 0 || day > ELM_DAYSELECTOR_MAX) return; + if (day < 0 || day > ELM_DAYSELECTOR_MAX) return EINA_FALSE; it = _item_find(obj, day); if (it) @@ -256,13 +238,9 @@ _elm_dayselector_smart_content_set(Eo *obj, void *_pd, va_list *list) snprintf(buf, sizeof(buf), "day%d", _item_location_get(sd, it)); eo_do_super(obj, MY_CLASS, elm_obj_container_content_set(buf, content, &int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; - if (!content) - { - if (ret) *ret = EINA_TRUE; /* item deletion already handled */ - return; - } + if (!content) return EINA_TRUE; /* item deletion already handled */ evas_object_del(VIEW(it)); VIEW(it) = content; @@ -278,7 +256,7 @@ _elm_dayselector_smart_content_set(Eo *obj, void *_pd, va_list *list) if (!int_ret) { elm_widget_item_free(it); - return; + return EINA_FALSE; } sd->items = eina_list_append(sd->items, it); @@ -304,33 +282,27 @@ _elm_dayselector_smart_content_set(Eo *obj, void *_pd, va_list *list) elm_layout_sizing_eval(obj); _update_items(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_dayselector_smart_content_unset(Eo *obj, void *_pd, va_list *list) +EOLIAN static Evas_Object* +_elm_dayselector_elm_container_content_unset(Eo *obj, Elm_Dayselector_Data *sd, const char *item) { - const char *item = va_arg(*list, const char *); - Evas_Object **ret = va_arg(*list, Evas_Object **); - if (ret) *ret = NULL; - int day; char buf[1024]; Evas_Object *content; Elm_Dayselector_Item *it = NULL; - Elm_Dayselector_Smart_Data *sd = _pd; - day = atoi(item + (strlen(item) - 1)); - if (day < 0 || day > ELM_DAYSELECTOR_MAX) return; + if (day < 0 || day > ELM_DAYSELECTOR_MAX) return NULL; it = _item_find(obj, day); - if (!it) return; + if (!it) return NULL; content = VIEW(it); eo_do_super(obj, MY_CLASS, elm_obj_container_content_unset(buf, &content)); - if (!content) return; + if (!content) return NULL; sd->items = eina_list_remove(sd->items, it); evas_object_smart_callback_del(content, "changed", _item_clicked_cb); @@ -353,7 +325,7 @@ _elm_dayselector_smart_content_unset(Eo *obj, void *_pd, va_list *list) elm_layout_sizing_eval(obj); - if (ret) *ret = content; + return content; } static void @@ -426,11 +398,9 @@ _items_create(Evas_Object *obj) _update_items(obj); } -static void -_elm_dayselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_dayselector_evas_smart_add(Eo *obj, Elm_Dayselector_Data *priv) { - Elm_Dayselector_Smart_Data *priv = _pd; - eo_do_super(obj, MY_CLASS, evas_obj_smart_add()); elm_widget_sub_object_parent_add(obj); @@ -449,11 +419,9 @@ _elm_dayselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) elm_layout_sizing_eval(obj); } -static void -_elm_dayselector_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_dayselector_evas_smart_del(Eo *obj, Elm_Dayselector_Data *sd) { - Elm_Dayselector_Smart_Data *sd = _pd; - Elm_Dayselector_Item *it; EINA_LIST_FREE(sd->items, it) @@ -476,8 +444,8 @@ elm_dayselector_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_dayselector_eo_base_constructor(Eo *obj, Elm_Dayselector_Data *_pd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, eo_constructor()); eo_do(obj, @@ -485,62 +453,26 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL)); } -EAPI void -elm_dayselector_day_selected_set(Evas_Object *obj, - Elm_Dayselector_Day day, - Eina_Bool selected) +EOLIAN static void +_elm_dayselector_day_selected_set(Eo *obj, Elm_Dayselector_Data *_pd EINA_UNUSED, Elm_Dayselector_Day day, Eina_Bool selected) { - ELM_DAYSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_dayselector_day_selected_set(day, selected)); -} - -static void -_day_selected_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list) -{ - Elm_Dayselector_Day day = va_arg(*list, Elm_Dayselector_Day); - Eina_Bool selected = va_arg(*list, int); - elm_check_state_set(VIEW(_item_find(obj, day)), selected); } -EAPI Eina_Bool -elm_dayselector_day_selected_get(const Evas_Object *obj, - Elm_Dayselector_Day day) +EOLIAN static Eina_Bool +_elm_dayselector_day_selected_get(Eo *obj, Elm_Dayselector_Data *_pd EINA_UNUSED, Elm_Dayselector_Day day) { - ELM_DAYSELECTOR_CHECK(obj) EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - eo_do((Eo *) obj, elm_obj_dayselector_day_selected_get(day, &ret)); - return ret; + return elm_check_state_get(VIEW(_item_find(obj, day))); } -static void -_day_selected_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static void +_elm_dayselector_week_start_set(Eo *obj, Elm_Dayselector_Data *sd, Elm_Dayselector_Day day) { - Elm_Dayselector_Day day = va_arg(*list, Elm_Dayselector_Day); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - - *ret = elm_check_state_get(VIEW(_item_find(obj, day))); -} - -EAPI void -elm_dayselector_week_start_set(Evas_Object *obj, - Elm_Dayselector_Day day) -{ - ELM_DAYSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_dayselector_week_start_set(day)); -} - -static void -_week_start_set(Eo *obj, void *_pd, va_list *list) -{ - Elm_Dayselector_Day day = va_arg(*list, Elm_Dayselector_Day); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Eina_List *l; char buf[1024]; Elm_Dayselector_Item *it; - Elm_Dayselector_Smart_Data *sd = _pd; - /* just shuffling items, so swalling them directly */ sd->week_start = day; EINA_LIST_FOREACH(sd->items, l, it) @@ -553,129 +485,50 @@ _week_start_set(Eo *obj, void *_pd, va_list *list) _update_items(obj); } -EAPI Elm_Dayselector_Day -elm_dayselector_week_start_get(const Evas_Object *obj) +EOLIAN static Elm_Dayselector_Day +_elm_dayselector_week_start_get(Eo *obj EINA_UNUSED, Elm_Dayselector_Data *sd) { - ELM_DAYSELECTOR_CHECK(obj) ELM_DAYSELECTOR_MAX; - Elm_Dayselector_Day ret = ELM_DAYSELECTOR_MAX; - eo_do((Eo *) obj, elm_obj_dayselector_week_start_get(&ret)); - return ret; + return sd->week_start; } -static void -_week_start_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_dayselector_weekend_start_set(Eo *obj, Elm_Dayselector_Data *sd, Elm_Dayselector_Day day) { - Elm_Dayselector_Day *ret = va_arg(*list, Elm_Dayselector_Day *); - Elm_Dayselector_Smart_Data *sd = _pd; - - *ret = sd->week_start; -} - -EAPI void -elm_dayselector_weekend_start_set(Evas_Object *obj, - Elm_Dayselector_Day day) -{ - ELM_DAYSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_dayselector_weekend_start_set(day)); -} - -static void -_weekend_start_set(Eo *obj, void *_pd, va_list *list) -{ - Elm_Dayselector_Day day = va_arg(*list, Elm_Dayselector_Day); - Elm_Dayselector_Smart_Data *sd = _pd; - sd->weekend_start = day; _items_style_set(obj); _update_items(obj); } -EAPI Elm_Dayselector_Day -elm_dayselector_weekend_start_get(const Evas_Object *obj) +EOLIAN static Elm_Dayselector_Day +_elm_dayselector_weekend_start_get(Eo *obj EINA_UNUSED, Elm_Dayselector_Data *sd) { - ELM_DAYSELECTOR_CHECK(obj) ELM_DAYSELECTOR_MAX; - Elm_Dayselector_Day ret = ELM_DAYSELECTOR_MAX; - eo_do((Eo *) obj, elm_obj_dayselector_weekend_start_get(&ret)); - return ret; + return sd->weekend_start; } -static void -_weekend_start_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_dayselector_weekend_length_set(Eo *obj, Elm_Dayselector_Data *sd, unsigned int length) { - Elm_Dayselector_Day *ret = va_arg(*list, Elm_Dayselector_Day *); - Elm_Dayselector_Smart_Data *sd = _pd; - - *ret = sd->weekend_start; -} - -EAPI void -elm_dayselector_weekend_length_set(Evas_Object *obj, - unsigned int length) -{ - ELM_DAYSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_dayselector_weekend_length_set(length)); -} - -static void -_weekend_length_set(Eo *obj, void *_pd, va_list *list) -{ - unsigned int length = va_arg(*list, unsigned int); - Elm_Dayselector_Smart_Data *sd = _pd; - sd->weekend_len = length; _items_style_set(obj); _update_items(obj); } -EAPI unsigned int -elm_dayselector_weekend_length_get(const Evas_Object *obj) +EOLIAN static unsigned int +_elm_dayselector_weekend_length_get(Eo *obj EINA_UNUSED, Elm_Dayselector_Data *sd) { - ELM_DAYSELECTOR_CHECK(obj) 0; - unsigned int ret = 0; - eo_do((Eo *) obj, elm_obj_dayselector_weekend_length_get(&ret)); - return ret; + return sd->weekend_len; } -static void -_weekend_length_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - unsigned int *ret = va_arg(*list, unsigned int *); - Elm_Dayselector_Smart_Data *sd = _pd; - - *ret = sd->weekend_len; -} - -EAPI void -elm_dayselector_weekdays_names_set(Evas_Object *obj, const char *weekdays[]) -{ - ELM_DAYSELECTOR_CHECK(obj); - eo_do((Eo *)obj, elm_obj_dayselector_weekdays_names_set(weekdays)); -} - -EAPI Eina_List * -elm_dayselector_weekdays_names_get(const Evas_Object *obj) -{ - Eina_List *weekdays = NULL; - - ELM_DAYSELECTOR_CHECK(obj) NULL; - - eo_do((Eo *)obj, elm_obj_dayselector_weekdays_names_get(&weekdays)); - - return weekdays; -} - -static void -_weekdays_name_set(Eo *obj, void *_pd, va_list *list) +EOLIAN static void +_elm_dayselector_weekdays_names_set(Eo *obj, Elm_Dayselector_Data *sd, const char **weekdays) { int idx; time_t now; struct tm time_daysel; Elm_Dayselector_Item *it; char buf[1024]; - const char **weekdays = va_arg(*list, const char **); - Elm_Dayselector_Smart_Data *sd = _pd; if (weekdays) sd->weekdays_names_set = EINA_TRUE; @@ -701,87 +554,33 @@ _weekdays_name_set(Eo *obj, void *_pd, va_list *list) } } -static void -_weekdays_name_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_List * +_elm_dayselector_weekdays_names_get(Eo *obj, Elm_Dayselector_Data *sd EINA_UNUSED) { int idx; const char *weekday; Elm_Dayselector_Item *it; - Eina_List **weekdays = va_arg(*list, Eina_List **); + Eina_List *weekdays = NULL; for (idx = 0; idx < ELM_DAYSELECTOR_MAX; idx++) { it = _item_find(obj, idx); weekday = elm_object_text_get(VIEW(it)); - *weekdays = eina_list_append(*weekdays, eina_stringshare_add(weekday)); + weekdays = eina_list_append(weekdays, eina_stringshare_add(weekday)); } + return weekdays; +} + +EOLIAN static Eina_Bool +_elm_dayselector_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Dayselector_Data *_pd EINA_UNUSED) +{ + return EINA_FALSE; } static void -_elm_dayselector_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +_elm_dayselector_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_dayselector_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_dayselector_smart_del), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_dayselector_smart_theme), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_TRANSLATE), _elm_dayselector_smart_translate), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_dayselector_smart_focus_direction_manager_is), - - EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET), _elm_dayselector_smart_content_set), - EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_UNSET), _elm_dayselector_smart_content_unset), - - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_dayselector_smart_sizing_eval), - - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_DAY_SELECTED_SET), _day_selected_set), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_DAY_SELECTED_GET), _day_selected_get), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEK_START_SET), _week_start_set), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEK_START_GET), _week_start_get), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_START_SET), _weekend_start_set), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_START_GET), _weekend_start_get), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_LENGTH_SET), _weekend_length_set), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_LENGTH_GET), _weekend_length_get), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKDAYS_NAMES_SET), _weekdays_name_set), - EO_OP_FUNC(ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKDAYS_NAMES_GET), _weekdays_name_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_DAYSELECTOR_SUB_ID_DAY_SELECTED_SET, "Set the state of given Dayselector_Day."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_DAY_SELECTED_GET, "Get the state of given Dayselector_Day."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEK_START_SET, "Set the starting day of Dayselector."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEK_START_GET, "Get the starting day of Dayselector."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_START_SET, "Set the weekend starting day of Dayselector."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_START_GET, "Get the weekend starting day of Dayselector."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_LENGTH_SET, "Set the weekend length of Dayselector."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKEND_LENGTH_GET, "Get the weekend length of Dayselector."), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKDAYS_NAMES_SET, "Set how the weekdays are displayed to the user"), - EO_OP_DESCRIPTION(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKDAYS_NAMES_GET, "Get how the weekdays are displayed to the user"), - 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_DAYSELECTOR_BASE_ID, op_desc, ELM_OBJ_DAYSELECTOR_SUB_ID_LAST), - NULL, - sizeof(Elm_Dayselector_Smart_Data), - _class_constructor, - NULL -}; - -EO_DEFINE_CLASS(elm_obj_dayselector_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL); +#include "elm_dayselector.eo.c" diff --git a/legacy/elementary/src/lib/elm_dayselector.eo b/legacy/elementary/src/lib/elm_dayselector.eo new file mode 100644 index 0000000000..2400c3b3c9 --- /dev/null +++ b/legacy/elementary/src/lib/elm_dayselector.eo @@ -0,0 +1,182 @@ +class Elm_Dayselector (Elm_Layout) +{ + eo_prefix: elm_obj_dayselector; + properties { + week_start { + set { + /*@ + Set the starting day of Dayselector. + + @see Elm_Dayselector_Day + @see elm_dayselector_week_start_get() + + @ingroup Dayselector */ + } + get { + /*@ + Get the starting day of Dayselector. + + @return Day from where Dayselector displays all the weekdays in order. + + @see Elm_Dayselector_Day + @see elm_dayselector_week_start_set() + + @ingroup Dayselector */ + } + values { + Elm_Dayselector_Day day; /*@ Dayselector_Day the first day that the user wants to display. */ + } + } + weekend_length { + set { + /*@ + Set the weekend length of Dayselector. + + @see elm_dayselector_weekend_length_get() + + @ingroup Dayselector */ + } + get { + /*@ + Get the weekend length of Dayselector. + + @return Number of days marked as a weekend. + + @see Elm_Dayselector_Day + @see elm_dayselector_weekend_length_set() + + @ingroup Dayselector */ + } + values { + unsigned int length; /*@ Weekend length, number of days as an integer. */ + } + } + weekend_start { + set { + /*@ + Set the weekend starting day of Dayselector. + + @see Elm_Dayselector_Day + @see elm_dayselector_weekend_start_get() + + @ingroup Dayselector */ + } + get { + /*@ + Get the weekend starting day of Dayselector. + + @return Elm_Dayselector_Day Day from where weekend starts. + + @see Elm_Dayselector_Day + @see elm_dayselector_weekend_start_set() + + @ingroup Dayselector */ + } + values { + Elm_Dayselector_Day day; /*@ Dayselector_Day the first day from where weekend starts. */ + } + } + } + methods { + weekdays_names_set { + /*@ + Set weekdays names to be displayed by the Dayselector. + + By default or if @a weekdays is @c NULL, weekdays abbreviations get from system are displayed: + E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" + + The first string should be related to Sunday, the second to Monday... + + The usage should be like this: + @code + const char *weekdays[] = + { + "Sunday", "Monday", "Tuesday", "Wednesday", + "Thursday", "Friday", "Saturday" + }; + elm_dayselector_wekdays_names_set(calendar, weekdays); + @endcode + + @see elm_dayselector_weekdays_name_get() + @see elm_dayselector_weekend_start_set() + + @since 1.8 + + @ingroup Dayselector */ + + params { + @in const char **weekdays; /*@ Array of seven strings to be used as weekday names. + @warning It must have 7 elements, or it will access invalid memory. + @warning The strings must be NULL terminated ('@\0'). */ + } + } + weekdays_names_get { + /*@ + Get weekdays names displayed by the calendar. + + @return A list of seven strings to be used as weekday names. + + By default, weekdays abbreviations get from system are displayed: + E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" + The first string is related to Sunday, the second to Monday... + + @see elm_dayselector_weekdays_name_set() + + @since 1.8 + + @ingroup Dayselector */ + + const; + return Eina_List *; + } + day_selected_set { + /*@ + Set the state of given Dayselector_Day. + + @see Elm_Dayselector_Day + @see elm_dayselector_day_selected_get() + + @ingroup Dayselector */ + + params { + @in Elm_Dayselector_Day day; /*@ Dayselector_Day that the user want to set state. */ + @in Eina_Bool selected; /*@ state of the day. @c EINA_TRUE is selected. */ + } + } + day_selected_get { + /*@ + Get the state of given Dayselector_Day. + + @return @c EINA_TRUE, if the Day is selected + + @see Elm_Dayselector_Day + @see elm_dayselector_day_selected_set() + + @ingroup Dayselector */ + + const; + return Eina_Bool; + params { + @in Elm_Dayselector_Day day; /*@ Dayselector_Day that the user want to know state. */ + } + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::add; + Evas_Smart::del; + Elm_Widget::theme_apply; + Elm_Widget::focus_direction_manager_is; + Elm_Widget::translate; + Elm_Container::content_unset; + Elm_Container::content_set; + Elm_Layout::sizing_eval; + } + events { + dayselector,changed; + language,changed; + access,changed; + } + +} diff --git a/legacy/elementary/src/lib/elm_dayselector_eo.h b/legacy/elementary/src/lib/elm_dayselector_eo.h index 734efd69e4..e84f76b919 100644 --- a/legacy/elementary/src/lib/elm_dayselector_eo.h +++ b/legacy/elementary/src/lib/elm_dayselector_eo.h @@ -1,3 +1,6 @@ +#include "elm_dayselector.eo.h" + +#if 0 #define ELM_OBJ_DAYSELECTOR_CLASS elm_obj_dayselector_class_get() const Eo_Class *elm_obj_dayselector_class_get(void) EINA_CONST; @@ -163,3 +166,5 @@ enum * @ingroup Dayselector */ #define elm_obj_dayselector_weekdays_names_get(ret) ELM_OBJ_DAYSELECTOR_ID(ELM_OBJ_DAYSELECTOR_SUB_ID_WEEKDAYS_NAMES_GET), EO_TYPECHECK(Eina_List **, ret) +#endif + diff --git a/legacy/elementary/src/lib/elm_widget_dayselector.h b/legacy/elementary/src/lib/elm_widget_dayselector.h index c8fb5dd6f9..f0fc6da6ba 100644 --- a/legacy/elementary/src/lib/elm_widget_dayselector.h +++ b/legacy/elementary/src/lib/elm_widget_dayselector.h @@ -17,8 +17,8 @@ /** * Base layout smart data extended with dayselector instance data. */ -typedef struct _Elm_Dayselector_Smart_Data Elm_Dayselector_Smart_Data; -struct _Elm_Dayselector_Smart_Data +typedef struct _Elm_Dayselector_Data Elm_Dayselector_Data; +struct _Elm_Dayselector_Data { Eina_List *items; Elm_Dayselector_Day week_start; @@ -40,7 +40,7 @@ struct _Elm_Dayselector_Item */ #define ELM_DAYSELECTOR_DATA_GET(o, sd) \ - Elm_Dayselector_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_DAYSELECTOR_CLASS) + Elm_Dayselector_Data * sd = eo_data_scope_get(o, ELM_OBJ_DAYSELECTOR_CLASS) #define ELM_DAYSELECTOR_DATA_GET_OR_RETURN(o, ptr) \ ELM_DAYSELECTOR_DATA_GET(o, ptr); \