From f67ab2650c7636bb82e9dba1e309d09ab3e6b846 Mon Sep 17 00:00:00 2001 From: Michal Skorupinski Date: Mon, 24 Apr 2017 17:46:46 +0200 Subject: [PATCH] [UI] Using the updated defaul themes for datetime widgets. Change-Id: I7995e2ae4c8bdaa32598319034a9a4c99a574d9a Signed-off-by: Michal Skorupinski --- include/view/common/view_datetime.h | 2 +- res/view/system/clock.edc | 2 + src/common/utils.c | 4 +- src/view/common/view_datetime.c | 113 +++++++----------------------------- src/view/system/view_clock.c | 38 ++++++------ 5 files changed, 45 insertions(+), 114 deletions(-) diff --git a/include/view/common/view_datetime.h b/include/view/common/view_datetime.h index d10548d..64d0af3 100644 --- a/include/view/common/view_datetime.h +++ b/include/view/common/view_datetime.h @@ -23,6 +23,6 @@ Evas_Object *view_datetime_create(Evas_Object *parent, const char *part, bool is_date); Evas_Object *view_datetime_get_spinner(Evas_Object *datetime, int field); Evas_Object *view_datetime_get_spinner_button(Evas_Object *datetime, int field); -void view_datetime_show(Evas_Object *datetime, bool is_date); +void view_datetime_set_time_mode(Evas_Object *datetime, bool is_24); #endif /* VIEW_DATETIME_H_ */ diff --git a/res/view/system/clock.edc b/res/view/system/clock.edc index 99cd263..f33f09c 100755 --- a/res/view/system/clock.edc +++ b/res/view/system/clock.edc @@ -90,6 +90,7 @@ group { } } } + DBG(PART_MAIN_ITEM_DATE, 0, 0, 0, 255) part { name, PART_MAIN_ITEM_DATE; type, SWALLOW; @@ -117,6 +118,7 @@ group { } } } + DBG(PART_MAIN_ITEM_TIME, 0, 0, 0, 255) part { name, PART_MAIN_ITEM_TIME; type, SWALLOW; diff --git a/src/common/utils.c b/src/common/utils.c index b612709..4b24054 100755 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -97,6 +97,7 @@ Evas_Object *utils_add_box(Evas_Object *parent, const char *part, Evas_Object *utils_add_button(Evas_Object *parent, const char *part, const char *style, const char *text) { + SETTING_TRACE_BEGIN; Evas_Object *btn; if (!parent) { @@ -121,6 +122,7 @@ Evas_Object *utils_add_button(Evas_Object *parent, const char *part, evas_object_show(btn); + SETTING_TRACE_END; return btn; } @@ -446,7 +448,7 @@ Evas_Object *utils_add_datetime(Evas_Object *parent, const char *part, /*@TODO: Temporary */ - elm_object_scale_set(dtime, 1.0 / APP_BASE_SCALE); +// elm_object_scale_set(dtime, 1.0 / APP_BASE_SCALE); if (time_to_set) elm_datetime_value_set(dtime, (Elm_Datetime_Time *)time_to_set); diff --git a/src/view/common/view_datetime.c b/src/view/common/view_datetime.c index 0c26f28..2487c9b 100644 --- a/src/view/common/view_datetime.c +++ b/src/view/common/view_datetime.c @@ -31,12 +31,10 @@ static bool date_settting_on = true; static void _datetime_btn_clicked_cb(int id, void *data, Evas_Object *obj); static void _datetime_btn_unfocused_cb(int id, void *data, Evas_Object *obj, Elm_Object_Item *item); static void _datetime_btn_focused_cb(int id, void *data, Evas_Object *obj, Elm_Object_Item *item); -static void _set_spinner_style(Evas_Object *datetime); static void _DBG_datetime(Evas_Object *datetime); static void _set_spinner_btn_callbacks(Evas_Object *dt, int start_field, int end_field); static void _set_datetime_focus_chain(Evas_Object *datetime, int start_field, int end_field); static void _DBG_focus_chain(Evas_Object *datetime, int start_field, int end_field); -static void _datetime_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); static void _datetime_btn_keydown_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); static input_handler datetime_btn_handler = { @@ -46,13 +44,10 @@ static input_handler datetime_btn_handler = { .focused = _datetime_btn_focused_cb, }; -static input_handler datetime_handler = { - .key_down = _datetime_key_down_cb, -}; - - Evas_Object *view_datetime_create(Evas_Object *parent, const char *part, bool is_date) { + SETTING_TRACE_BEGIN; + Eina_Bool field_year = is_date; Eina_Bool field_month = is_date; Eina_Bool field_date = is_date; @@ -70,55 +65,43 @@ Evas_Object *view_datetime_create(Evas_Object *parent, const char *part, bool is } if (is_date) { - elm_object_style_set(datetime, STYLE_DATETIME".date"); elm_datetime_format_set(datetime, "%d/%b/%Y"); start_field = 0; end_field = 2; } else { - elm_object_style_set(datetime, STYLE_DATETIME".time"); elm_object_style_set(datetime, "time_layout"); elm_datetime_format_set(datetime, "%d/%b/%Y %H:%M"); start_field = 3; - end_field = 4; + end_field = 5; } - evas_object_repeat_events_set(datetime, EINA_FALSE); - _set_spinner_style(datetime); _DBG_datetime(datetime); _set_spinner_btn_callbacks(datetime, start_field, end_field); _set_datetime_focus_chain(datetime, start_field, end_field); _DBG_focus_chain(datetime, start_field, end_field); - inputmgr_add_callback(datetime, 1, &datetime_handler, NULL); - + SETTING_TRACE_END; return datetime; } -void view_datetime_show(Evas_Object *datetime, bool is_date) +void view_datetime_set_time_mode(Evas_Object *datetime, bool is_24) { - if (is_date) { - elm_object_style_set(datetime, STYLE_DATETIME".date"); - } else { - elm_object_style_set(datetime, STYLE_DATETIME".time"); -// elm_object_style_set(datetime, "time_layout"); - } - - _set_spinner_style(datetime); -} + if (is_24) {/*24h*/ + elm_object_style_set(datetime, "time_layout_24hr"); + elm_datetime_format_set(datetime, "%d/%b/%Y %H:%M"); -static void _set_spinner_button_height(Evas_Object *spinner, char *part_name, int height) -{ - Evas_Object *part = NULL; + _set_datetime_focus_chain(datetime, 3, 4); + } else { + elm_object_style_set(datetime, "time_layout"); + elm_datetime_format_set(datetime, "%d/%b/%Y %I:%M %p"); - if (part_name) - part = elm_object_part_content_get(spinner, part_name); - else - part = spinner; + _set_spinner_btn_callbacks(datetime, 5, 5); + _set_datetime_focus_chain(datetime, 3, 5); + } - evas_object_size_hint_min_set(part, 0, height); - evas_object_size_hint_max_set(part, -1, height); + _DBG_datetime(datetime); } static void _DBG_datetime(Evas_Object *datetime) @@ -127,7 +110,7 @@ static void _DBG_datetime(Evas_Object *datetime) dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] DATE_TIME: STYLE: %s", __FILE__, __LINE__, datetime_style); int i; - for (i = 0; i < 5; ++i) { + for (i = 0; i <= 5; ++i) { char buf[255]; snprintf(buf, 255, "field%d", i); @@ -144,54 +127,15 @@ static void _DBG_datetime(Evas_Object *datetime) const char *dec_style = elm_object_style_get(btn); btn = elm_object_part_content_get(spinner, "elm.swallow.text_button"); const char *btn_style = elm_object_style_get(btn); + const char *txt = elm_object_text_get(btn); - dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] {Part(%s) TYPE:(%s) STYLE: %s} INC: %s DEC: %s BTN: %s", + dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] {Part(%s) TYPE:(%s) STYLE: %s} INC: %s DEC: %s BTN: %s-[%s]", __FILE__, __LINE__, buf, evas_object_type_get(spinner), spinner_style, - inc_style, dec_style, btn_style); - } - - - Evas_Object *box = elm_object_part_content_get(datetime, "field5"); - Eina_List *children = elm_box_children_get(box); - Eina_List *l; - Evas_Object *item; - i = 0; - - EINA_LIST_FOREACH(children, l, item) { - dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] {Part(%s->%d) TYPE:(%s)", - __FILE__, __LINE__, - "field5", i, evas_object_type_get(item)); - ++i; - } -} - -static void _set_spinner_style(Evas_Object *datetime) -{ - int i; - Evas_Object *spinner; - - for (i = 0; i < 5; ++i) { - char buf[255]; - snprintf(buf, 255, "field%d", i); - - spinner = elm_object_part_content_get(datetime, buf); - if (!spinner) { - dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] part(%s) == NULL", __FILE__, __LINE__, buf); - continue; - } - - elm_spinner_editable_set(spinner, EINA_FALSE); - elm_object_style_set(spinner, STYLE_DATETIME); - - _set_spinner_button_height(spinner, NULL, 100); - _set_spinner_button_height(spinner, "elm.swallow.inc_button", 20); - _set_spinner_button_height(spinner, "elm.swallow.dec_button", 20); - _set_spinner_button_height(spinner, "elm.swallow.text_button", 60); - - evas_object_propagate_events_set(spinner, EINA_FALSE); + inc_style, dec_style, + btn_style, txt); } } @@ -260,21 +204,6 @@ static void _DBG_focus_chain(Evas_Object *datetime, int start_field, int end_fie dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] -------------- --------------", __FILE__, __LINE__); } -static void _datetime_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - switch (ev->keycode) { - case KEY_ID_ENTER: - elm_object_focus_next(obj, ELM_FOCUS_NEXT); - dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] DATETIME CLICKED [ELM_FOCUS_NEXT]", __FILE__, __LINE__); - return; - case KEY_ID_BACK: - dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] DATETIME CLICKED [KEY_ID_BACK]", __FILE__, __LINE__); - return; - default: - break; - } -} - static void _datetime_btn_clicked_cb(int id, void *data, Evas_Object *obj) { Evas_Object *dt = (Evas_Object *)data; diff --git a/src/view/system/view_clock.c b/src/view/system/view_clock.c index 9738d8e..7d5dc79 100755 --- a/src/view/system/view_clock.c +++ b/src/view/system/view_clock.c @@ -220,7 +220,6 @@ static bool _add_clock_setting(clock_view_priv_data *priv) /* 24/12h check: */ priv->check_24 = elm_check_add(priv->base); elm_object_part_content_set(priv->base, PART_MAIN_ITEM_24HOUR, priv->check_24); - elm_object_scale_set(priv->check_24, 1.0 / APP_BASE_SCALE); bool is24h; if (settings_clock_is_24h_set(&is24h)) @@ -230,7 +229,6 @@ static bool _add_clock_setting(clock_view_priv_data *priv) Evas_Object *date_last = view_datetime_get_spinner_button(priv->date_part, 2); Evas_Object *time_first = view_datetime_get_spinner_button(priv->time_part, 3); - Evas_Object *time_last = view_datetime_get_spinner_button(priv->time_part, 4); utils_set_obj_focus(priv->date_part, priv->date_part, priv->date_part, @@ -246,8 +244,6 @@ static bool _add_clock_setting(clock_view_priv_data *priv) NULL, priv->date_part, false); - elm_object_focus_next_object_set(time_last, priv->check_24, ELM_FOCUS_NEXT); - utils_set_obj_focus(priv->check_24, priv->check_24, priv->check_24, priv->time_part, priv->done, @@ -274,6 +270,8 @@ static bool _add_clock_setting(clock_view_priv_data *priv) utils_dbg_obj_focus(priv->date_part, -1); utils_dbg_obj_focus(priv->time_part, -1); + + SETTING_TRACE_END; return true; } @@ -353,6 +351,17 @@ static Evas_Object *_create(Evas_Object *win, void *data) return base; } +void _update_focus_chain(bool h24, clock_view_priv_data* priv) +{ + Evas_Object *time_last; + if (h24) + time_last = view_datetime_get_spinner_button(priv->time_part, 4); + else + time_last = view_datetime_get_spinner_button(priv->time_part, 5); + + elm_object_focus_next_object_set(time_last, priv->check_24, ELM_FOCUS_NEXT); +} + static void _show(void *data) { SETTING_TRACE_BEGIN; @@ -381,22 +390,17 @@ static void _show(void *data) _disable_manual_settings(display_mode, priv); elm_check_state_set(priv->check_24, h24); -// if (h24) { -// elm_object_style_set(priv->time_part, "time_layout_24hr"); -// elm_datetime_format_set(priv->time_part, "%d/%b/%Y %H:%M"); -// } else { -// elm_object_style_set(priv->time_part, "time_layout"); -// elm_datetime_format_set(priv->time_part, "%d/%b/%Y %I:%M %p"); -// } + view_datetime_set_time_mode(priv->time_part, h24); elm_datetime_value_set(priv->date_part, (Elm_Datetime_Time *)¤t_time); elm_datetime_value_set(priv->time_part, (Elm_Datetime_Time *)¤t_time); evas_object_show(priv->base); - view_datetime_show(priv->time_part, false); elm_object_focus_set(priv->time_part, EINA_TRUE); ecore_idler_add(_show_timer_cb, priv); + _update_focus_chain(h24, priv); + SETTING_TRACE_END; } @@ -495,14 +499,8 @@ static void _h_24_12_changed_cb(int id, void *data, Evas_Object *check_24) return; state = elm_check_state_get(check_24); - - if (state) {/*24h*/ -// elm_object_style_set(priv->time_part, "time_layout_24hr"); -// elm_datetime_format_set(priv->time_part, "%d/%b/%Y %H:%M"); - } else { -// elm_object_style_set(priv->time_part, "time_layout"); -// elm_datetime_format_set(priv->time_part, "%d/%b/%Y %I:%M %p"); - } + view_datetime_set_time_mode(priv->time_part, state); + _update_focus_chain(state, priv); } static void _done_mouse_cb(int id, void *data, Evas_Object *obj) -- 2.7.4