#define TITLE_BG_Y2 (104.0 / BASE_RESOLUTION_Y)
-#define CONTROLS_X1 0.39
-#define LABELS_X2 0.62
+#define CONTROLS_X1 0.36
+#define LABELS_X2 0.32
-#define GUIDE_LABEL_Y1 0.14
-#define GUIDE_LABEL_Y2 0.17
+#define GUIDE_LABEL_Y1 TITLE_BG_Y2
+#define GUIDE_LABEL_Y2 0.20
-#define MAIN_LABEL_Y1 0.20
-#define MAIN_LABEL_Y2 0.24
-
-#define MANUAL_SETUP_Y1 0.25
-#define MANUAL_SETUP_Y2 0.30
-#define MANUAL_SETUP_X2 0.62
-
-#define DATE_LABEL_Y1 0.32
-#define DATE_LABEL_Y2 0.36
-
-#define DATE_ITEM_Y1 0.38
-#define DATE_ITEM_Y2 0.52
+#define DATE_ITEM_Y1 0.30
+#define DATE_ITEM_Y2 0.44
#define DATE_ITEM_X2 0.62
-#define _24HOUR_LABEL_Y1 0.54
-#define _24HOUR_LABEL_Y2 0.58
-
-#define _24HOUR_ITEM_Y1 0.59
-#define _24HOUR_ITEM_Y2 0.63
+#define _24HOUR_ITEM_Y1 0.52
+#define _24HOUR_ITEM_Y2 0.56
#define _24HOUR_ITEM_X2 0.55
-#define TIME_LABEL_Y1 0.64
-#define TIME_LABEL_Y2 0.68
-
-#define TIME_ITEM_Y1 0.70
-#define TIME_ITEM_Y2 0.84
+#define TIME_ITEM_Y1 0.64
+#define TIME_ITEM_Y2 0.78
#define TIME_ITEM_X2 0.62
}
}
}
-
part {
name, PART_GUIDE;
type, TEXT;
}
}
}
-
- part {
- name, PART_MAIN_LABEL_SETUP;
- type, TEXT;
- scale, 1;
- description {
- state, "default" 0.0;
- color, 116 116 116 255;
- align, 0.0 0.5;
- rel1.relative, CONTROLS_X1 MAIN_LABEL_Y1;
- rel2.relative, LABELS_X2 MAIN_LABEL_Y2;
- text {
- font, FONT_LIGHT;
- size, 32;
- align, 0.0 0.5;
- }
- }
- }
-
- part {
- name, PART_MAIN_ITEM_SETUP;
- type, SWALLOW;
- scale, 1;
- description {
- state, "default" 0.0;
- align, 0.5 0.5;
- rel1.relative, CONTROLS_X1 MANUAL_SETUP_Y1;
- rel2.relative, MANUAL_SETUP_X2 MANUAL_SETUP_Y2;
- }
- }
-
part {
name, PART_MAIN_LABEL_DATE;
type, TEXT;
description {
state, "default" 0.0;
color, 116 116 116 255;
- align, 0.0 0.5;
- rel1.relative, CONTROLS_X1 DATE_LABEL_Y1;
- rel2.relative, LABELS_X2 DATE_LABEL_Y2;
+ rel1.relative, 0.0 DATE_ITEM_Y1;
+ rel2.relative, LABELS_X2 DATE_ITEM_Y2;
text {
font, FONT_LIGHT;
size, 32;
- align, 0.0 0.5;
+ align, 1.0 0.5;
}
}
}
-
part {
name, PART_MAIN_ITEM_DATE;
type, SWALLOW;
rel2.relative, DATE_ITEM_X2 DATE_ITEM_Y2;
}
}
-
part {
name, PART_MAIN_LABEL_24HOUR;
type, TEXT;
description {
state, "default" 0.0;
color, 116 116 116 255;
- align, 0.0 0.5;
- rel1.relative, CONTROLS_X1 _24HOUR_LABEL_Y1;
- rel2.relative, LABELS_X2 _24HOUR_LABEL_Y2;
+ rel1.relative, 0.0 _24HOUR_ITEM_Y1;
+ rel2.relative, LABELS_X2 _24HOUR_ITEM_Y2;
text {
font, FONT_LIGHT;
size, 32;
- align, 0.0 0.5;
+ align, 1.0 0.5;
}
}
}
-
part {
name, PART_MAIN_ITEM_24HOUR;
type, SWALLOW;
rel2.relative, _24HOUR_ITEM_X2 _24HOUR_ITEM_Y2;
}
}
-
part {
name, PART_MAIN_LABEL_TIME;
type, TEXT;
description {
state, "default" 0.0;
color, 116 116 116 255;
- align, 0.0 0.5;
- rel1.relative, CONTROLS_X1 TIME_LABEL_Y1;
- rel2.relative, LABELS_X2 TIME_LABEL_Y2;
+ rel1.relative, 0.0 TIME_ITEM_Y1;
+ rel2.relative, LABELS_X2 TIME_ITEM_Y2;
text {
font, FONT_LIGHT;
size, 32;
- align, 0.0 0.5;
+ align, 1.0 0.5;
}
}
}
-
part {
name, PART_MAIN_ITEM_TIME;
type, SWALLOW;
rel2.relative, TIME_ITEM_X2 TIME_ITEM_Y2;
}
}
-
part {
name, "padding.bottom";
type, SPACER;
}
}
}
-
part {
name, "part.bottom.bg";
type, RECT;
scale, 1;
description {
state, "default" 0.0;
- min, 0 148;
+ min, 0 86;
fixed, 0 1;
align, 0.5 1.0;
rel1.relative, 0.0 1.0;
color, 255 255 255 255;
}
}
-
part {
name, "part.bottom.pad";
type, SPACER;
}
}
}
-
part {
name, PART_VIEW_BOTTOM_BTN1;
type, SWALLOW;
}
}
}
-
part {
name, PART_VIEW_BOTTOM_BTN2;
type, SWALLOW;
#define DEFAULT_KEYPAD_POS 636
#define PADDING_VKEYBOARD 30
-
-
+#define LAYOUT_SIZE_MULTIPLIER 0.6
enum setup_type {
TYPE_MANUAL = 0,
Evas_Object *conformant;
Evas_Object *done;
Evas_Object *cancel;
- Evas_Object *auto_manual_setup_btn;
Evas_Object *setup_type_popup;
Evas_Object *date_part;
/* store input panel state */
bool input_panel_show;
Evas_Object *focused_entry;
+ enum setup_type view_mode_on_show;
} clock_view_priv_data;
_destroy_setup_type_popup(priv);
- elm_object_text_set(priv->auto_manual_setup_btn, elm_object_text_get(obj));
-
switch (id) {
case TYPE_AUTO:
_disable_manual_settings(true, priv);
_ERR("priv data NULL");
return;
}
- elm_object_signal_emit(priv->auto_manual_setup_btn, SIG_SELECTED, SRC_ELM);
ctxpopup = utils_add_ctxpopup(priv->base, TYPE_MAX,
id_setup_type_opt, str_setup_type_opt,
return;
}
- evas_object_geometry_get(priv->auto_manual_setup_btn, &x, &y, &w, &h);
evas_object_move(ctxpopup, (x + w / 2), (y + h));
evas_object_size_hint_min_set(ctxpopup, w, 0);
static bool _add_clock_setting(clock_view_priv_data *priv)
{
SETTING_TRACE_BEGIN
-
+
Evas_Object *done = NULL;
Evas_Object *cancel = NULL;
elm_object_part_text_set(priv->base, PART_TOP_TITLE, STR_CLOCK);
elm_object_part_text_set(priv->base, PART_GUIDE, STR_CLOCK_DES);
- elm_object_part_text_set(priv->base, PART_MAIN_LABEL_SETUP, STR_SETUP);
elm_object_part_text_set(priv->base, PART_MAIN_LABEL_DATE, STR_DATE);
elm_object_part_text_set(priv->base, PART_MAIN_LABEL_24HOUR, STR_24HOUR);
elm_object_part_text_set(priv->base, PART_MAIN_LABEL_TIME, STR_TIME);
priv->cancel = cancel;
priv->done = done;
- /* item - SETUP (clock auto/manual) */
- priv->auto_manual_setup_btn = utils_add_button(priv->base, PART_MAIN_ITEM_SETUP, STYLE_OPTION_BTN, str_setup_type_opt[priv->cur_type]);
-
/* TODO: For some reason, setting ampm to visible corrects the widget's layout
without displaying AM/PM - remove it when datetime is fixed */
priv->date_part = utils_add_datetime(priv->base, PART_MAIN_ITEM_DATE,
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->auto_manual_setup_btn, 0, &_auto_manual_setup_input_handler, priv);
inputmgr_add_callback(priv->check_24, INPUT_HANDLER_TYPE_CHECK_H12_24, &h_12_24_changed, priv);
inputmgr_add_callback(priv->date_part, INPUT_HANDLER_TYPE_DATE_TIME, &date_time_handler, priv);
inputmgr_add_callback(priv->time_part, INPUT_HANDLER_TYPE_DATE_TIME, &date_time_handler, priv);
return true;
}
+static void _resize(Evas_Object *win, Evas_Object *base)
+{
+ int w = 0;
+ int h = 0;
+ float move_offset = (1.0 - LAYOUT_SIZE_MULTIPLIER) * 0.5;
+
+ evas_object_geometry_get(win, NULL, NULL, &w, &h);
+ evas_object_resize(base, LAYOUT_SIZE_MULTIPLIER * w, LAYOUT_SIZE_MULTIPLIER * h);
+ evas_object_move(base, move_offset * w, move_offset * h);
+}
+
static Evas_Object *_create(Evas_Object *win, void *data)
{
SETTING_TRACE_BEGIN;
return NULL;
}
- base = utils_add_layout(win, GRP_VIEW_CLOCK, EINA_TRUE);
+ base = utils_add_layout(win, GRP_VIEW_CLOCK, EINA_FALSE);
if (!base) {
_ERR("Add layout failed.");
free(priv);
return NULL;
}
+ _resize(win, base);
+
priv->win = win;
priv->base = base;
priv->conformant = conformant;
-
/*
elm_object_content_set(conformant, priv->base);
evas_object_show(conformant);
return NULL;
}
-
-
if (!viewmgr_set_view_data(VIEW_CLOCK, priv)) {
_ERR("Set view data failed.");
evas_object_del(base);
static void _show(void *data)
{
+ SETTING_TRACE_BEGIN;
bool automatic_time = false;
bool h24 = true;
- clock_view_priv_data *priv = NULL;
+ clock_view_priv_data *priv = (clock_view_priv_data *)data;
+ bool display_mode;
struct tm current_time = {0,};
- priv = (clock_view_priv_data *)data;
-
if (!priv) {
_ERR("Get data failed.");
return;
}
+ display_mode = priv->view_mode_on_show ? TYPE_AUTO : TYPE_MANUAL;
+
if (!settings_clock_get_current_time(¤t_time))
_ERR("Failed to obtain current time");
if (!settings_clock_is_time_automatic(&automatic_time))
_ERR("Failed to check if time is auto");
- if (automatic_time) {
- priv->cur_type = TYPE_AUTO;
- elm_object_domain_translatable_text_set(priv->auto_manual_setup_btn, SETTINGS_PACKAGE, _(STR_AUTO));
- } else {
- elm_object_domain_translatable_text_set(priv->auto_manual_setup_btn, SETTINGS_PACKAGE, _(STR_MANUAL));
- priv->cur_type = TYPE_MANUAL;
- }
-
- _disable_manual_settings(automatic_time, priv);
-
+// priv->cur_type = automatic_time ? TYPE_AUTO : TYPE_MANUAL;
+ _disable_manual_settings(display_mode, priv);
elm_check_state_set(priv->check_24, h24);
if (h24) {
elm_datetime_value_set(priv->time_part, (Elm_Datetime_Time *)¤t_time);
evas_object_show(priv->base);
- elm_object_focus_set(priv->auto_manual_setup_btn, EINA_TRUE);
+ elm_object_focus_set(priv->done, EINA_TRUE);
+ SETTING_TRACE_END;
}
static void _hide(void *data)
free(priv);
}
+void _update(void *view_data, int update_type, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ clock_view_priv_data *priv = (clock_view_priv_data *)view_data;
+
+ if (update_type != CLOCK_DISPLAY_MODE_UPDATE)
+ return;
+
+ dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] VIEW UPDATE %p, priv->view_mode_on_show=%d",
+ __FILE__, __LINE__, priv, priv->view_mode_on_show);
+
+ priv->view_mode_on_show = (int)data;
+ SETTING_TRACE_END;
+}
+
static view_class _vclass = {
.view_id = VIEW_CLOCK,
.create = _create,
.show = _show,
.hide = _hide,
.destroy = _destroy,
+ .update = _update,
};
view_class *view_clock_get_vclass(void)
settings_clock_set_24h(false);
}
- if (priv->cur_type == TYPE_AUTO) {
+ if (priv->view_mode_on_show == TYPE_AUTO) {
settings_clock_set_time_automatic(true);
} else {
settings_clock_set_time_automatic(false);
{
elm_object_disabled_set(priv->date_part, disable);
elm_object_disabled_set(priv->time_part, disable);
- elm_object_disabled_set(priv->check_24, disable);
}
static void _get_time_from_controls(struct tm *result, const clock_view_priv_data *priv)