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 = {
.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;
}
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)
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);
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);
}
}
dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] -------------- </FOCUS CHAIN> --------------", __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;
/* 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))
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,
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,
utils_dbg_obj_focus(priv->date_part, -1);
utils_dbg_obj_focus(priv->time_part, -1);
+
+ SETTING_TRACE_END;
return true;
}
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;
_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;
}
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)