[UI] Datetime widget with time style updated. 23/126623/2 submit/tizen/20170425.100558 submit/tizen/20170425.100636
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Fri, 21 Apr 2017 16:59:16 +0000 (18:59 +0200)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Mon, 24 Apr 2017 10:57:32 +0000 (12:57 +0200)
Change-Id: I7e5a56c3d5b2ba91a3d9cd8e4b24e930b95fd05b
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
include/common/utils.h
include/view/common/view_datetime.h
res/widget/datetime.edc
src/common/utils.c
src/view/common/view_datetime.c
src/view/system/view_clock.c

index 0d8fa1b..1c6d099 100644 (file)
@@ -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__ */
index 857b4d9..d10548d 100644 (file)
 #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_ */
index 7938c28..e340568 100644 (file)
@@ -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;
                        }
                }
index 9acdbc1..b612709 100755 (executable)
@@ -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);
 }
 
 
index 537c744..0c26f28 100644 (file)
@@ -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;
        }
index 6ded594..9738d8e 100755 (executable)
@@ -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 *)&current_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;