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__ */
#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_ */
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;
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;
ellipsis: -1;
}
color: 255 255 255 255;
+ visible: 0;
}
}
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;
}
}
}
}
-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);
}
#include "common/layoutmgr.h"
#include "common/utils.h"
#include "common/viewmgr.h"
+#include "view/common/view_datetime.h"
static bool date_settting_on = true;
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;
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;
}
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)
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);
return;
case KEY_ID_BACK:
dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] DATETIME CLICKED [KEY_ID_BACK]", __FILE__, __LINE__);
- break;
+ return;
default:
break;
}
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;
}
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);
// 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");
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;