From: Michal Skorupinski Date: Fri, 21 Apr 2017 16:59:16 +0000 (+0200) Subject: [UI] Datetime widget with time style updated. X-Git-Tag: submit/tizen/20170425.100558^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F23%2F126623%2F2;p=profile%2Ftv%2Fapps%2Fnative%2Fair_settings.git [UI] Datetime widget with time style updated. Change-Id: I7e5a56c3d5b2ba91a3d9cd8e4b24e930b95fd05b Signed-off-by: Michal Skorupinski --- diff --git a/include/common/utils.h b/include/common/utils.h index 0d8fa1b..1c6d099 100644 --- a/include/common/utils.h +++ b/include/common/utils.h @@ -221,7 +221,7 @@ Evas_Object *utils_add_flipselector(Evas_Object *parent, const char *part, int opt_count, int *opt_id, const char **opt_text, int selected_opt, Evas_Smart_Cb opt_handler, void *data); -void utils_set_obj_focus(Evas_Object *obj, Evas_Object *left, Evas_Object *right, Evas_Object *up, Evas_Object *down, Evas_Object *next, Evas_Object *prev); +void utils_set_obj_focus(Evas_Object *obj, Evas_Object *left, Evas_Object *right, Evas_Object *up, Evas_Object *down, Evas_Object *next, Evas_Object *prev, bool use_returns); void utils_dbg_obj_focus(Evas_Object *item, int num); #endif /* __AIR_SETTINGS_UTILS_H__ */ diff --git a/include/view/common/view_datetime.h b/include/view/common/view_datetime.h index 857b4d9..d10548d 100644 --- a/include/view/common/view_datetime.h +++ b/include/view/common/view_datetime.h @@ -20,10 +20,9 @@ #include "common/viewmgr.h" #include "common/inputmgr.h" -#include "view/common/view_datetime.h" - 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); #endif /* VIEW_DATETIME_H_ */ diff --git a/res/widget/datetime.edc b/res/widget/datetime.edc index 7938c28..e340568 100644 --- a/res/widget/datetime.edc +++ b/res/widget/datetime.edc @@ -153,12 +153,12 @@ group { name: "elm/datetime/base/"STYLE_DATETIME".time"; description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 0.0 1.0; - rel2.to: "separator4"; + rel2.to: "separator01"; align: 0.0 0.5; } } part { - name: "separator4"; + name: "separator01"; type: TEXT; scale: 1; description { state: "default" 0.0; @@ -180,16 +180,16 @@ group { name: "elm/datetime/base/"STYLE_DATETIME".time"; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; - to: "separator4"; + to: "separator01"; } rel2 { relative: 0.0 1.0; - to: "separator5"; + to: "separator02"; } } } part { - name: "separator5"; + name: "separator02"; type: TEXT; scale: 1; description { state: "default" 0.0; @@ -203,6 +203,7 @@ group { name: "elm/datetime/base/"STYLE_DATETIME".time"; ellipsis: -1; } color: 255 255 255 255; + visible: 0; } } @@ -211,7 +212,7 @@ group { name: "elm/datetime/base/"STYLE_DATETIME".time"; scale: 1; description { state: "default" 0.0; rel1.relative: 1.0 0.0; - rel1.to: "separator5"; + rel1.to: "separator02"; rel2.relative: 1.0 1.0; } } diff --git a/src/common/utils.c b/src/common/utils.c index 9acdbc1..b612709 100755 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -525,14 +525,14 @@ void utils_dbg_obj_focus(Evas_Object *item, int num) } } -void utils_set_obj_focus(Evas_Object *obj, Evas_Object *left, Evas_Object *right, Evas_Object *up, Evas_Object *down, Evas_Object *next, Evas_Object *prev) +void utils_set_obj_focus(Evas_Object *obj, Evas_Object *left, Evas_Object *right, Evas_Object *up, Evas_Object *down, Evas_Object *next, Evas_Object *prev, bool use_returns) { - _set_obj_focus_dir(obj, up, ELM_FOCUS_UP, obj != up, ELM_FOCUS_DOWN); - _set_obj_focus_dir(obj, down, ELM_FOCUS_DOWN, obj != down, ELM_FOCUS_UP); - _set_obj_focus_dir(obj, left, ELM_FOCUS_LEFT, obj != left, ELM_FOCUS_RIGHT); - _set_obj_focus_dir(obj, right, ELM_FOCUS_RIGHT, obj != right, ELM_FOCUS_LEFT); - _set_obj_focus_dir(obj, next, ELM_FOCUS_NEXT, obj != next, ELM_FOCUS_PREVIOUS); - _set_obj_focus_dir(obj, prev, ELM_FOCUS_PREVIOUS, obj != prev, ELM_FOCUS_NEXT); + _set_obj_focus_dir(obj, up, ELM_FOCUS_UP, obj != up && use_returns, ELM_FOCUS_DOWN); + _set_obj_focus_dir(obj, down, ELM_FOCUS_DOWN, obj != down && use_returns, ELM_FOCUS_UP); + _set_obj_focus_dir(obj, left, ELM_FOCUS_LEFT, obj != left && use_returns, ELM_FOCUS_RIGHT); + _set_obj_focus_dir(obj, right, ELM_FOCUS_RIGHT, obj != right && use_returns, ELM_FOCUS_LEFT); + _set_obj_focus_dir(obj, next, ELM_FOCUS_NEXT, obj != next && use_returns, ELM_FOCUS_PREVIOUS); + _set_obj_focus_dir(obj, prev, ELM_FOCUS_PREVIOUS, obj != prev && use_returns, ELM_FOCUS_NEXT); } diff --git a/src/view/common/view_datetime.c b/src/view/common/view_datetime.c index 537c744..0c26f28 100644 --- a/src/view/common/view_datetime.c +++ b/src/view/common/view_datetime.c @@ -24,6 +24,7 @@ #include "common/layoutmgr.h" #include "common/utils.h" #include "common/viewmgr.h" +#include "view/common/view_datetime.h" static bool date_settting_on = true; @@ -60,27 +61,53 @@ Evas_Object *view_datetime_create(Evas_Object *parent, const char *part, bool is Eina_Bool field_ampm = !is_date; Evas_Object *datetime = utils_add_datetime(parent, part, field_year, field_month, field_date, field_hour, field_minute, field_ampm, NULL); + int start_field = 0; + int end_field = 0; if (!datetime) { dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] datetime == NULL", __FILE__, __LINE__); return NULL; } - elm_object_style_set(datetime, STYLE_DATETIME".date"); - elm_datetime_format_set(datetime, "%d/%b/%Y"); + 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; + } + + evas_object_repeat_events_set(datetime, EINA_FALSE); _set_spinner_style(datetime); _DBG_datetime(datetime); - _set_spinner_btn_callbacks(datetime, 0, 2); - _set_datetime_focus_chain(datetime, 0, 2); - _DBG_focus_chain(datetime, 0, 2); + _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); return datetime; } +void view_datetime_show(Evas_Object *datetime, bool is_date) +{ + 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); +} + static void _set_spinner_button_height(Evas_Object *spinner, char *part_name, int height) { Evas_Object *part = NULL; @@ -194,7 +221,7 @@ static void _set_datetime_focus_chain(Evas_Object *datetime, int start_field, in Evas_Object *btn = NULL; btn = view_datetime_get_spinner_button(datetime, start_field); - utils_set_obj_focus(btn, btn, NULL, btn, btn, NULL, btn); + utils_set_obj_focus(btn, btn, NULL, btn, btn, NULL, btn, true); elm_object_focus_next_object_set(datetime, btn, ELM_FOCUS_NEXT); prev = btn; @@ -209,12 +236,12 @@ static void _set_datetime_focus_chain(Evas_Object *datetime, int start_field, in } dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] (%d) BUTTON: %s", __FILE__, __LINE__, i, elm_object_text_get(btn)); - utils_set_obj_focus(btn, prev, NULL, btn, btn, NULL, prev); + utils_set_obj_focus(btn, prev, NULL, btn, btn, NULL, prev, true); prev = btn; } btn = view_datetime_get_spinner_button(datetime, end_field); - utils_set_obj_focus(btn, prev, btn, btn, btn, btn, prev); + utils_set_obj_focus(btn, prev, btn, btn, btn, btn, prev, true); } static void _DBG_focus_chain(Evas_Object *datetime, int start_field, int end_field) @@ -235,8 +262,6 @@ static void _DBG_focus_chain(Evas_Object *datetime, int start_field, int end_fie static void _datetime_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) { - dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] DATETIME CLICKED", __FILE__, __LINE__); - switch (ev->keycode) { case KEY_ID_ENTER: elm_object_focus_next(obj, ELM_FOCUS_NEXT); @@ -244,7 +269,7 @@ static void _datetime_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, return; case KEY_ID_BACK: dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] DATETIME CLICKED [KEY_ID_BACK]", __FILE__, __LINE__); - break; + return; default: break; } diff --git a/src/view/system/view_clock.c b/src/view/system/view_clock.c index 6ded594..9738d8e 100755 --- a/src/view/system/view_clock.c +++ b/src/view/system/view_clock.c @@ -172,8 +172,7 @@ static input_handler cancel_btn_handler = { static Eina_Bool _show_timer_cb(void *data) { clock_view_priv_data *priv = data; - elm_object_focus_set(view_datetime_get_spinner_button(priv->date_part, 0), EINA_FALSE); - evas_object_focus_set(priv->date_part, EINA_TRUE); + elm_object_focus_next(priv->date_part, ELM_FOCUS_UP); return ECORE_CALLBACK_CANCEL; } @@ -227,51 +226,51 @@ static bool _add_clock_setting(clock_view_priv_data *priv) if (settings_clock_is_24h_set(&is24h)) elm_check_state_set(priv->check_24, is24h); - priv->time_part = view_datetime_create(priv->base, PART_MAIN_ITEM_TIME, true); + priv->time_part = view_datetime_create(priv->base, PART_MAIN_ITEM_TIME, false); 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, 0); - Evas_Object *time_last = view_datetime_get_spinner_button(priv->time_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, priv->date_part, priv->time_part, - priv->time_part, priv->date_part); + NULL, priv->date_part, + false); elm_object_focus_next_object_set(date_last, time_first, ELM_FOCUS_NEXT); utils_set_obj_focus(priv->time_part, priv->time_part, priv->time_part, priv->date_part, priv->check_24, - priv->check_24, priv->date_part); + 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, - priv->done, priv->check_24); + priv->done, priv->check_24, + false); utils_set_obj_focus(priv->done, priv->cancel, priv->done, priv->check_24, priv->done, - priv->done, priv->done); + priv->done, priv->done, + false); utils_set_obj_focus(priv->cancel, priv->cancel, priv->done, priv->check_24, priv->cancel, - priv->cancel, priv->cancel); - - - utils_set_obj_focus(priv->check_24, - priv->check_24, priv->check_24, - priv->time_part, priv->done, - priv->done, priv->check_24); + priv->cancel, priv->cancel, + false); inputmgr_add_callback(done, INPUT_HANDLER_TYPE_BTN_DONE, &done_btn_handler, priv); inputmgr_add_callback(cancel, INPUT_HANDLER_TYPE_BTN_CANCEL, &cancel_btn_handler, priv); inputmgr_add_callback(priv->check_24, INPUT_HANDLER_TYPE_CHECK_H12_24, &h_12_24_changed, priv); + dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] <<< FINAL >>>", __FILE__, __LINE__); utils_dbg_obj_focus(priv->date_part, -1); utils_dbg_obj_focus(priv->time_part, -1); @@ -384,7 +383,7 @@ static void _show(void *data) // if (h24) { // elm_object_style_set(priv->time_part, "time_layout_24hr"); - elm_datetime_format_set(priv->time_part, "%d/%b/%Y %H:%M"); +// 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"); @@ -394,7 +393,8 @@ static void _show(void *data) elm_datetime_value_set(priv->time_part, (Elm_Datetime_Time *)¤t_time); evas_object_show(priv->base); - elm_object_focus_set(priv->date_part, EINA_TRUE); + view_datetime_show(priv->time_part, false); + elm_object_focus_set(priv->time_part, EINA_TRUE); ecore_idler_add(_show_timer_cb, priv); SETTING_TRACE_END;