-/*
- * Copyright (c) 2010 Samsung Electronics, Inc.
+/* * Copyright (c) 2010 Samsung Electronics, Inc.
* All rights reserved.
*
* This software is a confidential and proprietary information
#include <alarm.h>
#include <string.h>
#include <stdint.h>
+#include <system_settings.h>
+#include <fontconfig/fontconfig.h>
#include "setting-clock.h"
#include "util.h"
#include "setting.h"
#include "setting_view_toast.h"
+#include "setting-language.h"
#include "setting_data_vconf.h"
#include "circle/efl_extension_circle_object_scroller.h"
#include "circle/efl_extension_rotary.h"
+#define FONT_SIZE_COUNT 3
+#define SETTINGS_FIXED_DEFAULT_FONT_NAME "BreezeSans"
+#define VCONFKEY_SETAPPL_LCD_TIMEOUT_BACKUP_FOR_WATCH_ALWAYS_ON "db/setting/lcd_backlight_timeout_backup"
+#define SETTINGS_DEFAULT_FONT_NAME "Default"
+#define SETTING_FONT_PRELOAD_FONT_PATH "/usr/share/fonts"
+#define SETTING_FONT_DOWNLOADED_FONT_PATH TZ_SYS_GLOBALUSER_DATA_D"/fonts"
+
EAPI Evas_Object *elm_widget_top_get(const Evas_Object *obj);
static Eina_List *g_clock_list[3];
-static void _datetime_auto_sync_cb(void *data, Evas_Object *obj, void *event_info);
-static void _datetime_date_cb(void *data, Evas_Object *obj, void *event_info);
-static void _datetime_time_cb(void *data, Evas_Object *obj, void *event_info);
-static char *get_timezone_str();
-static i18n_uchar *uastrcpy(const char *chars);
-static void ICU_set_timezone(const char *timezone);
+//static void _datetime_auto_sync_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _datetime_date_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _datetime_time_cb(void *data, Evas_Object *obj, void *event_info);
+//static char *get_timezone_str();
+//static i18n_uchar *uastrcpy(const char *chars);
+//static void ICU_set_timezone(const char *timezone);
static void _mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void _mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
Evas_Object *_clock_type_cb(void *data);
void _clock_type_cb_gen_item(void *data, Evas_Object *obj, void *event_info);
+static void _clock_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *_gl_clock_noti_indicator_check_get(void *data, Evas_Object *obj, const char *part);
+static void _clock_gl_clock_noti_indicator_cb(void *data, Evas_Object *obj, void *event_info);
+static void _clock_gl_clock_noti_indicator_check_cb(void *data, Evas_Object *obj, void *event_info);
+static void _clock_gl_clock_noti_indicator_help_cb(void *data, Evas_Object *obj, void *event_info);
+static void _show_noti_indicator_list(void *data);
+#ifdef FEATURE_SETTING_EMUL
+static void _clock_gl_watch_always_on_cb(void *data, Evas_Object *obj, void *event_info);
+#endif
+static Evas_Object *_gl_clock_watch_always_check_get(void *data, Evas_Object *obj, const char *part);
+static void _clock_watch_always_check_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+
+static Evas_Object *g_font_size_genlist = NULL;
+static Evas_Object *g_font_style_genlist = NULL;
+static Evas_Object *g_font_genlist = NULL;
+
+
+static char *font_name = NULL;
+static int font_size_index = 1; /* default: normal */
+
+static Elm_Object_Item *font_style_item = NULL;
+static Elm_Object_Item *font_size_item = NULL;
+
+static void _font_size_gl_cb(void *data, Evas_Object *obj, void *event_info);
+static void _font_style_gl_cb(void *data, Evas_Object *obj, void *event_info);
+static void settings_font_style_changed_cb(system_settings_key_e key, void *user_data);
+static void setting_font_list_pop_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _lang_update_font_style_list(void *data, Evas_Object *obj, void *event_info);
+
+void _clock_gl_font_style_cb(void *data, Evas_Object *obj, void *event_info);
+void _clock_gl_font_size_cb(void *data, Evas_Object *obj, void *event_info);
+
static struct _clock_menu_item clock_menu_its[] = {
- { "IDS_ST_BODY_CLOCK_TYPE_ABB", 1, _clock_type_cb_gen_item },
+ //{ "IDS_ST_BODY_CLOCK_TYPE_ABB", 1, _clock_type_cb_gen_item },
+ { "WDS_WMGR_HEADER_WATCH_FACES", SETTING_CLOCK_WATCH_FACE, _clock_cb},
+ { "WDS_CLOCK_MBODY_NOTIFICATION_INDICATOR", SETTING_CLOCK_NOTIFICATION_INDICATOR, _clock_gl_clock_noti_indicator_cb },
+#ifdef FEATURE_SETTING_EMUL
+ { "watch always on", SETTING_CLOCK_WATCH_ALWAYS_ON, _clock_gl_watch_always_on_cb },
+#endif
#ifndef FEATURE_SETTING_SDK
- { "IDS_ST_BODY_DATE_AND_TIME_ABB", 0, _dt_cb },
- { "IDS_ST_BODY_HOURLY_ALERT_ABB", 0, _hourly_alert_cb },
+// { "IDS_ST_BODY_DATE_AND_TIME_ABB", 0, _dt_cb },
+// { "IDS_ST_BODY_HOURLY_ALERT_ABB", 0, _hourly_alert_cb },
#endif
+ { "Background style", SETTING_CLOCK_BACKGROUND_STYLE, _clock_gl_font_cb },
+ { "IDS_ST_BODY_FONT", SETTING_CLOCK_FONT, _clock_gl_font_cb },
+};
+
+static struct _clock_menu_item noti_menu_its[] = {
+ { "WDS_CLOCK_MBODY_NOTIFICATION_INDICATOR", SETTING_CLOCK_NOTIFICATION_INDICATOR_SW, _clock_gl_clock_noti_indicator_check_cb},
+ { "IDS_ST_MBODY_HELP", SETTING_CLOCK_NOTIFICATION_INDICATOR_HELP, _clock_gl_clock_noti_indicator_help_cb },
+};
+
+//static struct _dt_menu_item dt_menu_its[] = {
+// { "IDS_ST_BODY_AUTO_SYNC_ABB2", "IDS_ST_BODY_SYNC_WITH_PHONE_ABB", _datetime_auto_sync_cb },
+// { "IDS_ST_BODY_SET_DATE_ABB2", "", _datetime_date_cb },
+// { "IDS_SMEMO_BUTTON_SET_TIME_ABB", "", _datetime_time_cb },
+//};
+
+static struct _font_menu_item font_menu_its[] = {
+ { "IDS_ST_BODY_FONT_STYLE", SETTING_CLOCK_FONT_STYLE, _clock_gl_font_style_cb },
+ { "IDS_ST_BODY_FONT_SIZE_ABB", SETTING_CLOCK_FONT_SIZE, _clock_gl_font_size_cb },
};
-static struct _dt_menu_item dt_menu_its[] = {
- { "IDS_ST_BODY_AUTO_SYNC_ABB2", "IDS_ST_BODY_SYNC_WITH_PHONE_ABB", _datetime_auto_sync_cb },
- { "IDS_ST_BODY_SET_DATE_ABB2", "", _datetime_date_cb },
- { "IDS_SMEMO_BUTTON_SET_TIME_ABB", "", _datetime_time_cb },
+
+static char *font_size_str[] = {
+ "IDS_EMAIL_OPT_SMALL_M_FONT_SIZE",
+ "IDS_ST_OPT_MEDIUM_M_FONT_SIZE",
+ "IDS_ST_BODY_LARGE_M_FONT_SIZE_ABB2"
+};
+
+enum {
+ CLOCK_TITLE_CLOCK,
+ CLOCK_TITLE_LANGUAGE,
+ CLOCK_TITLE_SCREEN_TIMEOUT,
+ CLOCK_TITLE_FONT,
+ CLOCK_TITLE_FONT_STYLE,
+ CLOCK_TITLE_FONT_SIZE,
+ CLOCK_TITLE_NOTIFICATION_INDICATOR,
+ CLOCK_TITLE_ROTATE,
};
+static char *
+_gl_menu_title_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ char buf[1024];
+ int title_idx = (uintptr_t)data;
+ switch (title_idx) {
+ case CLOCK_TITLE_CLOCK:
+ snprintf(buf, 1023, "%s", "Watch faces and Styles");
+ break;
+ case CLOCK_TITLE_LANGUAGE:
+ snprintf(buf, 1023, "%s", _("IDS_ST_BUTTON_LANGUAGE"));
+ break;
+ case CLOCK_TITLE_SCREEN_TIMEOUT:
+ snprintf(buf, 1023, "%s", _("IDS_ST_MBODY_SCREEN_TIMEOUT_ABB"));
+ break;
+ case CLOCK_TITLE_FONT:
+ snprintf(buf, 1023, "%s", _("IDS_ST_BODY_FONT"));
+ break;
+ case CLOCK_TITLE_FONT_STYLE:
+ snprintf(buf, 1023, "%s", _("IDS_ST_BODY_FONT_STYLE"));
+ break;
+ case CLOCK_TITLE_FONT_SIZE:
+ snprintf(buf, 1023, "%s", _("IDS_ST_BODY_FONT_SIZE_ABB"));
+ break;
+ case CLOCK_TITLE_NOTIFICATION_INDICATOR:
+ snprintf(buf, 1023, "%s", _("WDS_CLOCK_MBODY_NOTIFICATION_INDICATOR"));
+ break;
+ case CLOCK_TITLE_ROTATE:
+ snprintf(buf, 1023, "%s", _("IDS_COM_OPT_ROTATE"));
+ break;
+
+ }
+ return strdup(buf);
+}
+
static Elm_Object_Item *auto_sync_item = NULL;
static Elm_Object_Item *date_item = NULL;
static Elm_Object_Item *time_item = NULL;
static Evas_Object *g_date_time_genlist = NULL;
static Evas_Object *g_clock_genlist = NULL;
-static Evas_Object *auto_sync_check = NULL;
+//static Evas_Object *auto_sync_check = NULL;
static Evas_Object *g_clock_scroller = NULL;
static Evas_Object *g_clock_box = NULL;
/*pkgmgr_client *pc_clock = NULL; */
static int is_alert_mode_type = 0;
static appdata *temp_ad = NULL;
-int is_alert_on_or_off;
int is_running_clock;
+static Evas_Object *g_noti_check = NULL;
+static Evas_Object *g_noti_indicator_genlist = NULL;
static int _clock_type_compare_cb(const void *d1, const void *d2);
return;
}
-void _hourly_alert_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
-
- _show_hourly_alert_list(data);
-}
-
-static char *_date_format_get()
-{
- int ret = 0;
- int date_val = 0;
-
- char *date_fmt[] = { "%d%m%Y", "%m%d%Y", "%Y%m%d", "%Y%d%m" };
-
- ret = vconf_get_int(VCONFKEY_SETAPPL_DATE_FORMAT_INT, &date_val);
- DBG("ret = %d", ret);
-
- return strdup(date_fmt[date_val]);
-}
-
-static char *_time_format_get()
-{
- int ret = 0;
- int is_hour24 = 0;
- int time_val = 0;
- char *time_fmt[] = { "%d%m%Y%I:%M%p", "%d%m%Y%H:%M" };
-
- ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &time_val);
-
- if (ret < 0)
- is_hour24 = 0;
- else if (time_val == VCONFKEY_TIME_FORMAT_12 || time_val == VCONFKEY_TIME_FORMAT_24)
- is_hour24 = time_val - 1;
-
- return strdup(time_fmt[is_hour24]);
-}
+//void _hourly_alert_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+//
+// _show_hourly_alert_list(data);
+//}
+
+//static char *_date_format_get()
+//{
+// int ret = 0;
+// int date_val = 0;
+//
+// char *date_fmt[] = { "%d%m%Y", "%m%d%Y", "%Y%m%d", "%Y%d%m" };
+//
+// ret = vconf_get_int(VCONFKEY_SETAPPL_DATE_FORMAT_INT, &date_val);
+// DBG("ret = %d", ret);
+//
+// return strdup(date_fmt[date_val]);
+//}
+//
+//static char *_time_format_get()
+//{
+// int ret = 0;
+// int is_hour24 = 0;
+// int time_val = 0;
+// char *time_fmt[] = { "%d%m%Y%I:%M%p", "%d%m%Y%H:%M" };
+//
+// ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &time_val);
+//
+// if (ret < 0)
+// is_hour24 = 0;
+// else if (time_val == VCONFKEY_TIME_FORMAT_12 || time_val == VCONFKEY_TIME_FORMAT_24)
+// is_hour24 = time_val - 1;
+//
+// return strdup(time_fmt[is_hour24]);
+//}
#if 0 /* _NOT_USED_ */
static char *_datetime_format_get()
}
#endif
-static void _vconf_date_format_changed_cb(keynode_t *node, void *data)
-{
- ICU_set_timezone(get_timezone_str());
- Evas_Object *datetime = (Evas_Object *) data;
- char *dt_fmt = _date_format_get();
- elm_datetime_format_set(datetime, dt_fmt);
- FREE(dt_fmt);
-}
-
-static void _vconf_time_format_changed_cb(keynode_t *node, void *data)
-{
- ICU_set_timezone(get_timezone_str());
- Evas_Object *datetime = (Evas_Object *) data;
- char *dt_fmt = _time_format_get();
- elm_datetime_format_set(datetime, dt_fmt);
- FREE(dt_fmt);
-}
+//static void _vconf_date_format_changed_cb(keynode_t *node, void *data)
+//{
+// ICU_set_timezone(get_timezone_str());
+// Evas_Object *datetime = (Evas_Object *) data;
+// char *dt_fmt = _date_format_get();
+// elm_datetime_format_set(datetime, dt_fmt);
+// FREE(dt_fmt);
+//}
+//
+//static void _vconf_time_format_changed_cb(keynode_t *node, void *data)
+//{
+// ICU_set_timezone(get_timezone_str());
+// Evas_Object *datetime = (Evas_Object *) data;
+// char *dt_fmt = _time_format_get();
+// elm_datetime_format_set(datetime, dt_fmt);
+// FREE(dt_fmt);
+//}
#if 0 /* _NOT_USED_ */
static void _vconf_datetime_format_changed_cb(keynode_t *node, void *data)
}
#endif
-static Eina_Bool _clear_date_changed_cb(void *data, Elm_Object_Item *it)
-{
- unregister_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, _vconf_date_format_changed_cb);
- unregister_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_date_format_changed_cb);
-
- return EINA_TRUE;
-}
-
-static Eina_Bool _clear_time_changed_cb(void *data, Elm_Object_Item *it)
-{
- unregister_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, _vconf_time_format_changed_cb);
- unregister_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_date_format_changed_cb);
-
- return EINA_TRUE;
-}
-
-static Evas_Object *_create_scroller(Evas_Object *parent)
-{
- Evas_Object *scroller = elm_scroller_add(parent);
- elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
- elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
- evas_object_show(scroller);
-
- return scroller;
-}
-
-void _dt_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
-
- _show_date_and_time_list(data);
-}
+//static Eina_Bool _clear_date_changed_cb(void *data, Elm_Object_Item *it)
+//{
+// unregister_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, _vconf_date_format_changed_cb);
+// unregister_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_date_format_changed_cb);
+//
+// return EINA_TRUE;
+//}
+//
+//static Eina_Bool _clear_time_changed_cb(void *data, Elm_Object_Item *it)
+//{
+// unregister_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, _vconf_time_format_changed_cb);
+// unregister_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_date_format_changed_cb);
+//
+// return EINA_TRUE;
+//}
+
+//static Evas_Object *_create_scroller(Evas_Object *parent)
+//{
+// Evas_Object *scroller = elm_scroller_add(parent);
+// elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+// elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+// evas_object_show(scroller);
+//
+// return scroller;
+//}
+
+//void _dt_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+//
+// _show_date_and_time_list(data);
+//}
char *_gl_clock_title_get(void *data, Evas_Object *obj, const char *part)
{
char buf[1024] = {0, };
- Item_Data *id = data;
+ Clock_Item_Data *id = data;
int index = id->index;
if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(clock_menu_its[index % 3].name));
+ snprintf(buf, sizeof(buf) - 1, "%s", _(clock_menu_its[index].name));
} else if (!strcmp(part, "elm.text.2")) {
- if (index == 0) {
- Clock_Type_Item *selected_clock = _get_selected_clock();
- if (selected_clock) {
- snprintf(buf, sizeof(buf) - 1, "%s", selected_clock->name);
- }
- } else if (index == 1) {
- return NULL;
- } else if (index == 2) {
- char *_houly_alert_str[] = { "IDS_ST_BODY_OFF_M_STATUS", "IDS_ST_BODY_ON_M_STATUS" };
+ switch(index) {
+ case SETTING_CLOCK_NOTIFICATION_INDICATOR:
+ snprintf(buf, sizeof(buf) - 1, "%s", "Show on watch face");
+ break;
+ case SETTING_CLOCK_FONT:
+ {
+ int font_size = -1;
+ char *font_name = NULL;
+ char font_buf[1024] = {0, };
+ char *text_color = "<font color=#4DCFFFC9>%s</font>";
+ char *text_color_two_args = "<font color=#4DCFFFC9>%s.%s</font>";
+ if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ ERR("failed to call system_setting_get_value_string with err");
+ }
+
+ if (font_name) {
+
+ DBG(" font_name <---------------------- (%s) ", font_name);
+
+ if (strstr(font_name, "Samsung")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, "%s", _("IDS_ST_BODY_DEFAULT_FONT"));
+ } else {
+ if (!strcmp(font_name, "Choco cooky")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_LCKSCN_BODY_CHOCO_COOKY_M_FONT"));
+ } else if (!strcmp(font_name, "Cool jazz")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_COOL_JAZZ"));
+ } else if (!strcmp(font_name, "Rosemary")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
+ } else if (!strcmp(font_name, "Tinkerbell")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_MBODY_TINKERBELL"));
+ } else if (!strcmp(font_name, "Applemint")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_RH_BUTTON2_APPLEMINT_M_FONT"));
+ } else if (!strcmp(font_name, "Kaiti")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_KAITI_M_FONT"));
+ } else if (!strcmp(font_name, "POP")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_POP_JPN_DCM"));
+ } else if (!strcmp(font_name, "UDMincho")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_UDMINCHO_JPN"));
+ } else if (!strcmp(font_name, "UDRGothic")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_UDRGOTHICM_JPN"));
+ } else if (!strcmp(font_name, "TizenSans")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("TizenSans"));
+ } else if (!strcmp(font_name, "BreezeSans")) {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_COM_BODY_DEFAULT"));
+ } else {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, font_name);
+ }
+ }
+ } else {
+ snprintf(font_buf, sizeof(font_buf) - 1, text_color, _("IDS_ST_BODY_UNKNOWN"));
+ }
+
+ if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &font_size)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ DBG("Setting - system_settings_get_value_int() is failed.");
+ }
- vconf_get_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, &clock_menu_its[index % 3].type_num);
- snprintf(buf, sizeof(buf) - 1, "%s", _(_houly_alert_str[clock_menu_its[index % 3].type_num]));
+ if (font_size < 0 || font_size > 2) {
+ snprintf(buf, sizeof(buf) - 1, text_color_two_args, font_buf, _("IDS_ST_BODY_UNKNOWN"));
+ } else {
+ snprintf(buf, sizeof(buf) - 1, text_color_two_args, font_buf, _(font_size_str[font_size]));
+ }
+ }
+ break;
+ default:
+ break;
}
- index++;
}
return strdup(buf);
}
static void _clock_gl_del(void *data, Evas_Object *obj)
{
- Item_Data *id = data;
+ Clock_Item_Data *id = data;
FREE(id);
}
return NULL;
}
Evas_Object *genlist = NULL;
- Elm_Genlist_Item_Class *itc_tmp;
struct _clock_menu_item *menu_its = NULL;
int idx = 0;
- Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "2text";
- itc->func.text_get = _gl_clock_title_get;
- itc->func.del = _clock_gl_del;
-
+ Elm_Genlist_Item_Class *itc[5];
+ Elm_Genlist_Item_Class *itc_general, *itc_1icon, *itc_2text;
+ itc_general = elm_genlist_item_class_new();
+ itc_general->item_style = "1text";
+ itc_general->func.text_get = _gl_clock_title_get;
+ itc_general->func.del = _clock_gl_del;
+
+ itc_1icon = elm_genlist_item_class_new();
+ itc_1icon->item_style = "1text.1icon.1";
+ itc_1icon->func.text_get = _gl_clock_title_get;
+ itc_1icon->func.content_get = _gl_clock_watch_always_check_get;
+ itc_1icon->func.del = _clock_gl_del;
+
+ itc_2text = elm_genlist_item_class_new();
+ itc_2text->item_style = "2text";
+ itc_2text->func.text_get = _gl_clock_title_get;
+ itc_2text->func.del = _clock_gl_del;
+
+ itc[SETTING_CLOCK_FONT] = itc[SETTING_CLOCK_NOTIFICATION_INDICATOR]
+ = itc_2text;
+ itc[SETTING_CLOCK_BACKGROUND_STYLE] = itc[SETTING_CLOCK_WATCH_FACE] = itc_general;
+#ifdef FEATURE_SETTING_EMUL
+ itc[SETTING_CLOCK_WATCH_ALWAYS_ON]= itc_1icon;
+#endif
+/*
Elm_Genlist_Item_Class *itc_date_time = elm_genlist_item_class_new();
itc_date_time->item_style = "1text";
itc_date_time->func.text_get = _gl_clock_title_get;
itc_date_time->func.del = _clock_gl_del;
+ */
- Evas_Object *layout = elm_layout_add(ad->nf);
- elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- genlist = elm_genlist_add(layout);
+ genlist = elm_genlist_add(ad->nf);
+ elm_genlist_block_count_set(genlist, 14);
+ elm_genlist_homogeneous_set(genlist, EINA_TRUE);
elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-
connect_to_wheel_with_genlist(genlist, ad);
menu_its = clock_menu_its;
+ Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
+ title_item->func.text_get = _gl_menu_title_text_get;
+ title_item->item_style = "title";
+ title_item->func.del = NULL;
+
+ elm_genlist_item_append(genlist, title_item, (void *)CLOCK_TITLE_CLOCK, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
int count = 0;
count = sizeof(clock_menu_its) / sizeof(clock_menu_its[0]);
- for (idx = 0; idx < count; idx++) {
- if (idx == 1) {
- itc_tmp = itc_date_time;
- } else {
- itc_tmp = itc;
- }
-
- Item_Data *id = calloc(sizeof(Item_Data), 1);
+ for (idx = 0; idx < count; idx++)
+ {
+ Clock_Item_Data *id = calloc(sizeof(Clock_Item_Data), 1);
if (id) {
id->index = idx;
id->item = elm_genlist_item_append(
genlist, /* genlist object */
- itc_tmp, /* item class */
+ itc[idx], /* item class */
id, /* data */
NULL,
ELM_GENLIST_ITEM_NONE,
ad);
}
}
- elm_genlist_item_class_free(itc);
- elm_genlist_item_class_free(itc_date_time);
- g_clock_genlist = genlist;
+ elm_genlist_item_class_free(itc_general);
+ elm_genlist_item_class_free(itc_1icon);
+ elm_genlist_item_class_free(itc_2text);
+ /*elm_genlist_item_class_free(itc_date_time);*/
- elm_object_part_content_set(layout, "elm.genlist", genlist);
+ Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
+ padding->item_style = "padding";
+ padding->func.del = _clock_gl_del;
- return layout;
+ Elm_Object_Item *padding_item;
+ padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+ elm_genlist_item_class_free(padding);
+
+ g_clock_genlist = genlist;
+
+ return genlist;
}
char *_get_str_from_icu(const char *pattern)
return _get_str_from_icu(time_fmt[is_hour24]);
}
-char *_gl_date_and_time_title_get(void *data, Evas_Object *obj, const char *part)
+//char *_gl_date_and_time_title_get(void *data, Evas_Object *obj, const char *part)
+//{
+// char buf[1024] = {0,};
+// Item_Data *id = data;
+// int index = id->index;
+//
+// char expression[32];
+// int auto_update = 0;
+// vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &auto_update);
+//
+// if (!strcmp(part, "elm.text.1")) {
+// if (index == 0) {
+// snprintf(buf, sizeof(buf) - 1, "%s", _(dt_menu_its[index % 3].name));
+// } else {
+// if (auto_update) {
+// strncpy(expression, "<font color=#515151>%s</font>", sizeof(expression)-1);
+// } else {
+// strncpy(expression, "%s", sizeof(expression)-1);
+// }
+// snprintf(buf, sizeof(buf) - 1, expression, _(dt_menu_its[index % 3].name));
+// }
+// } else if (!strcmp(part, "elm.text.2")) {
+// if (index == 0) {
+// snprintf(buf, sizeof(buf) - 1, "%s", _(dt_menu_its[index % 3].date_or_time));
+// } else {
+// if (auto_update) {
+// strncpy(expression, "<font color=#515151>%s</font>", sizeof(expression)-1);
+// } else {
+// strncpy(expression, "%s", sizeof(expression)-1);
+// }
+//
+// if (index == 1) { /* Date */
+// char *date_buf = NULL;
+// date_buf = _get_date_str();
+// snprintf(buf, sizeof(buf) - 1, expression, date_buf);
+// FREE(date_buf);
+// } else if (index == 2) { /* Time */
+// char *time_buf = NULL;
+// time_buf = _get_time_str();
+// snprintf(buf, sizeof(buf) - 1, expression, time_buf);
+// FREE(time_buf);
+// }
+// }
+// index++;
+// }
+// return strdup(buf);
+//}
+
+//static Evas_Object *_gl_dt_auto_sync_check_get(void *data, Evas_Object *obj, const char *part)
+//{
+// Evas_Object *check = NULL;
+// int is_auto_update = 0;
+//
+// DT_Item_Data *id = data;
+// int index = id->index;
+//
+// if (!strcmp(part, "elm.icon")) {
+// if (index == 0) {
+// check = elm_check_add(obj);
+// if (vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_update) < 0) {
+// DBG("Setting - auto time update's vconf get fail");
+// }
+// elm_check_state_set(check, (is_auto_update) ? EINA_TRUE : EINA_FALSE);
+// evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+// evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+//
+// auto_sync_check = check;
+// }
+// index++;
+// }
+//
+// return check;
+//}
+
+//static void _dt_gl_del(void *data, Evas_Object *obj)
+//{
+// DT_Item_Data *id = data;
+// FREE(id);
+//
+// auto_sync_check = NULL;
+// auto_sync_item = NULL;
+// date_item = NULL;
+// time_item = NULL;
+//}
+
+//static void change_datetime_format_cb(keynode_t *key, void *data)
+//{
+// int ret = 0;
+// int time_val = 0;
+// ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &time_val);
+// if (ret < 0)
+// return;
+//
+// DBG("Setting - time_format : %d", time_val);
+// ICU_set_timezone(get_timezone_str());
+//
+// int is_auto_sync = 0;
+// vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
+//
+// if (date_item) {
+// elm_genlist_item_update(date_item);
+// /*elm_object_item_disabled_set(date_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+// }
+// if (time_item) {
+// elm_genlist_item_update(time_item);
+// /*elm_object_item_disabled_set(time_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+// }
+//}
+
+//static Eina_Bool _clear_datetime_changed_cb(void *data, Elm_Object_Item *it)
+//{
+// unregister_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, change_datetime_format_cb);
+// unregister_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, change_datetime_format_cb);
+// unregister_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, change_datetime_format_cb);
+//
+// return EINA_TRUE;
+//}
+
+//void _show_date_and_time_list(void *data)
+//{
+// appdata *ad = data;
+// if (ad == NULL) {
+// DBG("%s", "_create_dt_list - appdata is null");
+// return;
+// }
+// Evas_Object *genlist = NULL;
+// Evas_Object *layout = NULL;
+// Elm_Object_Item *nf_it = NULL;
+// struct _dt_menu_item *menu_its = NULL;
+// int idx = 0;
+// int auto_sync = 0;
+//
+// ICU_set_timezone(get_timezone_str());
+//
+// vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &auto_sync);
+//
+// Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+// itc->item_style = "2text.1icon.1";
+// itc->func.text_get = _gl_date_and_time_title_get;
+// itc->func.content_get = _gl_dt_auto_sync_check_get;
+// itc->func.del = _dt_gl_del;
+//
+// layout = elm_layout_add(ad->nf);
+// elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
+// evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+//
+// genlist = elm_genlist_add(layout);
+// elm_genlist_block_count_set(genlist, 14);
+// elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+// evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+//
+// connect_to_wheel_with_genlist(genlist, ad);
+// menu_its = dt_menu_its;
+//
+// for (idx = 0; idx < CLOCK_DATE_AND_TIME_COUNT; idx++) {
+// DT_Item_Data *id = calloc(sizeof(DT_Item_Data), 1);
+// if (id) {
+// id->index = idx;
+// id->item = elm_genlist_item_append(
+// genlist, /* genlist object */
+// itc, /* item class */
+// id, /* data */
+// NULL,
+// ELM_GENLIST_ITEM_NONE,
+// menu_its[idx].func, /* call back */
+// ad);
+//
+// switch (idx) {
+// case 0:
+// auto_sync_item = id->item;
+// break;
+// case 1:
+// date_item = id->item;
+// break;
+// case 2:
+// time_item = id->item;
+// break;
+// }
+// }
+// }
+// elm_genlist_item_class_free(itc);
+//
+// g_date_time_genlist = genlist;
+//
+// elm_object_part_content_set(layout, "elm.genlist", genlist);
+//
+// nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
+// elm_naviframe_item_pop_cb_set(nf_it, _clear_datetime_changed_cb, ad);
+// elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+//
+// /* time format changing cb */
+// register_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, change_datetime_format_cb, NULL);
+// register_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, change_datetime_format_cb, NULL);
+// register_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, change_datetime_format_cb, NULL);
+//}
+
+//static void _set_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// if (!data || !obj) return;
+//
+// appdata *ad = data;
+// struct tm currtime;
+//
+// elm_datetime_value_get(ad->datetime, &currtime);
+//
+// currtime.tm_isdst = -1;
+// currtime.tm_sec = 0;
+//
+// time_t t = mktime(&currtime);
+//
+// int ret = alarmmgr_set_systime(t);
+// DBG("ret = %d", ret);
+//
+// elm_naviframe_item_pop(ad->nf);
+//
+// /* automatic freed!! */
+// Toast_Data *toast = _create_toast(ad, _("IDS_ST_TPOP_CHANGING_TIME_AND_DATE_SETTINGS_MAY_AFFECT_SOME_FUNCTIONS"));
+// if (toast) {
+// _show_toast(ad, toast);
+// }
+//
+// if (g_date_time_genlist) {
+// elm_genlist_realized_items_update(g_date_time_genlist);
+// }
+//}
+
+//static void _cancle_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// appdata *ad = data;
+//
+// if (!ad)
+// return;
+//
+// elm_naviframe_item_pop(ad->nf);
+//
+// if (ad->dt_genlist_item_of_time != NULL) {
+// elm_genlist_item_update(ad->dt_genlist_item_of_time);
+// }
+//
+// if (ad->dt_genlist_item_of_date != NULL) {
+// elm_genlist_item_update(ad->dt_genlist_item_of_date);
+// }
+//}
+
+//static void _datetime_auto_sync_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+//
+// int is_auto_sync = 0;
+//
+// vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
+//
+// is_auto_sync = !is_auto_sync;
+//
+// vconf_set_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, is_auto_sync);
+//
+// DBG("Setting - Auto sync : %s", is_auto_sync ? "TRUE" : "FALSE");
+//
+// if (auto_sync_check) {
+// elm_check_state_set(auto_sync_check, (is_auto_sync) ? EINA_TRUE : EINA_FALSE);
+// }
+//
+// if (date_item) {
+// elm_genlist_item_update(date_item);
+// /*elm_object_item_disabled_set(date_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+// }
+// if (time_item) {
+// elm_genlist_item_update(time_item);
+// /*elm_object_item_disabled_set(time_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+// }
+//}
+
+//static void _datetime_date_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+//
+// int is_auto_sync = 0;
+// vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
+// if (is_auto_sync) {
+// return;
+// }
+//
+// Evas_Object *scroller;
+// Evas_Object *layout, *btn;
+// Evas_Object *datetime;
+// Elm_Object_Item *it;
+// char *dt_fmt;
+// appdata *ad = (appdata *)data;
+//
+// if (!ad || !obj)
+// return;
+//
+// ad->dt_genlist_item_of_date = (Elm_Object_Item *)event_info;
+//
+// scroller = _create_scroller(ad->nf);
+// evas_object_data_set(scroller, "appdata", ad);
+//
+// layout = elm_layout_add(scroller);
+// elm_layout_file_set(layout, EDJE_PATH, "setting-test/datetime");
+// evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+//
+// datetime = elm_datetime_add(layout);
+// elm_object_style_set(datetime, "datepicker_layout");
+// elm_object_part_content_set(layout, "content", datetime);
+//
+// ad->datetime = datetime;
+//
+//#ifndef DESKTOP
+// dt_fmt = _date_format_get();
+// elm_datetime_format_set(datetime, dt_fmt);
+// FREE(dt_fmt);
+// register_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, _vconf_date_format_changed_cb, datetime);
+// register_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_date_format_changed_cb, datetime);
+//#endif
+//
+// btn = elm_button_add(layout);
+// elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
+// evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+// elm_object_part_content_set(layout, "btn1", btn);
+// evas_object_smart_callback_add(btn, "clicked", _cancle_clicked_cb, ad);
+//
+// btn = elm_button_add(layout);
+// elm_object_text_set(btn, _("IDS_COM_SK_SET_ABB"));
+// evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+// elm_object_part_content_set(layout, "btn2", btn);
+// evas_object_smart_callback_add(btn, "clicked", _set_clicked_cb, ad);
+//
+// elm_object_content_set(scroller, layout);
+//
+// it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, scroller, NULL);
+// elm_naviframe_item_pop_cb_set(it, _clear_date_changed_cb, ad);
+// elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
+//}
+
+//static void _datetime_time_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+//
+// int is_auto_sync = 0;
+// vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
+// if (is_auto_sync) {
+// return;
+// }
+//
+// Evas_Object *scroller;
+// Evas_Object *layout, *btn;
+// Evas_Object *datetime;
+// Elm_Object_Item *it;
+// char *dt_fmt;
+// appdata *ad = (appdata *)data;
+//
+// if (!ad || !obj)
+// return;
+//
+// ad->dt_genlist_item_of_time = (Elm_Object_Item *)event_info;
+//
+// scroller = _create_scroller(ad->nf);
+// evas_object_data_set(scroller, "appdata", ad);
+//
+// layout = elm_layout_add(scroller);
+// elm_layout_file_set(layout, EDJE_PATH, "setting-test/datetime");
+// evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+//
+// datetime = elm_datetime_add(layout);
+// elm_object_style_set(datetime, "timepicker_layout");
+// elm_object_part_content_set(layout, "content", datetime);
+//
+// ad->datetime = datetime;
+//
+//#ifndef DESKTOP
+// dt_fmt = _time_format_get();
+// elm_datetime_format_set(datetime, dt_fmt);
+// DBG("datetime time format : %s", dt_fmt);
+// FREE(dt_fmt);
+// register_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, _vconf_time_format_changed_cb, datetime);
+// register_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_time_format_changed_cb, datetime);
+//#endif
+//
+// btn = elm_button_add(layout);
+// elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
+// evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+// elm_object_part_content_set(layout, "btn1", btn);
+// evas_object_smart_callback_add(btn, "clicked", _cancle_clicked_cb, ad);
+//
+// btn = elm_button_add(layout);
+// elm_object_text_set(btn, _("IDS_COM_SK_SET_ABB"));
+// evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+// elm_object_part_content_set(layout, "btn2", btn);
+// evas_object_smart_callback_add(btn, "clicked", _set_clicked_cb, ad);
+//
+// elm_object_content_set(scroller, layout);
+//
+// it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, scroller, NULL);
+// elm_naviframe_item_pop_cb_set(it, _clear_time_changed_cb, ad);
+// elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
+//}
+
+//static void _alert_gl_del(void *data, Evas_Object *obj)
+//{
+// Alert_Item_Data *id = data;
+// FREE(id);
+//}
+//
+//char *_gl_alert_title_get(void *data, Evas_Object *obj, const char *part)
+//{
+// char buf[1024] = {0,};
+// Alert_Item_Data *id = data;
+// int index = id->index;
+//
+// char *temps[] = { "IDS_ST_BODY_ON_M_STATUS", "IDS_ST_BODY_OFF_M_STATUS" };
+//
+// if (!strcmp(part, "elm.text")) {
+// snprintf(buf, sizeof(buf) - 1, "%s", _(temps[index]));
+// index++;
+// }
+// return strdup(buf);
+//}
+//
+//Evas_Object *_gl_alert_ridio_get(void *data, Evas_Object *obj, const char *part)
+//{
+// Evas_Object *radio = NULL;
+// Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
+// Alert_Item_Data *id = data;
+// int index = id->index;
+//
+// if (!strcmp(part, "elm.icon")) {
+// radio = elm_radio_add(obj);
+// elm_radio_state_value_set(radio, id->index);
+// evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
+// evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+// elm_radio_group_add(radio, radio_main);
+//
+//#if 0
+// vconf_get_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, &is_alert_mode_type);
+//
+// is_alert_mode_type = !is_alert_mode_type;
+//
+// if (is_alert_mode_type == id->index) {
+// elm_radio_value_set(radio_main, is_alert_mode_type);
+// }
+//#endif
+// index++;
+// }
+// return radio;
+//}
+//
+//static void _hourly_gl_cb(void *data, Evas_Object *obj, void *event_info)
+//{
+// elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+//
+// is_alert_mode_type = (uintptr_t)data;
+//
+// elm_naviframe_item_pop(temp_ad->nf);
+// if (!temp_ad->alert_rdg) {
+// evas_object_del(temp_ad->alert_rdg);
+// temp_ad->alert_rdg = NULL;
+// }
+//
+//#if 0
+// clock_menu_its[2].type_num = is_alert_mode_type;
+// vconf_set_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, !is_alert_mode_type);
+//#endif
+// if (g_clock_genlist) {
+// elm_genlist_realized_items_update(g_clock_genlist);
+// }
+//
+// temp_ad = NULL;
+//}
+//
+//void _show_hourly_alert_list(void *data)
+//{
+// appdata *ad = data;
+// if (ad == NULL) {
+// DBG("%s", "_create_alert_list - appdata is null");
+// return;
+// }
+// Evas_Object *genlist = NULL;
+// Elm_Object_Item *nf_it = NULL;
+//
+// temp_ad = ad;
+//
+// Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+// itc->item_style = "1text.1icon.1";
+// itc->func.text_get = _gl_alert_title_get;
+// itc->func.content_get = _gl_alert_ridio_get;
+// itc->func.del = _alert_gl_del;
+//
+// Evas_Object *layout = elm_layout_add(ad->nf);
+// elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
+// evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+//
+// genlist = elm_genlist_add(layout);
+// elm_genlist_block_count_set(genlist, 14);
+// elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+// evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+// connect_to_wheel_with_genlist(genlist, ad);
+//
+// Alert_Item_Data *id = calloc(sizeof(Alert_Item_Data), 1);
+// if (id) {
+// id->index = 0;
+// id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _hourly_gl_cb, (void *)0);
+// }
+//
+// Alert_Item_Data *id2 = calloc(sizeof(Alert_Item_Data), 1);
+// if (id2) {
+// id2->index = 1;
+// id2->item = elm_genlist_item_append(genlist, itc, id2, NULL, ELM_GENLIST_ITEM_NONE, _hourly_gl_cb, (void *)1);
+// }
+//
+// ad->alert_rdg = elm_radio_add(genlist);
+// elm_radio_state_value_set(ad->alert_rdg, 3);
+// elm_radio_value_set(ad->alert_rdg, is_alert_mode_type);
+//
+// evas_object_data_set(genlist, "radio_main", ad->alert_rdg);
+//
+// elm_genlist_item_class_free(itc);
+//
+// elm_object_part_content_set(layout, "elm.genlist", genlist);
+//
+// nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
+// elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+//}
+//
+
+void _clocklist_load()
{
- char buf[1024] = {0,};
- Item_Data *id = data;
- int index = id->index;
+ if (g_clock_list[0] || g_clock_list[1] || g_clock_list[2]) {
+ _clocklist_destroy();
+ }
- char expression[32];
- int auto_update = 0;
- vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &auto_update);
+ pkgmgrinfo_appinfo_filter_h handle = NULL;
- if (!strcmp(part, "elm.text.1")) {
- if (index == 0) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(dt_menu_its[index % 3].name));
- } else {
- if (auto_update) {
- strncpy(expression, "<font color=#515151>%s</font>", sizeof(expression)-1);
- } else {
- strncpy(expression, "%s", sizeof(expression)-1);
- }
- snprintf(buf, sizeof(buf) - 1, expression, _(dt_menu_its[index % 3].name));
- }
- } else if (!strcmp(part, "elm.text.2")) {
- if (index == 0) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(dt_menu_its[index % 3].date_or_time));
- } else {
- if (auto_update) {
- strncpy(expression, "<font color=#515151>%s</font>", sizeof(expression)-1);
- } else {
- strncpy(expression, "%s", sizeof(expression)-1);
- }
+ if (pkgmgrinfo_appinfo_filter_create(&handle) != PMINFO_R_OK) {
+ ERR("pkgmgrinfo_appinfo_filter_create error");
+ return;
+ }
- if (index == 1) { /* Date */
- char *date_buf = NULL;
- date_buf = _get_date_str();
- snprintf(buf, sizeof(buf) - 1, expression, date_buf);
- FREE(date_buf);
- } else if (index == 2) { /* Time */
- char *time_buf = NULL;
- time_buf = _get_time_str();
- snprintf(buf, sizeof(buf) - 1, expression, time_buf);
- FREE(time_buf);
- }
- }
- index++;
+ if (pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_COMPONENT, WATCH_COMPONENT_NAME)
+ != PMINFO_R_OK) {
+ ERR("pkgmgrinfo_appinfo_filter_add_string error");
+ pkgmgrinfo_appinfo_filter_destroy(handle);
+ return;
}
- return strdup(buf);
-}
-static Evas_Object *_gl_dt_auto_sync_check_get(void *data, Evas_Object *obj, const char *part)
-{
- Evas_Object *check = NULL;
- int is_auto_update = 0;
+ if (pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, _category_app_list_cb, NULL)
+ != PMINFO_R_OK) {
+ ERR("pkgmgrinfo_appinfo_filter_foreach_appinfo error");
+ pkgmgrinfo_appinfo_filter_destroy(handle);
+ return;
+ }
- DT_Item_Data *id = data;
- int index = id->index;
+ pkgmgrinfo_appinfo_filter_destroy(handle);
- if (!strcmp(part, "elm.icon")) {
- if (index == 0) {
- check = elm_check_add(obj);
- if (vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_update) < 0) {
- DBG("Setting - auto time update's vconf get fail");
- }
- elm_check_state_set(check, (is_auto_update) ? EINA_TRUE : EINA_FALSE);
- evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ Clock_Type_Item *pitem = NULL;
+ Eina_List *list = NULL;
+ int i;
- auto_sync_check = check;
+ for (i = 0; i < 3; i++) {
+ EINA_LIST_FOREACH(g_clock_list[i], list, pitem) {
+ pitem->index = clock_idx++;
}
- index++;
}
- return check;
}
-static void _dt_gl_del(void *data, Evas_Object *obj)
+void _clocklist_destroy()
{
- DT_Item_Data *id = data;
- FREE(id);
+ Clock_Type_Item *pitem = NULL;
+ Eina_List *list = NULL;
+ clock_idx = 0;
+ int i;
- auto_sync_check = NULL;
- auto_sync_item = NULL;
- date_item = NULL;
- time_item = NULL;
+ for (i = 0; i < 3; i++) {
+ EINA_LIST_FOREACH(g_clock_list[i], list, pitem) {
+ FREE(pitem->appid);
+ FREE(pitem->pkgid);
+ FREE(pitem->name);
+ FREE(pitem->icon);
+ }
+ }
+ g_clock_list[0] = eina_list_free(g_clock_list[0]);
+ g_clock_list[1] = eina_list_free(g_clock_list[1]);
+ g_clock_list[2] = eina_list_free(g_clock_list[2]);
}
-static void change_datetime_format_cb(keynode_t *key, void *data)
+static int _clock_type_compare_cb(const void *d1, const void *d2)
{
- int ret = 0;
- int time_val = 0;
- ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &time_val);
- if (ret < 0)
- return;
+ i18n_uchar clock1[256] = { 0, };
+ i18n_uchar clock2[256] = { 0, };
+
+ Clock_Type_Item *r1 = (Clock_Type_Item *) d1;
+ Clock_Type_Item *r2 = (Clock_Type_Item *) d2;
+
+ i18n_ustring_copy_ua(clock1, r1->name);
+ i18n_ustring_copy_ua(clock2, r2->name);
+
+ i18n_ucollator_result_e ret;
+ i18n_ucollator_str_collator(coll, clock1, -1, clock2, -1, &ret);
+
+ switch (ret) {
+ case I18N_UCOLLATOR_EQUAL:
+ return 0;
+ case I18N_UCOLLATOR_GREATER:
+ return 1;
+ case I18N_UCOLLATOR_LESS:
+ return -1;
+ default:
+ return 0;
+ }
+}
- DBG("Setting - time_format : %d", time_val);
- ICU_set_timezone(get_timezone_str());
+static void _clock_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *layout = NULL;
+ Elm_Object_Item *nf_it = NULL;
+ appdata *ad = data;
- int is_auto_sync = 0;
- vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
+ if (ad == NULL) {
+ DBG("Setting - ad is null");
+ return;
+ }
- if (date_item) {
- elm_genlist_item_update(date_item);
- /*elm_object_item_disabled_set(date_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+ if (is_running_clock) {
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ return;
}
- if (time_item) {
- elm_genlist_item_update(time_item);
- /*elm_object_item_disabled_set(time_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+
+ layout = _clock_type_cb(data);
+ if (layout == NULL) {
+ DBG("%s", "clock cb - layout is null");
+ return;
}
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
+ back_button_cb_push(&back_key_generic_cb, data, NULL, g_clock_genlist , "g_clock_genlist");
+ evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _clear_clock_cb, ad);
+ /*elm_naviframe_item_pop_cb_set(nf_it, _clear_clock_cb, ad); */
+ elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ is_running_clock = 1;
+
+}
+
+static void _clock_gl_clock_noti_indicator_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ DBG("_clock_gl_clock_noti_indicator_cb is called!!!!!!!");
+ _show_noti_indicator_list(data);
}
-static Eina_Bool _clear_datetime_changed_cb(void *data, Elm_Object_Item *it)
+void _noti_indicator_help_popup_cb(void *data, Evas_Object *obj, void *event_info)
{
- unregister_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, change_datetime_format_cb);
- unregister_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, change_datetime_format_cb);
- unregister_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, change_datetime_format_cb);
+ appdata *ad = (appdata *) data;
+ if (ad == NULL)
+ return;
+
+ Evas_Object *popup = NULL;
+
+ popup = elm_popup_add(ad->nf);
+ elm_object_style_set(popup, "circle");
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ad->nf, popup);
+
+ ad->popup = popup;
+
+ char buf[1024];
+
+ char *font_size_frame = "<font=Tizen><style=Thin><align=center>%s</align></style></font>";
+ snprintf(buf, sizeof(buf) - 1, font_size_frame, " <br>Show a yellow indicator on the watch face when there are unread notifications.");
+
+ Evas_Object *layout;
+ layout = elm_layout_add(popup);
+ elm_layout_theme_set(layout, "layout", "popup", "content/circle/buttons1");
+ elm_object_part_text_set(layout, "elm.text.title", "Help");
+
+ char *txt = strdup(buf);
+ elm_object_text_set(layout, txt);
+ elm_object_content_set(popup, layout);
+
+ FREE(txt);
+
+ evas_object_show(popup);
+ back_button_cb_push(&back_key_popup_cb, data, NULL, g_noti_indicator_genlist, "g_noti_indicator_genlist");
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _hw_back_key_cb, NULL);
- return EINA_TRUE;
}
-void _show_date_and_time_list(void *data)
+static void _clock_gl_clock_noti_indicator_check_cb(void *data, Evas_Object *obj, void *event_info)
{
+ int value = 0;
+ Elm_Object_Item *it = (Elm_Object_Item *)event_info;
appdata *ad = data;
+
if (ad == NULL) {
- DBG("%s", "_create_dt_list - appdata is null");
+ DBG("%s", "_touch_sound_cb - appdata or check is null");
return;
}
- Evas_Object *genlist = NULL;
- Evas_Object *layout = NULL;
- Elm_Object_Item *nf_it = NULL;
- struct _dt_menu_item *menu_its = NULL;
- int idx = 0;
- int auto_sync = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR, &value);
+ value = value ? 0 : 1;
+ vconf_set_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR, value);
- ICU_set_timezone(get_timezone_str());
- vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &auto_sync);
+ if (g_noti_check != NULL)
+ elm_check_state_set(g_noti_check, (value) ? EINA_TRUE : EINA_FALSE);
- Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "2text.1icon.1";
- itc->func.text_get = _gl_date_and_time_title_get;
- itc->func.content_get = _gl_dt_auto_sync_check_get;
- itc->func.del = _dt_gl_del;
+ elm_genlist_item_selected_set(it, EINA_FALSE);
- layout = elm_layout_add(ad->nf);
+}
+
+static void _clock_gl_clock_noti_indicator_help_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ DBG("_clock_gl_clock_noti_indicator_help_cb is called!!!!!!!");
+ _noti_indicator_help_popup_cb(data, obj, event_info);
+}
+
+static void _clock_noti_indicator_check_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *check = obj;
+ int nofi_indicator = 0;
+ nofi_indicator = !elm_check_state_get(check);
+ vconf_set_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR, nofi_indicator);
+ ERR("Setting VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR : %d", nofi_indicator);
+}
+
+static Evas_Object *_gl_clock_noti_indicator_check_get(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *check = NULL;
+ Item_Data *id = (Item_Data *)data;
+
+
+ if (!strcmp(part, "elm.icon") && id->index == 0) {
+ int noti_indicator = 0;
+ check = elm_check_add(obj);
+
+ vconf_get_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR , ¬i_indicator);
+ elm_object_style_set(check, "on&off");
+ ERR("notification_indicator : %d", noti_indicator);
+
+ elm_check_state_set(check, (noti_indicator) ? EINA_TRUE : EINA_FALSE);
+ evas_object_event_callback_add(check, EVAS_CALLBACK_MOUSE_UP, _clock_noti_indicator_check_cb, (void *)check);
+ evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_propagate_events_set(check, EINA_FALSE);
+
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, check);
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
+ elm_atspi_accessible_relationship_append(check, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
+ g_noti_check = check;
+
+ }
+
+ return check;
+}
+
+
+static char *_gl_noti_title_get(void *data, Evas_Object *obj, const char *part)
+{
+ char buf[1024] = {0,};
+ Clock_Item_Data *id = data;
+ int index = id->index;
+
+ if (!strcmp(part, "elm.text")) {
+ snprintf(buf, sizeof(buf) - 1, "%s", _(noti_menu_its[index].name));
+ }
+ return strdup(buf);
+}
+
+static void _noti_indicator_gl_del(void *data, Evas_Object *obj)
+{
+ Item_Data *id = data;
+ FREE(id);
+
+ Elm_Object_Item *first = elm_genlist_first_item_get(g_noti_indicator_genlist);
+ elm_object_item_signal_emit(first, "elm,action,title,slide,start", "elm");
+}
+
+static void gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Elm_Object_Item *first = elm_genlist_first_item_get(g_noti_indicator_genlist);
+ if (first == item)
+ elm_object_item_signal_emit(first, "elm,action,title,slide,start", "elm");
+
+}
+
+static void _show_noti_indicator_list(void *data)
+{
+ appdata *ad = data;
+ if (ad == NULL) {
+ DBG("%s", "_show_font_list - appdata is null");
+ return;
+ }
+
+ Evas_Object *genlist = NULL;
+ Elm_Object_Item *nf_it = NULL;
+ int idx;
+
+ temp_ad = ad;
+ Elm_Genlist_Item_Class *itc[2];
+ itc[0] = elm_genlist_item_class_new();
+ itc[0]->item_style = "1text.1icon.1";
+ itc[0]->func.text_get = _gl_noti_title_get;
+ itc[0]->func.content_get = _gl_clock_noti_indicator_check_get;
+ itc[0]->func.del = _noti_indicator_gl_del;
+
+ itc[1] = elm_genlist_item_class_new();
+ itc[1]->item_style = "1text";
+ itc[1]->func.text_get = _gl_noti_title_get;
+ itc[1]->func.del = _noti_indicator_gl_del;
+
+
+ Evas_Object *layout = elm_layout_add(ad->nf);
elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_genlist_block_count_set(genlist, 14);
elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
connect_to_wheel_with_genlist(genlist, ad);
- menu_its = dt_menu_its;
- for (idx = 0; idx < CLOCK_DATE_AND_TIME_COUNT; idx++) {
- DT_Item_Data *id = calloc(sizeof(DT_Item_Data), 1);
+ evas_object_smart_callback_add(genlist, "realized", gl_realized_cb, NULL);
+
+ Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
+ title_item->func.text_get = _gl_menu_title_text_get;
+ title_item->item_style = "title";
+ title_item->func.del = NULL;
+
+ elm_genlist_item_append(genlist, title_item, (void *)CLOCK_TITLE_NOTIFICATION_INDICATOR, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ elm_genlist_item_class_free(title_item);
+
+ for (idx = 0; idx < 2; idx++) {
+ Item_Data *id = calloc(sizeof(Item_Data), 1);
if (id) {
id->index = idx;
- id->item = elm_genlist_item_append(
- genlist, /* genlist object */
- itc, /* item class */
- id, /* data */
- NULL,
- ELM_GENLIST_ITEM_NONE,
- menu_its[idx].func, /* call back */
- ad);
+ id->item = elm_genlist_item_append(genlist, itc[idx], id, NULL,
+ ELM_GENLIST_ITEM_NONE, noti_menu_its[idx].func, ad);
- switch (idx) {
- case 0:
- auto_sync_item = id->item;
- break;
- case 1:
- date_item = id->item;
- break;
- case 2:
- time_item = id->item;
- break;
- }
}
}
- elm_genlist_item_class_free(itc);
-
- g_date_time_genlist = genlist;
elm_object_part_content_set(layout, "elm.genlist", genlist);
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
- elm_naviframe_item_pop_cb_set(nf_it, _clear_datetime_changed_cb, ad);
+ elm_genlist_item_class_free(itc[0]);
+ elm_genlist_item_class_free(itc[1]);
+
+ Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
+ padding->item_style = "padding";
+ padding->func.del = _noti_indicator_gl_del;
+ g_noti_indicator_genlist = genlist;
+ Elm_Object_Item *padding_item;
+ padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+ elm_genlist_item_class_free(padding);
+
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
+ back_button_cb_push(&back_key_generic_cb, data, NULL, g_clock_genlist, "g_clock_genlist");
elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+ elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
- /* time format changing cb */
- register_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, change_datetime_format_cb, NULL);
- register_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, change_datetime_format_cb, NULL);
- register_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, change_datetime_format_cb, NULL);
}
-static void _set_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+#ifdef FEATURE_SETTING_EMUL
+static void _clock_gl_watch_always_on_cb(void *data, Evas_Object *obj, void *event_info)
{
- if (!data || !obj) return;
-
- appdata *ad = data;
- struct tm currtime;
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ DBG("_display_gl_watch_always_on_cb is called!!!!!!!");
+}
+#endif
- elm_datetime_value_get(ad->datetime, &currtime);
- currtime.tm_isdst = -1;
- currtime.tm_sec = 0;
+static Evas_Object *_gl_clock_watch_always_check_get(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *check = NULL;
- time_t t = mktime(&currtime);
+ Clock_Item_Data *id = data;
+ int index = id->index;
- int ret = alarmmgr_set_systime(t);
- DBG("ret = %d", ret);
+ if (!strcmp(part, "elm.icon")) {
+ check = elm_check_add(obj);
- elm_naviframe_item_pop(ad->nf);
+ int timeout = -1;
+ vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &timeout);
+ if (timeout)
+ vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_BACKUP_FOR_WATCH_ALWAYS_ON, timeout);
- /* automatic freed!! */
- Toast_Data *toast = _create_toast(ad, _("IDS_ST_TPOP_CHANGING_TIME_AND_DATE_SETTINGS_MAY_AFFECT_SOME_FUNCTIONS"));
- if (toast) {
- _show_toast(ad, toast);
- }
+ elm_check_state_set(check, (timeout == 0) ? EINA_TRUE : EINA_FALSE);
- if (g_date_time_genlist) {
- elm_genlist_realized_items_update(g_date_time_genlist);
- }
-}
+ elm_object_style_set(check, "on&off");
+ /* evas_object_smart_callback_add(check, "changed", _clock_watch_always_check_cb, (void *)check); */
+ evas_object_event_callback_add(check, EVAS_CALLBACK_MOUSE_DOWN, _clock_watch_always_check_cb, (void *)check);
+ evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_propagate_events_set(check, EINA_TRUE);
-static void _cancle_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- appdata *ad = data;
+ id->check = check;
- if (!ad)
- return;
+ index++;
- elm_naviframe_item_pop(ad->nf);
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, check);
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
+ elm_atspi_accessible_relationship_append(check, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
- if (ad->dt_genlist_item_of_time != NULL) {
- elm_genlist_item_update(ad->dt_genlist_item_of_time);
}
- if (ad->dt_genlist_item_of_date != NULL) {
- elm_genlist_item_update(ad->dt_genlist_item_of_date);
- }
+ return check;
}
-static void _datetime_auto_sync_cb(void *data, Evas_Object *obj, void *event_info)
+static void _set_watch_always_on_cancel_cb(void *data, Evas_Object *obj, void *event_info)
{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ int val = 0;
+ appdata *ad = temp_ad;
+ Evas_Object *check = (Evas_Object *)data;
- int is_auto_sync = 0;
+ vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, val);
- vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
+ elm_check_state_set(check, EINA_FALSE);
+
+ if (ad && ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ back_button_cb_pop();
- is_auto_sync = !is_auto_sync;
+}
- vconf_set_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, is_auto_sync);
+static void _set_watch_always_on_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ int val = 1;
+ appdata *ad = temp_ad;
+ Evas_Object *check = (Evas_Object *)data;
- DBG("Setting - Auto sync : %s", is_auto_sync ? "TRUE" : "FALSE");
+ vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, val);
+ elm_check_state_set(check, EINA_TRUE);
- if (auto_sync_check) {
- elm_check_state_set(auto_sync_check, (is_auto_sync) ? EINA_TRUE : EINA_FALSE);
+ if (ad && ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
}
+ back_button_cb_pop();
- if (date_item) {
- elm_genlist_item_update(date_item);
- /*elm_object_item_disabled_set(date_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
- }
- if (time_item) {
- elm_genlist_item_update(time_item);
- /*elm_object_item_disabled_set(time_item, (is_auto_sync) ? EINA_TRUE : EINA_FALSE ); */
+}
+
+void back_key_watch_always_popup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ appdata *ad = (appdata *)temp_ad;
+ if (ad && ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
}
+ back_button_cb_pop();
}
-static void _datetime_date_cb(void *data, Evas_Object *obj, void *event_info)
+static void _clock_watch_always_check_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ appdata *ad = temp_ad;
+ Evas_Object *check = (Evas_Object *)data;
+ int ambient_mode = 0;
- int is_auto_sync = 0;
- vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
- if (is_auto_sync) {
+ if (ad == NULL) {
+ DBG("%s", "_clock_watch_always_check_cb - appdata or check is null");
return;
}
- Evas_Object *scroller;
- Evas_Object *layout, *btn;
- Evas_Object *datetime;
- Elm_Object_Item *it;
- char *dt_fmt;
- appdata *ad = (appdata *)data;
+ DBG("_clock_watch_always_check_cb is called!!!!!!!");
- if (!ad || !obj)
- return;
+ vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &ambient_mode);
+ DBG("ambient_mode:%d ", ambient_mode);
- ad->dt_genlist_item_of_date = (Elm_Object_Item *)event_info;
+ if (!ambient_mode) {
- scroller = _create_scroller(ad->nf);
- evas_object_data_set(scroller, "appdata", ad);
+ Evas_Object *popup = NULL;
+ Evas_Object *btn1 = NULL;
+ Evas_Object *btn2 = NULL;
+ Evas_Object *icon;
- layout = elm_layout_add(scroller);
- elm_layout_file_set(layout, EDJE_PATH, "setting-test/datetime");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ popup = elm_popup_add(ad->nf);
+ elm_object_style_set(popup, "circle");
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ad->nf, popup);
- datetime = elm_datetime_add(layout);
- elm_object_style_set(datetime, "datepicker_layout");
- elm_object_part_content_set(layout, "content", datetime);
+ ad->popup = popup;
- ad->datetime = datetime;
+ char buf[1024];
-#ifndef DESKTOP
- dt_fmt = _date_format_get();
- elm_datetime_format_set(datetime, dt_fmt);
- FREE(dt_fmt);
- register_vconf_changing(VCONFKEY_SETAPPL_DATE_FORMAT_INT, _vconf_date_format_changed_cb, datetime);
- register_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_date_format_changed_cb, datetime);
-#endif
+ char *font_size_frame = "<text_class=tizen><align=center>%s</align></text_class>";
+ snprintf(buf, sizeof(buf) - 1, font_size_frame, _("WDS_CLOCK_TPOP_ENABLING_WATCH_ALWAYS_ON_WILL_SIGNIFICANTLY_INCREASE_BATTERY_CONSUMPTION"));
- btn = elm_button_add(layout);
- elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
- evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(layout, "btn1", btn);
- evas_object_smart_callback_add(btn, "clicked", _cancle_clicked_cb, ad);
+ Evas_Object *layout;
+ layout = elm_layout_add(popup);
+ elm_layout_theme_set(layout, "layout", "popup", "content/circle/buttons2");
- btn = elm_button_add(layout);
- elm_object_text_set(btn, _("IDS_COM_SK_SET_ABB"));
- evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(layout, "btn2", btn);
- evas_object_smart_callback_add(btn, "clicked", _set_clicked_cb, ad);
+ char *txt = strdup(buf);
+ elm_object_text_set(layout, txt);
+ elm_object_content_set(popup, layout);
- elm_object_content_set(scroller, layout);
+ FREE(txt);
- it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, scroller, NULL);
- elm_naviframe_item_pop_cb_set(it, _clear_date_changed_cb, ad);
- elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
-}
+ btn1 = elm_button_add(popup);
+ elm_object_style_set(btn1, "popup/circle/left");
+ evas_object_size_hint_weight_set(btn1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(popup, "button1", btn1);
+ evas_object_smart_callback_add(btn1, "clicked", _set_watch_always_on_cancel_cb, check);
-static void _datetime_time_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ icon = elm_image_add(btn1);
+ elm_image_file_set(icon, IMG_DIR"tw_ic_popup_btn_delete.png", NULL);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(btn1, "elm.swallow.content", icon);
+ evas_object_show(icon);
- int is_auto_sync = 0;
- vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &is_auto_sync);
- if (is_auto_sync) {
- return;
+ btn2 = elm_button_add(popup);
+ elm_object_style_set(btn2, "popup/circle/right");
+ evas_object_size_hint_weight_set(btn2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(popup, "button2", btn2);
+ evas_object_smart_callback_add(btn2, "clicked", _set_watch_always_on_ok_clicked_cb, check);
+
+ icon = elm_image_add(btn2);
+ elm_image_file_set(icon, IMG_DIR"tw_ic_popup_btn_check.png", NULL);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(btn2, "elm.swallow.content", icon);
+ evas_object_show(icon);
+
+ evas_object_show(popup);
+ back_button_cb_push(&back_key_watch_always_popup_cb, check, NULL, g_clock_genlist, "g_clock_genlist");
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _hw_back_key_cb, NULL);
+
+ } else {
+ /* disable watch always off with out popup */
+
+ DBG("Cancel watch always on!", ambient_mode);
+ vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, !ambient_mode);
+
+ /* elm_check_state_set(check, EINA_FALSE); */
}
- Evas_Object *scroller;
- Evas_Object *layout, *btn;
- Evas_Object *datetime;
- Elm_Object_Item *it;
- char *dt_fmt;
- appdata *ad = (appdata *)data;
+}
+//
+//static char *get_timezone_str()
+//{
+// char buf[1024];
+// ssize_t len = readlink(TZ_SYS_ETC_D"/localtime", buf, sizeof(buf) - 1);
+//
+// if (len != -1) {
+// buf[len] = '\0';
+// } else {
+// /* handle error condition */
+// }
+// return strdup(buf + 20);
+//}
+
+//static i18n_uchar *uastrcpy(const char *chars)
+//{
+// int len = 0;
+// i18n_uchar *str = NULL;
+//
+// if (!chars) return NULL;
+//
+// len = strlen(chars);
+// str = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (len + 1));
+// if (!str)
+// return NULL;
+// i18n_ustring_copy_ua(str, chars);
+// return str;
+//}
+
+//static void ICU_set_timezone(const char *timezone)
+//{
+// DBG("ICU_set_timezone = %s ", timezone);
+// i18n_uchar *str = uastrcpy(timezone);
+//
+// i18n_ucalendar_set_default_timezone(str);
+// FREE(str);
+//}
+
+static char *_gl_font_title_get(void *data, Evas_Object *obj, const char *part)
+{
+ char buf[1024] = {0};
+ char *text_color = "<font color=#4DCFFFC9>%s</font>";
+ Item_Data *id = data;
+
+ if (!strcmp(part, "elm.text")) {
+ snprintf(buf, sizeof(buf) - 1, "%s", _(font_menu_its[id->index].name));
+ } else if (!strcmp(part, "elm.text.1")) {
+ if (id->index == SETTING_CLOCK_FONT_STYLE) {
+ char *font_name = NULL;
+ if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ ERR("failed to call system_setting_get_value_string with err");
+ }
- if (!ad || !obj)
- return;
+ if (font_name) {
- ad->dt_genlist_item_of_time = (Elm_Object_Item *)event_info;
+ DBG(" font_name <---------------------- (%s) ", font_name);
- scroller = _create_scroller(ad->nf);
- evas_object_data_set(scroller, "appdata", ad);
+ if (strstr(font_name, "Samsung")) {
+ snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_DEFAULT_FONT"));
+ } else {
+ if (!strcmp(font_name, "Choco cooky")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_LCKSCN_BODY_CHOCO_COOKY_M_FONT"));
+ } else if (!strcmp(font_name, "Cool jazz")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_COOL_JAZZ"));
+ } else if (!strcmp(font_name, "Rosemary")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
+ } else if (!strcmp(font_name, "Tinkerbell")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_MBODY_TINKERBELL"));
+ } else if (!strcmp(font_name, "Applemint")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_RH_BUTTON2_APPLEMINT_M_FONT"));
+ } else if (!strcmp(font_name, "Kaiti")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_KAITI_M_FONT"));
+ } else if (!strcmp(font_name, "POP")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_POP_JPN_DCM"));
+ } else if (!strcmp(font_name, "UDMincho")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UDMINCHO_JPN"));
+ } else if (!strcmp(font_name, "UDRGothic")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UDRGOTHICM_JPN"));
+ } else if (!strcmp(font_name, "TizenSans")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("TizenSans"));
+ } else if (!strcmp(font_name, "BreezeSans")) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_COM_BODY_DEFAULT"));
+ } else {
+ snprintf(buf, sizeof(buf) - 1, text_color, font_name);
+ }
+ }
+ } else {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UNKNOWN"));
+ }
+ } else if (id->index == SETTING_CLOCK_FONT_SIZE) {
+ int font_size = -1;
+ if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &font_size)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ DBG("Setting - system_settings_get_value_int() is failed.");
+ }
- layout = elm_layout_add(scroller);
- elm_layout_file_set(layout, EDJE_PATH, "setting-test/datetime");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ if (font_size < 0 || font_size > 2) {
+ snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UNKNOWN"));
+ } else {
+ snprintf(buf, sizeof(buf) - 1, text_color, _(font_size_str[font_size]));
+ }
+ }
+ }
- datetime = elm_datetime_add(layout);
- elm_object_style_set(datetime, "timepicker_layout");
- elm_object_part_content_set(layout, "content", datetime);
+ return strdup(buf);
+}
- ad->datetime = datetime;
+static char *_gl_font_style_title_get(void *data, Evas_Object *obj, const char *part)
+{
+ char buf[1024];
+ Font_Style_Item_Data *id = data;
-#ifndef DESKTOP
- dt_fmt = _time_format_get();
- elm_datetime_format_set(datetime, dt_fmt);
- DBG("datetime time format : %s", dt_fmt);
- FREE(dt_fmt);
- register_vconf_changing(VCONFKEY_REGIONFORMAT_TIME1224, _vconf_time_format_changed_cb, datetime);
- register_vconf_changing(VCONFKEY_SYSTEM_TIME_CHANGED, _vconf_time_format_changed_cb, datetime);
-#endif
+ char *pos = id->font_name;
+ char new_name[256];
+ int i = 0;
+ int count = 0;
+ while (pos && *pos != '\0') {
+ if (*pos == ' ') {
+ new_name[count] = '\\';
+ count++;
+ new_name[count] = ' ';
+ } else {
+ new_name[count] = id->font_name[i];
+ }
+
+ count++;
+ pos++;
+ i++;
+ }
+ new_name[count] = '\0';
+
+ if (!strcmp(part, "elm.text")) {
+ if (id->index == 0)
+ snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, SETTINGS_DEFAULT_FONT_NAME);
+ else
+ snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, id->font_name);
+ }
+
+ DBG("font = %s", buf);
+ return strdup(buf);
+}
+
+static Evas_Object *_gl_font_style_ridio_get(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *radio = NULL;
+ Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
+ Font_Style_Item_Data *id = data;
- btn = elm_button_add(layout);
- elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
- evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(layout, "btn1", btn);
- evas_object_smart_callback_add(btn, "clicked", _cancle_clicked_cb, ad);
+ if (!strcmp(part, "elm.icon")) {
+ radio = elm_radio_add(obj);
+ elm_radio_state_value_set(radio, id->index);
+ evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_radio_group_add(radio, radio_main);
- btn = elm_button_add(layout);
- elm_object_text_set(btn, _("IDS_COM_SK_SET_ABB"));
- evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(layout, "btn2", btn);
- evas_object_smart_callback_add(btn, "clicked", _set_clicked_cb, ad);
+ evas_object_smart_callback_add(radio, "changed", _font_style_gl_cb, (void *)id);
+ evas_object_propagate_events_set(radio, EINA_FALSE);
- elm_object_content_set(scroller, layout);
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, radio);
+ elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
+ }
- it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, scroller, NULL);
- elm_naviframe_item_pop_cb_set(it, _clear_time_changed_cb, ad);
- elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
+ return radio;
}
-static void _alert_gl_del(void *data, Evas_Object *obj)
+static void _font_style_gl_del(void *data, Evas_Object *obj)
{
- Alert_Item_Data *id = data;
- FREE(id);
+ Font_Style_Item_Data *id = data;
+ if (id) {
+ FREE(id->font_name);
+ FREE(id);
+ }
}
-char *_gl_alert_title_get(void *data, Evas_Object *obj, const char *part)
+static char *_gl_font_size_title_get(void *data, Evas_Object *obj, const char *part)
{
+ int old_font_size = -1;
+ if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ DBG("Setting - system_settings_get_value_int() is failed.");
+ }
char buf[1024] = {0,};
- Alert_Item_Data *id = data;
- int index = id->index;
-
- char *temps[] = { "IDS_ST_BODY_ON_M_STATUS", "IDS_ST_BODY_OFF_M_STATUS" };
+ Item_Data *id = data;
if (!strcmp(part, "elm.text")) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(temps[index]));
- index++;
+ if (id->index == 0) {
+ snprintf(buf, sizeof(buf) - 1, "<font_size=30>%s</font_size>", _(font_size_str[id->index]));
+ } else if (id->index == 1) {
+ snprintf(buf, sizeof(buf) - 1, "<font_size=38>%s</font_size>", _(font_size_str[id->index]));
+ } else {
+ snprintf(buf, sizeof(buf) - 1, "<font_size=46>%s</font_size>", _(font_size_str[id->index]));
+ }
}
return strdup(buf);
}
-Evas_Object *_gl_alert_ridio_get(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *_gl_font_size_ridio_get(void *data, Evas_Object *obj, const char *part)
{
Evas_Object *radio = NULL;
Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
- Alert_Item_Data *id = data;
- int index = id->index;
+ Item_Data *id = data;
+
+ int old_font_size = -1;
+ if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ DBG("Setting - system_settings_get_value_int() is failed.");
+ }
if (!strcmp(part, "elm.icon")) {
radio = elm_radio_add(obj);
evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_radio_group_add(radio, radio_main);
+ evas_object_smart_callback_add(radio, "changed", _font_size_gl_cb, (void *)(uintptr_t)id->index);
+ evas_object_propagate_events_set(radio, EINA_FALSE);
+
+ if (old_font_size == id->index) {
+ elm_radio_value_set(radio_main, old_font_size);
+ }
+
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
+ elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, radio);
+ elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
+ }
+ return radio;
+}
+
+static void _font_size_gl_del(void *data, Evas_Object *obj)
+{
+ Item_Data *id = data;
+ FREE(id);
+}
#if 0
- vconf_get_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, &is_alert_mode_type);
+static void _font_style_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ appdata *ad = data;
+ if (ad == NULL) {
+ ERR("appdata is null");
+ return;
+ }
- is_alert_mode_type = !is_alert_mode_type;
+ elm_naviframe_item_pop(ad->nf);
+ if (!ad->font_style_rdg) {
+ evas_object_del(ad->font_style_rdg);
+ ad->font_style_rdg = NULL;
+ }
- if (is_alert_mode_type == id->index) {
- elm_radio_value_set(radio_main, is_alert_mode_type);
- }
+ FREE(font_name);
+}
+
+static void _font_style_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ appdata *ad = data;
+ if (ad == NULL) {
+ ERR("appdata is null");
+ return;
+ }
+
+ elm_naviframe_item_pop(ad->nf);
+
+ if (!ad->font_style_rdg) {
+ evas_object_del(ad->font_style_rdg);
+ ad->font_style_rdg = NULL;
+ }
+
+ if (font_timer) {
+ ecore_timer_del(font_timer);
+ font_timer = NULL;
+ }
+ font_timer = ecore_timer_add(0.3, (Ecore_Task_Cb) _update_font_style, NULL);
+}
#endif
- index++;
+
+static void _font_style_gl_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+ Font_Style_Item_Data *id = (Font_Style_Item_Data *)data;
+
+ /*elm_radio_value_set(temp_ad->font_style_rdg, id->index); */
+
+
+ if (id->font_name) {
+ FREE(font_name);
+ font_name = strdup(id->font_name);
}
- return radio;
+
+ /*elm_genlist_realized_items_update(g_font_style_genlist); */
+
+ if (font_style_item) {
+ elm_genlist_item_update(font_style_item);
+ }
+
+ if (!temp_ad->font_style_rdg) {
+ evas_object_del(temp_ad->font_style_rdg);
+ temp_ad->font_style_rdg = NULL;
+ }
+
+ if (font_name) {
+ system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, font_name);
+ FREE(font_name);
+ } else {
+ ERR("font_name is null");
+ }
+
+ g_font_style_genlist = NULL;
+ back_key_generic_cb(temp_ad, obj, event_info);
}
-static void _hourly_gl_cb(void *data, Evas_Object *obj, void *event_info)
+static void _font_size_gl_cb(void *data, Evas_Object *obj, void *event_info)
{
+ int old_font_size = 0;
+
elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- is_alert_mode_type = (uintptr_t)data;
+ if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ DBG("Setting - system_settings_get_value_int() is failed.");
+ return;
+ }
+ DBG("Setting - old font size is %d.", old_font_size);
+
+ font_size_index = (uintptr_t)data;
+
+ DBG("Setting - Curr font size is %d.", font_size_index);
+
+ /*elm_genlist_realized_items_update(g_font_size_genlist); */
- elm_naviframe_item_pop(temp_ad->nf);
- if (!temp_ad->alert_rdg) {
- evas_object_del(temp_ad->alert_rdg);
- temp_ad->alert_rdg = NULL;
+
+ if (!temp_ad->font_size_rdg) {
+ evas_object_del(temp_ad->font_size_rdg);
+ temp_ad->font_size_rdg = NULL;
}
-#if 0
- clock_menu_its[2].type_num = is_alert_mode_type;
- vconf_set_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, !is_alert_mode_type);
-#endif
- if (g_clock_genlist) {
- elm_genlist_realized_items_update(g_clock_genlist);
+ if (old_font_size != font_size_index) {
+ DBG("Setting - font size is same with old.");
+ system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, font_size_index);
+
+ if (font_size_item) {
+ elm_genlist_item_update(font_size_item);
+ }
}
- temp_ad = NULL;
+ back_key_generic_cb(temp_ad, obj, event_info);
}
-void _show_hourly_alert_list(void *data)
+void _show_font_list(void *data)
{
appdata *ad = data;
if (ad == NULL) {
- DBG("%s", "_create_alert_list - appdata is null");
+ DBG("%s", "_show_font_list - appdata is null");
return;
}
+
Evas_Object *genlist = NULL;
Elm_Object_Item *nf_it = NULL;
+ int idx;
temp_ad = ad;
Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "1text.1icon.1";
- itc->func.text_get = _gl_alert_title_get;
- itc->func.content_get = _gl_alert_ridio_get;
- itc->func.del = _alert_gl_del;
+ itc->item_style = "2text";
+ itc->func.text_get = _gl_font_title_get;
+ itc->func.del = _font_size_gl_del;
Evas_Object *layout = elm_layout_add(ad->nf);
elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
connect_to_wheel_with_genlist(genlist, ad);
- Alert_Item_Data *id = calloc(sizeof(Alert_Item_Data), 1);
- if (id) {
- id->index = 0;
- id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _hourly_gl_cb, (void *)0);
- }
+ Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
+ title_item->func.text_get = _gl_menu_title_text_get;
+ title_item->item_style = "title";
+ title_item->func.del = NULL;
- Alert_Item_Data *id2 = calloc(sizeof(Alert_Item_Data), 1);
- if (id2) {
- id2->index = 1;
- id2->item = elm_genlist_item_append(genlist, itc, id2, NULL, ELM_GENLIST_ITEM_NONE, _hourly_gl_cb, (void *)1);
- }
+ elm_genlist_item_append(genlist, title_item, (void *)CLOCK_TITLE_FONT, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- ad->alert_rdg = elm_radio_add(genlist);
- elm_radio_state_value_set(ad->alert_rdg, 3);
- elm_radio_value_set(ad->alert_rdg, is_alert_mode_type);
+ elm_genlist_item_class_free(title_item);
- evas_object_data_set(genlist, "radio_main", ad->alert_rdg);
+ for (idx = 0; idx < 2; idx++) {
+ Item_Data *id = calloc(sizeof(Item_Data), 1);
+ if (id) {
+ id->index = idx;
+ id->item = elm_genlist_item_append(genlist, itc, id, NULL,
+ ELM_GENLIST_ITEM_NONE, font_menu_its[idx].func, ad);
- elm_genlist_item_class_free(itc);
+ if (idx == 0) {
+ font_style_item = id->item;
+ }
+ if (idx == 1) {
+ font_size_item = id->item;
+ }
+ }
+ }
elm_object_part_content_set(layout, "elm.genlist", genlist);
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
+ Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
+ padding->item_style = "padding";
+ padding->func.del = _font_size_gl_del;
+
+ Elm_Object_Item *padding_item;
+ padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+ elm_genlist_item_class_free(padding);
+
+ elm_genlist_item_class_free(itc);
+ g_font_genlist = genlist;
+
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
+ back_button_cb_push(&back_key_generic_cb, data, NULL, g_clock_genlist, "g_clock_genlist");
+#if !defined(FEATURE_SETTING_TELEPHONY)
elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+#endif
+ elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
+ evas_object_event_callback_add(nf_it, EVAS_CALLBACK_DEL, setting_font_list_pop_cb, ad);
+
+ if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, settings_font_style_changed_cb, ad) != 0) {
+ ERR("system_settings_set_changed_cb failed!!");
+ }
}
+static char *_get_default_font_name()
+{
+ char *default_font_name = SETTINGS_FIXED_DEFAULT_FONT_NAME;
+ /* Default font means current font type !! */
+ /* That's reason why I fixed default font */
+ /* system_settings_get_value_string(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &default_font_name);*/
+ return default_font_name;
+}
-void _clocklist_load()
+static Eina_List *_get_available_font_list()
{
- if (g_clock_list[0] || g_clock_list[1] || g_clock_list[2]) {
- _clocklist_destroy();
+ FcObjectSet *os = NULL;
+ FcFontSet *fs = NULL;
+ FcPattern *pat = NULL;
+ Eina_List *list = NULL;
+ FcConfig *font_config = NULL;
+
+ font_config = FcInitLoadConfigAndFonts();
+
+ if (font_config == NULL) {
+ ERR("Failed: FcInitLoadConfigAndFonts");
+ return NULL;
}
- pkgmgrinfo_appinfo_filter_h handle = NULL;
+ char *locale = setlocale(0, NULL);
- if (pkgmgrinfo_appinfo_filter_create(&handle) != PMINFO_R_OK) {
- ERR("pkgmgrinfo_appinfo_filter_create error");
- return;
+ pat = FcPatternCreate();
+
+ os = FcObjectSetBuild(FC_FAMILY, FC_FILE, FC_FAMILYLANG, (char *) 0);
+
+ if (os) {
+ fs = FcFontList(font_config, pat, os);
+ FcObjectSetDestroy(os);
+ os = NULL;
}
- if (pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_COMPONENT, WATCH_COMPONENT_NAME)
- != PMINFO_R_OK) {
- ERR("pkgmgrinfo_appinfo_filter_add_string error");
- pkgmgrinfo_appinfo_filter_destroy(handle);
- return;
+ if (pat) {
+ FcPatternDestroy(pat);
+ pat = NULL;
}
- if (pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, _category_app_list_cb, NULL)
- != PMINFO_R_OK) {
- ERR("pkgmgrinfo_appinfo_filter_foreach_appinfo error");
- pkgmgrinfo_appinfo_filter_destroy(handle);
- return;
+ if (fs) {
+ int j;
+ DBG("fs->nfont = %d", fs->nfont);
+
+ for (j = 0; j < fs->nfont; j++) {
+ FcChar8 *family = NULL;
+ FcChar8 *file = NULL;
+ FcChar8 *lang = NULL;
+ int id = 0;
+
+ if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch) {
+ int preload_path_len = strlen(SETTING_FONT_PRELOAD_FONT_PATH);
+ int download_path_len = strlen(SETTING_FONT_DOWNLOADED_FONT_PATH);
+
+ char *family_result = NULL;
+
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILY, 0, &family) != FcResultMatch) {
+ DBG("Family name is invalid");
+ continue;
+ }
+
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
+ DBG("Family lang is invalid");
+ continue;
+ }
+
+ if (!strncmp((const char *)file, SETTING_FONT_PRELOAD_FONT_PATH, preload_path_len)) {
+ /* Find proper family name for current locale. */
+ while (locale && family && lang) {
+ /*DBG("locale: %s, family: %s, lang: %s", locale, family, lang); */
+
+ if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
+ family_result = (char *)family;
+ break;
+ }
+
+ /* I will set english as default family language. */
+ /* If there is no proper family language for current locale, */
+ /* we have to show the english family name. */
+ if (!strcmp((const char *)lang, "en")) {
+ family_result = (char *)family;
+ }
+ id++;
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
+ break;
+ }
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
+ break;
+ }
+ }
+
+ if (eina_list_data_find(list, family_result) == NULL) {
+ list = eina_list_append(list, strdup(family_result));
+ DBG("-------- ADDED FONT - family result = %s", (char *)family_result);
+ }
+ }
+
+ id = 0;
+ /* always shown for D/L */
+ if (!strncmp((const char *)file, SETTING_FONT_DOWNLOADED_FONT_PATH, download_path_len)) {
+ /* Find proper family name for current locale. */
+ while (locale && family && lang) {
+ ERR("locale: %s, family: %s, lang: %s", locale, family, lang);
+
+ if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
+ family_result = (char *)family;
+ break;
+ }
+
+ /* I will set english as default family language. */
+ /* If there is no proper family language for current locale, */
+ /* we have to show the english family name. */
+ if (!strcmp((const char *)lang, "en")) {
+ family_result = (char *)family;
+ }
+ id++;
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
+ break;
+ }
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
+ break;
+ }
+ }
+
+ if (eina_list_data_find(list, family_result) == NULL) {
+ list = eina_list_append(list, family_result);
+ DBG("-------- ADDED FONT - family result = %s", (char *)family_result);
+ }
+ }
+ }
+ }
+ FcFontSetDestroy(fs);
+ fs = NULL;
}
- pkgmgrinfo_appinfo_filter_destroy(handle);
+ FcConfigDestroy(font_config);
+ font_config = NULL;
+ return list;
+}
- Clock_Type_Item *pitem = NULL;
- Eina_List *list = NULL;
- int i;
+int _show_font_style_list(void *data)
+{
+ appdata *ad = data;
+ if (ad == NULL) {
+ DBG("%s", "_show_font_style_list - appdata is null");
+ return -1;
+ }
+ Evas_Object *genlist = NULL;
+ Elm_Object_Item *nf_it = NULL;
+ char *default_font_name = NULL;
+ char *tmp_name = NULL;
+ int idx = 0, matched_idx = 0;
+ int ret = 0;
- for (i = 0; i < 3; i++) {
- EINA_LIST_FOREACH(g_clock_list[i], list, pitem) {
- pitem->index = clock_idx++;
+ temp_ad = ad;
+
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ itc->item_style = "1text.1icon.1";
+ itc->func.text_get = _gl_font_style_title_get;
+ itc->func.content_get = _gl_font_style_ridio_get;
+ itc->func.del = _font_style_gl_del;
+
+ Evas_Object *layout = elm_layout_add(ad->nf);
+ elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ genlist = elm_genlist_add(layout);
+ elm_genlist_block_count_set(genlist, 14);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ connect_to_wheel_with_genlist(genlist, ad);
+
+ Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
+ title_item->func.text_get = _gl_menu_title_text_get;
+ title_item->item_style = "title";
+ title_item->func.del = NULL;
+
+ elm_genlist_item_append(genlist, title_item, (void *)CLOCK_TITLE_FONT_STYLE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ elm_genlist_item_class_free(title_item);
+
+ FREE(font_name);
+ ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &tmp_name);
+ if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+ ERR("failed to call system_setting_get_value_string with err %d", ret);
+ tmp_name = _get_default_font_name();
+ if (tmp_name == NULL) {
+ ERR("failed to get default font name");
+ elm_genlist_item_class_free(itc);
+ return -1;
+ } else {
+ DBG("get_default_font = %s", tmp_name);
}
+ } else {
+ DBG("SYSTEM_SETTINGS_KEY_FONT_TYPE = %s", tmp_name);
+ }
+
+ default_font_name = _get_default_font_name();
+
+ if (default_font_name) {
+ ERR("default_font_name is >>>> %s", default_font_name);
+ Font_Style_Item_Data *id_default = calloc(sizeof(Font_Style_Item_Data), 1);
+ if (default_font_name && tmp_name && !strcmp(tmp_name, default_font_name)) {
+ matched_idx = idx;
+ font_name = strdup(tmp_name);
+ }
+ if (id_default) {
+ id_default->index = idx++;
+ id_default->font_name = strdup(default_font_name);
+ id_default->item = elm_genlist_item_append(genlist, itc, id_default, NULL, ELM_GENLIST_ITEM_NONE,
+ _font_style_gl_cb, (void *)id_default);
+ }
+ } else {
+ ERR("default_font_name is NULL");
}
+ /* get font list */
+ Eina_List *l = NULL;
+ FcChar8 *font_data = NULL;
+ Eina_List *font_list = NULL;
+ font_list = _get_available_font_list();
+
+ EINA_LIST_FOREACH(font_list, l, font_data) {
+ if (!default_font_name || strcmp((const char *)default_font_name, (const char *)font_data)) {
+ Font_Style_Item_Data *id = calloc(sizeof(Font_Style_Item_Data), 1);
+ if (tmp_name && !strcmp((const char *)tmp_name, (const char *)font_data)) {
+ matched_idx = idx;
+ font_name = strdup(tmp_name);
+ }
+
+ DBG("font_data -------> %s", (const char *)font_data);
+
+ if (id) {
+ id->index = idx++;
+ id->font_name = (char *)strdup((char *)font_data);
+ id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE,
+ _font_style_gl_cb, (void *)id);
+ }
+ }
+ }
+
+ Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
+ padding->item_style = "padding";
+ padding->func.del = _font_style_gl_del;
+
+ Elm_Object_Item *padding_item;
+ padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+ elm_genlist_item_class_free(padding);
+
+ evas_font_reinit();
+ ad->font_style_rdg = elm_radio_add(genlist);
+ elm_radio_state_value_set(ad->font_style_rdg, -1);
+ elm_radio_value_set(ad->font_style_rdg, matched_idx);
+
+ evas_object_data_set(genlist, "radio_main", ad->font_style_rdg);
+
+ g_font_style_genlist = genlist;
+
+ elm_object_part_content_set(layout, "elm.genlist", genlist);
+
+ elm_genlist_item_class_free(itc);
+
+ evas_object_smart_callback_add(genlist, "language,changed", _lang_update_font_style_list, ad);
+
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
+#if !defined(FEATURE_SETTING_TELEPHONY)
+ elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+#endif
+ back_button_cb_push(&back_key_generic_cb, data, NULL, g_font_genlist, "g_font_genlist");
+ elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
+
+ return 0;
}
-void _clocklist_destroy()
+static void _lang_update_font_style_list(void *data, Evas_Object *obj, void *event_info)
{
- Clock_Type_Item *pitem = NULL;
- Eina_List *list = NULL;
- clock_idx = 0;
- int i;
+ DBG("_lang_update_font_style_list");
- for (i = 0; i < 3; i++) {
- EINA_LIST_FOREACH(g_clock_list[i], list, pitem) {
- FREE(pitem->appid);
- FREE(pitem->pkgid);
- FREE(pitem->name);
- FREE(pitem->icon);
+ appdata *ad = data;
+ if (ad == NULL) {
+ DBG("%s", "_lang_update_font_style_list - appdata is null");
+ return;
+ }
+
+ if (g_font_style_genlist) {
+ elm_genlist_clear(g_font_style_genlist);
+
+ char *default_font_name = NULL;
+ char *tmp_name = NULL;
+ int idx = 0, matched_idx = 0;
+ int ret = 0;
+
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ itc->item_style = "1text.1icon.1";
+ itc->func.text_get = _gl_font_style_title_get;
+ itc->func.content_get = _gl_font_style_ridio_get;
+ itc->func.del = _font_style_gl_del;
+
+ FREE(font_name);
+ ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &tmp_name);
+ if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+ ERR("failed to call system_setting_get_value_string with err %d", ret);
+ tmp_name = _get_default_font_name();
+ }
+
+ Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
+ title_item->func.text_get = _gl_menu_title_text_get;
+ title_item->item_style = "title";
+ title_item->func.del = NULL;
+
+ elm_genlist_item_append(g_font_style_genlist, title_item, (void *)CLOCK_TITLE_FONT_STYLE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ elm_genlist_item_class_free(title_item);
+
+ default_font_name = _get_default_font_name();
+
+ Font_Style_Item_Data *id_default = calloc(sizeof(Font_Style_Item_Data), 1);
+ if (default_font_name && tmp_name && !strcmp(tmp_name, default_font_name)) {
+ matched_idx = idx;
+ font_name = strdup(tmp_name);
}
+ if (id_default) {
+ id_default->index = idx++;
+ id_default->font_name = (default_font_name != NULL) ? strdup(default_font_name) : NULL;
+ id_default->item = elm_genlist_item_append(g_font_style_genlist, itc, id_default, NULL, ELM_GENLIST_ITEM_NONE,
+ _font_style_gl_cb, (void *)id_default);
+ }
+
+ Eina_List *font_list = NULL;
+ Eina_List *l = NULL;
+ FcChar8 *font_data = NULL;
+ font_list = _get_available_font_list();
+ EINA_LIST_FOREACH(font_list, l, font_data) {
+ if (!default_font_name || strcmp((const char *)default_font_name, (const char *)font_data)) {
+ Font_Style_Item_Data *id = calloc(sizeof(Font_Style_Item_Data), 1);
+ if (tmp_name && !strcmp((const char *)tmp_name, (const char *)font_data)) {
+ matched_idx = idx;
+ font_name = strdup(tmp_name);
+ }
+ DBG("Font1: %s, Font2: %s", tmp_name, font_data);
+
+ if (id) {
+ id->index = idx++;
+ id->font_name = (char *)strdup((char *)font_data);
+ id->item = elm_genlist_item_append(g_font_style_genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE,
+ _font_style_gl_cb, (void *)id);
+ }
+ }
+ }
+
+ ad->font_style_rdg = evas_object_data_get(g_font_style_genlist, "radio_main");
+ if (ad->font_style_rdg) {
+ evas_object_del(ad->font_style_rdg);
+ ad->font_style_rdg = NULL;
+ }
+
+ Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
+ padding->item_style = "padding";
+ padding->func.del = _font_style_gl_del;
+
+ Elm_Object_Item *padding_item;
+ padding_item = elm_genlist_item_append(g_font_style_genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+ elm_genlist_item_class_free(padding);
+
+ evas_font_reinit();
+ ad->font_style_rdg = elm_radio_add(g_font_style_genlist);
+ elm_radio_state_value_set(ad->font_style_rdg, -1);
+
+ evas_object_data_set(g_font_style_genlist, "radio_main", ad->font_style_rdg);
+
+ elm_genlist_realized_items_update(g_font_style_genlist);
+
+ DBG("Matched index: %d", matched_idx);
+
+ elm_radio_value_set(ad->font_style_rdg, matched_idx);
+
+ elm_genlist_item_class_free(itc);
}
- g_clock_list[0] = eina_list_free(g_clock_list[0]);
- g_clock_list[1] = eina_list_free(g_clock_list[1]);
- g_clock_list[2] = eina_list_free(g_clock_list[2]);
}
-static int _clock_type_compare_cb(const void *d1, const void *d2)
+void _show_font_size_list(void *data)
{
- i18n_uchar clock1[256] = { 0, };
- i18n_uchar clock2[256] = { 0, };
+ appdata *ad = data;
+ if (ad == NULL) {
+ DBG("%s", "_show_screen_timeout_list - appdata is null");
+ return;
+ }
+ Evas_Object *genlist = NULL;
+ Elm_Object_Item *nf_it = NULL;
+ int idx;
- Clock_Type_Item *r1 = (Clock_Type_Item *) d1;
- Clock_Type_Item *r2 = (Clock_Type_Item *) d2;
+ temp_ad = ad;
- i18n_ustring_copy_ua(clock1, r1->name);
- i18n_ustring_copy_ua(clock2, r2->name);
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ itc->item_style = "1text.1icon.1";
+ itc->func.text_get = _gl_font_size_title_get;
+ itc->func.content_get = _gl_font_size_ridio_get;
+ itc->func.del = _font_size_gl_del;
- i18n_ucollator_result_e ret;
- i18n_ucollator_str_collator(coll, clock1, -1, clock2, -1, &ret);
+ Evas_Object *layout = elm_layout_add(ad->nf);
+ elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- switch (ret) {
- case I18N_UCOLLATOR_EQUAL:
- return 0;
- case I18N_UCOLLATOR_GREATER:
- return 1;
- case I18N_UCOLLATOR_LESS:
- return -1;
- default:
- return 0;
+ genlist = elm_genlist_add(layout);
+ elm_genlist_block_count_set(genlist, 14);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ connect_to_wheel_with_genlist(genlist, ad);
+
+ Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
+ title_item->func.text_get = _gl_menu_title_text_get;
+ title_item->item_style = "title";
+ title_item->func.del = NULL;
+
+ elm_genlist_item_append(genlist, title_item, (void *)CLOCK_TITLE_FONT_SIZE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ elm_genlist_item_class_free(title_item);
+
+ for (idx = 0; idx < FONT_SIZE_COUNT; idx++) {
+ Item_Data *id = calloc(sizeof(Item_Data), 1);
+ if (id) {
+ id->index = idx;
+ id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _font_size_gl_cb, (void *)(uintptr_t)idx);
+ }
}
+
+ ad->font_size_rdg = elm_radio_add(genlist);
+ elm_radio_state_value_set(ad->font_size_rdg, 3);
+ elm_radio_value_set(ad->font_size_rdg, font_size_index);
+
+ evas_object_data_set(genlist, "radio_main", ad->font_size_rdg);
+
+ Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
+ padding->item_style = "padding";
+ padding->func.del = _font_size_gl_del;
+
+ Elm_Object_Item *padding_item;
+ padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+ elm_genlist_item_class_free(padding);
+
+ g_font_size_genlist = genlist;
+
+ elm_object_part_content_set(layout, "elm.genlist", genlist);
+
+ elm_genlist_item_class_free(itc);
+
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
+ back_button_cb_push(&back_key_generic_cb, data, NULL, g_font_genlist, "g_font_genlist");
+#if !defined(FEATURE_SETTING_TELEPHONY)
+ elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+#endif
+ elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
}
-static char *get_timezone_str()
+void _clock_gl_font_cb(void *data, Evas_Object *obj, void *event_info)
{
- char buf[1024];
- ssize_t len = readlink(TZ_SYS_ETC_D"/localtime", buf, sizeof(buf) - 1);
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- if (len != -1) {
- buf[len] = '\0';
+ if (data != NULL) {
+ _show_font_list(data);
} else {
- /* handle error condition */
+ DBG("ad->font_name is NULL !!!!!!");
}
- return strdup(buf + 20);
}
-static i18n_uchar *uastrcpy(const char *chars)
+static void settings_font_style_changed_cb(system_settings_key_e key, void *user_data)
{
- int len = 0;
- i18n_uchar *str = NULL;
+ DBG("settings_font_style_changed_cb");
+
+ appdata *ad = user_data;
+ if (ad == NULL)
+ return;
+
+ char *font_name = NULL;
+ Evas_Object *font_style_radio = NULL;
+ if (g_font_style_genlist) {
+ font_style_radio = evas_object_data_get(g_font_style_genlist, "radio_main");
+ if (font_style_radio) {
+ if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
+ != SYSTEM_SETTINGS_ERROR_NONE) {
+ ERR("failed to call system_setting_get_value_string with err");
+ return;
+ }
+
+ DBG("Update a font style list");
+
+ DBG("System font: %s", font_name);
+
+ int index = 0;
+ Eina_List *font_list = NULL;
+ Eina_List *l = NULL;
+ Elm_Object_Item *font_item = NULL;
+ Font_Style_Item_Data *font_data = NULL;
+
+ font_list = elm_genlist_realized_items_get(g_font_style_genlist);
+ EINA_LIST_FOREACH(font_list, l, font_item) {
+ font_data = (Font_Style_Item_Data *) elm_object_item_data_get(font_item);
+ if (font_name && !strcmp((const char *)font_name, (const char *)font_data->font_name)) {
+ DBG("1: %s, 2: %s", font_name, font_data->font_name);
+ DBG("Font style matched index : %d", index);
+ elm_radio_value_set(font_style_radio, index);
+ return;
+ }
+ index++;
+ }
+ }
+ }
+
+ if (font_style_item) {
+ elm_genlist_item_update(font_style_item);
+ }
+}
+
+static void setting_font_list_pop_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ ERR("setting_font_list_pop_cb");
- if (!chars) return NULL;
+ font_size_item = NULL;
+ font_style_item = NULL;
- len = strlen(chars);
- str = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (len + 1));
- if (!str)
- return NULL;
- i18n_ustring_copy_ua(str, chars);
- return str;
+ if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE) != 0) {
+ ERR("system_settings_unset_changed_cb failed!!");
+ }
+
+ return;
}
-static void ICU_set_timezone(const char *timezone)
+
+void _clock_gl_font_style_cb(void *data, Evas_Object *obj, void *event_info)
{
- DBG("ICU_set_timezone = %s ", timezone);
- i18n_uchar *str = uastrcpy(timezone);
+ DBG("_display_gl_font_style_cb");
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- i18n_ucalendar_set_default_timezone(str);
- FREE(str);
+ if (data != NULL) {
+ _show_font_style_list(data);
+ }
+}
+
+void _clock_gl_font_size_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ if (data != NULL) {
+ _show_font_size_list(data);
+ }
}
#include <vconf-keys.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
-#include <fontconfig/fontconfig.h>
#include <glib.h>
#include <stdint.h>
/* temporary source code */
-/*#ifndef VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR */
-/*#define VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR "db/setting/notification_indicator" */
-/*#endif */
#define VCONFKEY_SETAPPL_LCD_TIMEOUT_BACKUP_FOR_WATCH_ALWAYS_ON "db/setting/lcd_backlight_timeout_backup"
-#define SETTINGS_FIXED_DEFAULT_FONT_NAME "BreezeSans"
-#define SETTINGS_DEFAULT_FONT_NAME "Default"
static Evas_Object *g_center_img = NULL;
static Evas_Object *g_btn_minus = NULL;
static Evas_Object *g_slider = NULL;
-static Evas_Object *g_noti_check = NULL;
static int is_changed = 0;
-static bool running = false;
-static Evas_Object *_gl_display_watch_always_check_get(void *data, Evas_Object *obj, const char *part);
-static void _display_watch_always_check_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _clock_cb(void *data, Evas_Object *obj, void *event_info);
-#ifdef FEATURE_SETTING_EMUL
-static void _display_gl_watch_always_on_cb(void *data, Evas_Object *obj, void *event_info);
-#endif
static void _display_brightness_cb(void *data, Evas_Object *obj, void *event_info);
-static Evas_Object *_gl_display_noti_indicator_check_get(void *data, Evas_Object *obj, const char *part);
-static void _display_gl_display_noti_indicator_cb(void *data, Evas_Object *obj, void *event_info);
-static void _display_gl_display_noti_indicator_check_cb(void *data, Evas_Object *obj, void *event_info);
-static void _display_gl_display_noti_indicator_help_cb(void *data, Evas_Object *obj, void *event_info);
-static void _show_noti_indicator_list(void *data);
static void change_screen_time_cb(keynode_t *key, void *data);
static struct _display_menu_item display_menu_its[] = {
- { "WDS_WMGR_HEADER_WATCH_FACES", SETTING_DISPLAY_WATCH_FACE, _clock_cb},
-#ifdef FEATURE_SETTING_EMUL
- { "watch always on", SETTING_DISPLAY_WATCH_ALWAYS_ON, _display_gl_watch_always_on_cb },
-#endif
- { "WDS_CLOCK_MBODY_NOTIFICATION_INDICATOR", SETTING_DISPLAY_NOTIFICATION_INDICATOR, _display_gl_display_noti_indicator_cb },
{ "IDS_ST_BUTTON_BRIGHTNESS", SETTING_DISPLAY_BRIGTHNESS, _display_brightness_cb },
{ "IDS_ST_MBODY_SCREEN_TIMEOUT_ABB", SETTING_DISPLAY_SCREEN_TIME, _display_gl_screen_timeout_cb },
- { "IDS_ST_BODY_FONT", SETTING_DISPLAY_FONT, _display_gl_font_cb },
/* { "IDS_ST_BUTTON_LANGUAGE", SETTING_DISPLAY_LANG, _display_gl_language_cb },
#if !defined(FEATURE_SETTING_SDK) && !defined(FEATURE_SETTING_EMUL)
{ "IDS_ST_MBODY_MANAGE_APPS_ABB", SETTING_DISPLAY_EDIT_APPS, _homescreen_gl_edit_apps_cb },
*/
};
-static struct _font_menu_item font_menu_its[] = {
- { "IDS_ST_BODY_FONT_STYLE", SETTING_DISPLAY_FONT_STYLE, _display_gl_font_style_cb },
- { "IDS_ST_BODY_FONT_SIZE_ABB", SETTING_DISPLAY_FONT_SIZE, _display_gl_font_size_cb },
-};
-
-static struct _display_menu_item noti_menu_its[] = {
- { "WDS_CLOCK_MBODY_NOTIFICATION_INDICATOR", SETTING_DISPLAY_NOTIFICATION_INDICATOR_SW, _display_gl_display_noti_indicator_check_cb},
- { "IDS_ST_MBODY_HELP", SETTING_DISPLAY_NOTIFICATION_INDICATOR_HELP, _display_gl_display_noti_indicator_help_cb },
-};
static int timeout_arr[] = {
0, 15, 30, 60, 300
};
-static char *font_size_str[] = {
- "IDS_EMAIL_OPT_SMALL_M_FONT_SIZE",
- "IDS_ST_OPT_MEDIUM_M_FONT_SIZE",
- "IDS_ST_BODY_LARGE_M_FONT_SIZE_ABB2"
-};
-
static char *rotate_screen_str[] = {
"IDS_COM_BODY_DEFAULT", "IDS_COM_OPT_ROTATE_CW", "IDS_COM_OPT_ROTATE_CCW", "IDS_ST_SBODY_180_DEGREE"
};
static appdata *temp_ad = NULL;
static Evas_Object *g_display_genlist = NULL;
static Evas_Object *g_screen_time_genlist = NULL;
-static Evas_Object *g_font_size_genlist = NULL;
-static Evas_Object *g_font_style_genlist = NULL;
-static Evas_Object *g_font_genlist = NULL;
static Evas_Object *g_rotate_screen_genlist = NULL;
-static Evas_Object *g_noti_indicator_genlist = NULL;
static int g_screen_time_index = 1; /* default: 10 seconds */
-static int font_size_index = 1; /* default: normal */
static int rotate_screen_rot = 0; /* default: 0(0degree), vconf enum */
static int rotate_screen_index = 0; /* default: 0, list index */
static Elm_Object_Item *edit_icon_item = NULL;
static Elm_Object_Item *g_screen_time_item = NULL;
-/* Font list item */
-static char *font_name = NULL;
-
-static Elm_Object_Item *font_style_item = NULL;
-static Elm_Object_Item *font_size_item = NULL;
-
-static void _font_size_gl_cb(void *data, Evas_Object *obj, void *event_info);
-static void _font_style_gl_cb(void *data, Evas_Object *obj, void *event_info);
-static void settings_font_style_changed_cb(system_settings_key_e key, void *user_data);
static void change_language_enabling(keynode_t *key, void *data);
static void change_screen_time_cb(keynode_t *key, void *data);
static void change_language_cb(keynode_t *key, void *data);
-static void setting_font_list_pop_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _lang_update_font_style_list(void *data, Evas_Object *obj, void *event_info);
static void _set_rotate_screen(const int rotation);
static int _get_rotate_screen();
{
temp_ad = NULL;
g_screen_time_genlist = NULL;
- g_font_size_genlist = NULL;
- g_font_style_genlist = NULL;
g_rotate_screen_genlist = NULL;
g_screen_time_item = NULL;
itc2->func.text_get = _gl_display_title_get;
itc2->func.del = _display_gl_del;
- Elm_Genlist_Item_Class *itc3 = elm_genlist_item_class_new();
- itc3->item_style = "1text.1icon.1";
- itc3->func.text_get = _gl_display_title_get;
- itc3->func.content_get = _gl_display_watch_always_check_get;
- itc3->func.del = _display_gl_del;
-
genlist = elm_genlist_add(ad->nf);
elm_genlist_block_count_set(genlist, 14);
elm_genlist_homogeneous_set(genlist, EINA_TRUE);
} else {
itc_tmp = itc;
}
-#ifdef FEATURE_SETTING_EMUL
- if (menu_its[idx].type == SETTING_DISPLAY_WATCH_ALWAYS_ON) {
- itc_tmp = itc3;
- }
-#endif
Display_Item_Data *id = calloc(sizeof(Display_Item_Data), 1);
if (id) {
}
elm_genlist_item_class_free(itc);
elm_genlist_item_class_free(itc2);
- elm_genlist_item_class_free(itc3);
Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
padding->item_style = "padding";
elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
}
-static char *_gl_font_title_get(void *data, Evas_Object *obj, const char *part)
+static char *_gl_roatate_screen_title_get(void *data, Evas_Object *obj, const char *part)
{
- char buf[1024] = {0};
- char *text_color = "<font color=#4DCFFFC9>%s</font>";
+ char buf[1024] = {0,};
Item_Data *id = data;
if (!strcmp(part, "elm.text")) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(font_menu_its[id->index].name));
- } else if (!strcmp(part, "elm.text.1")) {
- if (id->index == SETTING_DISPLAY_FONT_STYLE) {
- char *font_name = NULL;
- if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
- != SYSTEM_SETTINGS_ERROR_NONE) {
- ERR("failed to call system_setting_get_value_string with err");
- }
-
- if (font_name) {
-
- DBG(" font_name <---------------------- (%s) ", font_name);
-
- if (strstr(font_name, "Samsung")) {
- snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_DEFAULT_FONT"));
- } else {
- if (!strcmp(font_name, "Choco cooky")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_LCKSCN_BODY_CHOCO_COOKY_M_FONT"));
- } else if (!strcmp(font_name, "Cool jazz")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_COOL_JAZZ"));
- } else if (!strcmp(font_name, "Rosemary")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
- } else if (!strcmp(font_name, "Tinkerbell")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_MBODY_TINKERBELL"));
- } else if (!strcmp(font_name, "Applemint")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_RH_BUTTON2_APPLEMINT_M_FONT"));
- } else if (!strcmp(font_name, "Kaiti")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_KAITI_M_FONT"));
- } else if (!strcmp(font_name, "POP")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_POP_JPN_DCM"));
- } else if (!strcmp(font_name, "UDMincho")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UDMINCHO_JPN"));
- } else if (!strcmp(font_name, "UDRGothic")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UDRGOTHICM_JPN"));
- } else if (!strcmp(font_name, "TizenSans")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("TizenSans"));
- } else if (!strcmp(font_name, "BreezeSans")) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_COM_BODY_DEFAULT"));
- } else {
- snprintf(buf, sizeof(buf) - 1, text_color, font_name);
- }
- }
- } else {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UNKNOWN"));
- }
- } else if (id->index == SETTING_DISPLAY_FONT_SIZE) {
- int font_size = -1;
- if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &font_size)
- != SYSTEM_SETTINGS_ERROR_NONE) {
- DBG("Setting - system_settings_get_value_int() is failed.");
- }
-
- if (font_size < 0 || font_size > 2) {
- snprintf(buf, sizeof(buf) - 1, text_color, _("IDS_ST_BODY_UNKNOWN"));
- } else {
- snprintf(buf, sizeof(buf) - 1, text_color, _(font_size_str[font_size]));
- }
- }
- }
-
- return strdup(buf);
-}
-
-static char *_gl_font_style_title_get(void *data, Evas_Object *obj, const char *part)
-{
- char buf[1024];
- Font_Style_Item_Data *id = data;
-
- char *pos = id->font_name;
- char new_name[256];
- int i = 0;
- int count = 0;
- while (pos && *pos != '\0') {
- if (*pos == ' ') {
- new_name[count] = '\\';
- count++;
- new_name[count] = ' ';
- } else {
- new_name[count] = id->font_name[i];
- }
-
- count++;
- pos++;
- i++;
- }
- new_name[count] = '\0';
+ snprintf(buf, sizeof(buf) - 1, "%s", _(rotate_screen_str[id->index]));
- if (!strcmp(part, "elm.text")) {
- if (id->index == 0)
- snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, SETTINGS_DEFAULT_FONT_NAME);
- else
- snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, id->font_name);
}
-
- DBG("font = %s", buf);
return strdup(buf);
}
-static Evas_Object *_gl_font_style_ridio_get(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *_gl_rotate_screen_radio_get(void *data, Evas_Object *obj, const char *part)
{
Evas_Object *radio = NULL;
Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
- Font_Style_Item_Data *id = data;
+ Item_Data *id = data;
+ static int rotate = -1;
if (!strcmp(part, "elm.icon")) {
radio = elm_radio_add(obj);
evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_radio_group_add(radio, radio_main);
- evas_object_smart_callback_add(radio, "changed", _font_style_gl_cb, (void *)id);
- evas_object_propagate_events_set(radio, EINA_FALSE);
-
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, radio);
- elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
- }
-
- return radio;
-}
-
-static void _font_style_gl_del(void *data, Evas_Object *obj)
-{
- Font_Style_Item_Data *id = data;
- if (id) {
- FREE(id->font_name);
- FREE(id);
- }
-}
-
-static char *_gl_font_size_title_get(void *data, Evas_Object *obj, const char *part)
-{
- int old_font_size = -1;
- if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
- != SYSTEM_SETTINGS_ERROR_NONE) {
- DBG("Setting - system_settings_get_value_int() is failed.");
- }
- char buf[1024] = {0,};
- Item_Data *id = data;
+ /*get_int rotate */
+ rotate = _get_rotate_screen();
+ rotate_screen_rot = rotate;
- if (!strcmp(part, "elm.text")) {
- if (id->index == 0) {
- snprintf(buf, sizeof(buf) - 1, "<font_size=30>%s</font_size>", _(font_size_str[id->index]));
- } else if (id->index == 1) {
- snprintf(buf, sizeof(buf) - 1, "<font_size=38>%s</font_size>", _(font_size_str[id->index]));
- } else {
- snprintf(buf, sizeof(buf) - 1, "<font_size=46>%s</font_size>", _(font_size_str[id->index]));
+ if (rotate == SETTING_SCREENROTATION_90_DEGREE) {
+ /*90R */
+ rotate_screen_index = 1;
+ } else if (rotate == SETTING_SCREENROTATION_270_DEGREE) {
+ /*90L */
+ rotate_screen_index = 2;
+ } else if (rotate == SETTING_SCREENROTATION_180_DEGREE) {
+ /*180 */
+ rotate_screen_index = 3;
}
- }
- return strdup(buf);
-}
-
-static Evas_Object *_gl_font_size_ridio_get(void *data, Evas_Object *obj, const char *part)
-{
- Evas_Object *radio = NULL;
- Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
- Item_Data *id = data;
-
- int old_font_size = -1;
- if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
- != SYSTEM_SETTINGS_ERROR_NONE) {
- DBG("Setting - system_settings_get_value_int() is failed.");
- }
-
- if (!strcmp(part, "elm.icon")) {
- radio = elm_radio_add(obj);
- elm_radio_state_value_set(radio, id->index);
- evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_radio_group_add(radio, radio_main);
- evas_object_smart_callback_add(radio, "changed", _font_size_gl_cb, (void *)(uintptr_t)id->index);
- evas_object_propagate_events_set(radio, EINA_FALSE);
- if (old_font_size == id->index) {
- elm_radio_value_set(radio_main, old_font_size);
+ if (rotate == -1) {
+ rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
}
-
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, radio);
- elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
}
return radio;
}
-static void _font_size_gl_del(void *data, Evas_Object *obj)
+static void _rotate_screen_gl_del(void *data, Evas_Object *obj)
{
Item_Data *id = data;
FREE(id);
}
-#if 0
-static void _font_style_cancel_cb(void *data, Evas_Object *obj, void *event_info)
-{
- appdata *ad = data;
- if (ad == NULL) {
- ERR("appdata is null");
- return;
- }
-
- elm_naviframe_item_pop(ad->nf);
- if (!ad->font_style_rdg) {
- evas_object_del(ad->font_style_rdg);
- ad->font_style_rdg = NULL;
- }
-
- FREE(font_name);
-}
-
-static void _font_style_ok_cb(void *data, Evas_Object *obj, void *event_info)
-{
- appdata *ad = data;
- if (ad == NULL) {
- ERR("appdata is null");
- return;
- }
-
- elm_naviframe_item_pop(ad->nf);
-
- if (!ad->font_style_rdg) {
- evas_object_del(ad->font_style_rdg);
- ad->font_style_rdg = NULL;
- }
-
- if (font_timer) {
- ecore_timer_del(font_timer);
- font_timer = NULL;
- }
- font_timer = ecore_timer_add(0.3, (Ecore_Task_Cb) _update_font_style, NULL);
-}
-#endif
-
-static void _font_style_gl_cb(void *data, Evas_Object *obj, void *event_info)
+static void _rotate_screen_gl_cb(void *data, Evas_Object *obj, void *event_info)
{
elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- Font_Style_Item_Data *id = (Font_Style_Item_Data *)data;
-
- /*elm_radio_value_set(temp_ad->font_style_rdg, id->index); */
-
-
- if (id->font_name) {
- FREE(font_name);
- font_name = strdup(id->font_name);
- }
-
- /*elm_genlist_realized_items_update(g_font_style_genlist); */
-
- if (font_style_item) {
- elm_genlist_item_update(font_style_item);
- }
- if (!temp_ad->font_style_rdg) {
- evas_object_del(temp_ad->font_style_rdg);
- temp_ad->font_style_rdg = NULL;
- }
+ rotate_screen_index = (uintptr_t)data;
- if (font_name) {
- system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, font_name);
- FREE(font_name);
+ if (rotate_screen_index == 1) {
+ /*90R */
+ rotate_screen_rot = SETTING_SCREENROTATION_90_DEGREE;
+ } else if (rotate_screen_index == 2) {
+ /*90L */
+ rotate_screen_rot = SETTING_SCREENROTATION_270_DEGREE;
+ } else if (rotate_screen_index == 3) {
+ /*180 */
+ rotate_screen_rot = SETTING_SCREENROTATION_180_DEGREE;
} else {
- ERR("font_name is null");
- }
-
- g_font_style_genlist = NULL;
- back_key_generic_cb(temp_ad, obj, event_info);
-}
-
-static void _font_size_gl_cb(void *data, Evas_Object *obj, void *event_info)
-{
- int old_font_size = 0;
-
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
-
- if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
- != SYSTEM_SETTINGS_ERROR_NONE) {
- DBG("Setting - system_settings_get_value_int() is failed.");
- return;
+ rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
}
- DBG("Setting - old font size is %d.", old_font_size);
-
- font_size_index = (uintptr_t)data;
-
- DBG("Setting - Curr font size is %d.", font_size_index);
- /*elm_genlist_realized_items_update(g_font_size_genlist); */
-
-
- if (!temp_ad->font_size_rdg) {
- evas_object_del(temp_ad->font_size_rdg);
- temp_ad->font_size_rdg = NULL;
- }
+ /*set int */
+ _set_rotate_screen(rotate_screen_rot);
- if (old_font_size != font_size_index) {
- DBG("Setting - font size is same with old.");
- system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, font_size_index);
+ elm_genlist_realized_items_update(g_rotate_screen_genlist);
- if (font_size_item) {
- elm_genlist_item_update(font_size_item);
- }
+ elm_naviframe_item_pop(temp_ad->nf);
+ if (!temp_ad->rotate_screen_rdg) {
+ evas_object_del(temp_ad->rotate_screen_rdg);
+ temp_ad->rotate_screen_rdg = NULL;
}
-
- back_key_generic_cb(temp_ad, obj, event_info);
}
-void _show_font_list(void *data)
+void _show_rotate_screen_list(void *data)
{
appdata *ad = data;
if (ad == NULL) {
- DBG("%s", "_show_font_list - appdata is null");
+ DBG("%s", "_show_screen_timeout_list - appdata is null");
return;
}
-
Evas_Object *genlist = NULL;
Elm_Object_Item *nf_it = NULL;
int idx;
temp_ad = ad;
Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "2text";
- itc->func.text_get = _gl_font_title_get;
- itc->func.del = _font_size_gl_del;
-
- Evas_Object *layout = elm_layout_add(ad->nf);
- elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ itc->item_style = "1text.1icon.1";
+ itc->func.text_get = _gl_roatate_screen_title_get;
+ itc->func.content_get = _gl_rotate_screen_radio_get;
+ itc->func.del = _rotate_screen_gl_del;
- genlist = elm_genlist_add(layout);
+ genlist = elm_genlist_add(ad->nf);
elm_genlist_block_count_set(genlist, 14);
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
connect_to_wheel_with_genlist(genlist, ad);
title_item->item_style = "title";
title_item->func.del = NULL;
- elm_genlist_item_append(genlist, title_item, (void *)DISPLAY_TITLE_FONT, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_append(genlist, title_item, (void *)DISPLAY_TITLE_ROTATE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_class_free(title_item);
- for (idx = 0; idx < 2; idx++) {
+ for (idx = 0; idx < ROTATE_SCREEN_COUNT; idx++) {
Item_Data *id = calloc(sizeof(Item_Data), 1);
if (id) {
id->index = idx;
- id->item = elm_genlist_item_append(genlist, itc, id, NULL,
- ELM_GENLIST_ITEM_NONE, font_menu_its[idx].func, ad);
-
- if (idx == 0) {
- font_style_item = id->item;
- }
- if (idx == 1) {
- font_size_item = id->item;
- }
+ id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _rotate_screen_gl_cb, (void *)(uintptr_t)idx);
}
}
- elm_object_part_content_set(layout, "elm.genlist", genlist);
+ ad->rotate_screen_rdg = elm_radio_add(genlist);
+ elm_radio_state_value_set(ad->rotate_screen_rdg, -1);
+ elm_radio_value_set(ad->rotate_screen_rdg, rotate_screen_index);
+
+ evas_object_data_set(genlist, "radio_main", ad->rotate_screen_rdg);
Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
padding->item_style = "padding";
- padding->func.del = _font_size_gl_del;
+ padding->func.del = _rotate_screen_gl_del;
Elm_Object_Item *padding_item;
padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
elm_genlist_item_class_free(padding);
+ g_screen_time_genlist = genlist;
elm_genlist_item_class_free(itc);
- g_font_genlist = genlist;
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
- back_button_cb_push(&back_key_generic_cb, data, NULL, g_display_genlist, "g_display_genlist");
-#if !defined(FEATURE_SETTING_TELEPHONY)
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, "empty");
elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
-#endif
- elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
- evas_object_event_callback_add(nf_it, EVAS_CALLBACK_DEL, setting_font_list_pop_cb, ad);
-
- if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, settings_font_style_changed_cb, ad) != 0) {
- ERR("system_settings_set_changed_cb failed!!");
- }
}
-static char *_get_default_font_name()
+static void _set_rotate_screen(const int rotation)
{
- char *default_font_name = SETTINGS_FIXED_DEFAULT_FONT_NAME;
- /* Default font means current font type !! */
- /* That's reason why I fixed default font */
- /* system_settings_get_value_string(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &default_font_name);*/
- return default_font_name;
+ vconf_set_int(VCONFKEY_SETAPPL_SCREENROTATION_DEG_INT, rotation);
}
-static Eina_List *_get_available_font_list()
+static int _get_rotate_screen()
{
- FcObjectSet *os = NULL;
- FcFontSet *fs = NULL;
- FcPattern *pat = NULL;
- Eina_List *list = NULL;
- FcConfig *font_config = NULL;
-
- font_config = FcInitLoadConfigAndFonts();
+ int rot;
+ vconf_get_int(VCONFKEY_SETAPPL_SCREENROTATION_DEG_INT, &rot);
+ return rot;
+}
- if (font_config == NULL) {
- ERR("Failed: FcInitLoadConfigAndFonts");
- return NULL;
+static void change_language_enabling(keynode_t *key, void *data)
+{
+ if (lang_item == NULL) {
+ DBG("Setting - lang_item is null!!");
+ return;
}
- char *locale = setlocale(0, NULL);
+ int enable = 0;
+ vconf_get_bool(VCONFKEY_WMS_WMANAGER_CONNECTED, &enable);
+ if (enable) {
+ DBG("Setting - Language is disabled");
+ } else {
+ DBG("Setting - Language is enabled");
+ }
- pat = FcPatternCreate();
+ if (lang_item) {
+ elm_genlist_item_update(lang_item);
+ }
+}
- os = FcObjectSetBuild(FC_FAMILY, FC_FILE, FC_FAMILYLANG, (char *) 0);
+static void change_screen_time_cb(keynode_t *key, void *data)
+{
+ DBG("Setting - change_screen_time_cb");
- if (os) {
- fs = FcFontList(font_config, pat, os);
- FcObjectSetDestroy(os);
- os = NULL;
+ if (g_screen_time_item) {
+ elm_genlist_item_update(g_screen_time_item);
}
+}
- if (pat) {
- FcPatternDestroy(pat);
- pat = NULL;
- }
+static void change_language_cb(keynode_t *key, void *data)
+{
+ DBG("Setting - change_language_cb");
- if (fs) {
- int j;
- DBG("fs->nfont = %d", fs->nfont);
+ if (lang_item) {
+ elm_genlist_item_update(lang_item);
+ }
+}
- for (j = 0; j < fs->nfont; j++) {
- FcChar8 *family = NULL;
- FcChar8 *file = NULL;
- FcChar8 *lang = NULL;
- int id = 0;
- if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch) {
- int preload_path_len = strlen(SETTING_FONT_PRELOAD_FONT_PATH);
- int download_path_len = strlen(SETTING_FONT_DOWNLOADED_FONT_PATH);
- char *family_result = NULL;
+int brightness_index = 0;
+int brightness_origin_level = 0;
+Evas_Object *brightness_layout = NULL;
- if (FcPatternGetString(fs->fonts[j], FC_FAMILY, 0, &family) != FcResultMatch) {
- DBG("Family name is invalid");
- continue;
- }
+static void _brightness_pop_cb(void *data, Evas_Object *obj, void *event_info);
+static void brightness_vconf_changed_cb(keynode_t *key, void *data);
+static void sync_brightness(int real_brightness);
+static int _change_bright_lovel_to_index(int level);
+#if 0 /*!defined(FEATURE_SETTING_EMUL) */
+static void _set_HBM_mode(int enable);
+#endif
+static int _change_bright_index_to_level(int index);
- if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
- DBG("Family lang is invalid");
- continue;
- }
-
- if (!strncmp((const char *)file, SETTING_FONT_PRELOAD_FONT_PATH, preload_path_len)) {
- /* Find proper family name for current locale. */
- while (locale && family && lang) {
- /*DBG("locale: %s, family: %s, lang: %s", locale, family, lang); */
-
- if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
- family_result = (char *)family;
- break;
- }
-
- /* I will set english as default family language. */
- /* If there is no proper family language for current locale, */
- /* we have to show the english family name. */
- if (!strcmp((const char *)lang, "en")) {
- family_result = (char *)family;
- }
- id++;
- if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
- break;
- }
- if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
- break;
- }
- }
-
- if (eina_list_data_find(list, family_result) == NULL) {
- list = eina_list_append(list, strdup(family_result));
- DBG("-------- ADDED FONT - family result = %s", (char *)family_result);
- }
- }
-
- id = 0;
- /* always shown for D/L */
- if (!strncmp((const char *)file, SETTING_FONT_DOWNLOADED_FONT_PATH, download_path_len)) {
- /* Find proper family name for current locale. */
- while (locale && family && lang) {
- ERR("locale: %s, family: %s, lang: %s", locale, family, lang);
-
- if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
- family_result = (char *)family;
- break;
- }
-
- /* I will set english as default family language. */
- /* If there is no proper family language for current locale, */
- /* we have to show the english family name. */
- if (!strcmp((const char *)lang, "en")) {
- family_result = (char *)family;
- }
- id++;
- if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
- break;
- }
- if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
- break;
- }
- }
-
- if (eina_list_data_find(list, family_result) == NULL) {
- list = eina_list_append(list, family_result);
- DBG("-------- ADDED FONT - family result = %s", (char *)family_result);
- }
- }
- }
- }
- FcFontSetDestroy(fs);
- fs = NULL;
- }
-
- FcConfigDestroy(font_config);
- font_config = NULL;
- return list;
-}
-
-int _show_font_style_list(void *data)
-{
- appdata *ad = data;
- if (ad == NULL) {
- DBG("%s", "_show_font_style_list - appdata is null");
- return -1;
- }
- Evas_Object *genlist = NULL;
- Elm_Object_Item *nf_it = NULL;
- char *default_font_name = NULL;
- char *tmp_name = NULL;
- int idx = 0, matched_idx = 0;
- int ret = 0;
-
- temp_ad = ad;
-
- Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "1text.1icon.1";
- itc->func.text_get = _gl_font_style_title_get;
- itc->func.content_get = _gl_font_style_ridio_get;
- itc->func.del = _font_style_gl_del;
-
- Evas_Object *layout = elm_layout_add(ad->nf);
- elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- genlist = elm_genlist_add(layout);
- elm_genlist_block_count_set(genlist, 14);
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- connect_to_wheel_with_genlist(genlist, ad);
-
- Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
- title_item->func.text_get = _gl_menu_title_text_get;
- title_item->item_style = "title";
- title_item->func.del = NULL;
-
- elm_genlist_item_append(genlist, title_item, (void *)DISPLAY_TITLE_FONT_STYLE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-
- elm_genlist_item_class_free(title_item);
-
- FREE(font_name);
- ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &tmp_name);
- if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
- ERR("failed to call system_setting_get_value_string with err %d", ret);
- tmp_name = _get_default_font_name();
- if (tmp_name == NULL) {
- ERR("failed to get default font name");
- elm_genlist_item_class_free(itc);
- return -1;
- } else {
- DBG("get_default_font = %s", tmp_name);
- }
- } else {
- DBG("SYSTEM_SETTINGS_KEY_FONT_TYPE = %s", tmp_name);
- }
-
- default_font_name = _get_default_font_name();
-
- if (default_font_name) {
- ERR("default_font_name is >>>> %s", default_font_name);
- Font_Style_Item_Data *id_default = calloc(sizeof(Font_Style_Item_Data), 1);
- if (default_font_name && tmp_name && !strcmp(tmp_name, default_font_name)) {
- matched_idx = idx;
- font_name = strdup(tmp_name);
- }
- if (id_default) {
- id_default->index = idx++;
- id_default->font_name = strdup(default_font_name);
- id_default->item = elm_genlist_item_append(genlist, itc, id_default, NULL, ELM_GENLIST_ITEM_NONE,
- _font_style_gl_cb, (void *)id_default);
- }
- } else {
- ERR("default_font_name is NULL");
- }
-
- /* get font list */
- Eina_List *l = NULL;
- FcChar8 *font_data = NULL;
- Eina_List *font_list = NULL;
- font_list = _get_available_font_list();
-
- EINA_LIST_FOREACH(font_list, l, font_data) {
- if (!default_font_name || strcmp((const char *)default_font_name, (const char *)font_data)) {
- Font_Style_Item_Data *id = calloc(sizeof(Font_Style_Item_Data), 1);
- if (tmp_name && !strcmp((const char *)tmp_name, (const char *)font_data)) {
- matched_idx = idx;
- font_name = strdup(tmp_name);
- }
-
- DBG("font_data -------> %s", (const char *)font_data);
-
- if (id) {
- id->index = idx++;
- id->font_name = (char *)strdup((char *)font_data);
- id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE,
- _font_style_gl_cb, (void *)id);
- }
- }
- }
-
- Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
- padding->item_style = "padding";
- padding->func.del = _font_style_gl_del;
-
- Elm_Object_Item *padding_item;
- padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
- elm_genlist_item_class_free(padding);
-
- evas_font_reinit();
- ad->font_style_rdg = elm_radio_add(genlist);
- elm_radio_state_value_set(ad->font_style_rdg, -1);
- elm_radio_value_set(ad->font_style_rdg, matched_idx);
-
- evas_object_data_set(genlist, "radio_main", ad->font_style_rdg);
-
- g_font_style_genlist = genlist;
-
- elm_object_part_content_set(layout, "elm.genlist", genlist);
-
- elm_genlist_item_class_free(itc);
-
- evas_object_smart_callback_add(genlist, "language,changed", _lang_update_font_style_list, ad);
-
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
-#if !defined(FEATURE_SETTING_TELEPHONY)
- elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
-#endif
- back_button_cb_push(&back_key_generic_cb, data, NULL, g_font_genlist, "g_font_genlist");
- elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
-
- return 0;
-}
-
-static void _lang_update_font_style_list(void *data, Evas_Object *obj, void *event_info)
-{
- DBG("_lang_update_font_style_list");
-
- appdata *ad = data;
- if (ad == NULL) {
- DBG("%s", "_lang_update_font_style_list - appdata is null");
- return;
- }
-
- if (g_font_style_genlist) {
- elm_genlist_clear(g_font_style_genlist);
-
- char *default_font_name = NULL;
- char *tmp_name = NULL;
- int idx = 0, matched_idx = 0;
- int ret = 0;
-
- Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "1text.1icon.1";
- itc->func.text_get = _gl_font_style_title_get;
- itc->func.content_get = _gl_font_style_ridio_get;
- itc->func.del = _font_style_gl_del;
-
- FREE(font_name);
- ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &tmp_name);
- if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
- ERR("failed to call system_setting_get_value_string with err %d", ret);
- tmp_name = _get_default_font_name();
- }
-
- Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
- title_item->func.text_get = _gl_menu_title_text_get;
- title_item->item_style = "title";
- title_item->func.del = NULL;
-
- elm_genlist_item_append(g_font_style_genlist, title_item, (void *)DISPLAY_TITLE_FONT_STYLE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-
- elm_genlist_item_class_free(title_item);
-
- default_font_name = _get_default_font_name();
-
- Font_Style_Item_Data *id_default = calloc(sizeof(Font_Style_Item_Data), 1);
- if (default_font_name && tmp_name && !strcmp(tmp_name, default_font_name)) {
- matched_idx = idx;
- font_name = strdup(tmp_name);
- }
- if (id_default) {
- id_default->index = idx++;
- id_default->font_name = (default_font_name != NULL) ? strdup(default_font_name) : NULL;
- id_default->item = elm_genlist_item_append(g_font_style_genlist, itc, id_default, NULL, ELM_GENLIST_ITEM_NONE,
- _font_style_gl_cb, (void *)id_default);
- }
-
- Eina_List *font_list = NULL;
- Eina_List *l = NULL;
- FcChar8 *font_data = NULL;
- font_list = _get_available_font_list();
- EINA_LIST_FOREACH(font_list, l, font_data) {
- if (!default_font_name || strcmp((const char *)default_font_name, (const char *)font_data)) {
- Font_Style_Item_Data *id = calloc(sizeof(Font_Style_Item_Data), 1);
- if (tmp_name && !strcmp((const char *)tmp_name, (const char *)font_data)) {
- matched_idx = idx;
- font_name = strdup(tmp_name);
- }
- DBG("Font1: %s, Font2: %s", tmp_name, font_data);
-
- if (id) {
- id->index = idx++;
- id->font_name = (char *)strdup((char *)font_data);
- id->item = elm_genlist_item_append(g_font_style_genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE,
- _font_style_gl_cb, (void *)id);
- }
- }
- }
-
- ad->font_style_rdg = evas_object_data_get(g_font_style_genlist, "radio_main");
- if (ad->font_style_rdg) {
- evas_object_del(ad->font_style_rdg);
- ad->font_style_rdg = NULL;
- }
-
- Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
- padding->item_style = "padding";
- padding->func.del = _font_style_gl_del;
-
- Elm_Object_Item *padding_item;
- padding_item = elm_genlist_item_append(g_font_style_genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
- elm_genlist_item_class_free(padding);
-
- evas_font_reinit();
- ad->font_style_rdg = elm_radio_add(g_font_style_genlist);
- elm_radio_state_value_set(ad->font_style_rdg, -1);
-
- evas_object_data_set(g_font_style_genlist, "radio_main", ad->font_style_rdg);
-
- elm_genlist_realized_items_update(g_font_style_genlist);
-
- DBG("Matched index: %d", matched_idx);
-
- elm_radio_value_set(ad->font_style_rdg, matched_idx);
-
- elm_genlist_item_class_free(itc);
- }
-}
-
-void _show_font_size_list(void *data)
-{
- appdata *ad = data;
- if (ad == NULL) {
- DBG("%s", "_show_screen_timeout_list - appdata is null");
- return;
- }
- Evas_Object *genlist = NULL;
- Elm_Object_Item *nf_it = NULL;
- int idx;
-
- temp_ad = ad;
-
- Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "1text.1icon.1";
- itc->func.text_get = _gl_font_size_title_get;
- itc->func.content_get = _gl_font_size_ridio_get;
- itc->func.del = _font_size_gl_del;
-
- Evas_Object *layout = elm_layout_add(ad->nf);
- elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- genlist = elm_genlist_add(layout);
- elm_genlist_block_count_set(genlist, 14);
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- connect_to_wheel_with_genlist(genlist, ad);
-
- Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
- title_item->func.text_get = _gl_menu_title_text_get;
- title_item->item_style = "title";
- title_item->func.del = NULL;
-
- elm_genlist_item_append(genlist, title_item, (void *)DISPLAY_TITLE_FONT_SIZE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-
- elm_genlist_item_class_free(title_item);
-
- for (idx = 0; idx < FONT_SIZE_COUNT; idx++) {
- Item_Data *id = calloc(sizeof(Item_Data), 1);
- if (id) {
- id->index = idx;
- id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _font_size_gl_cb, (void *)(uintptr_t)idx);
- }
- }
-
- ad->font_size_rdg = elm_radio_add(genlist);
- elm_radio_state_value_set(ad->font_size_rdg, 3);
- elm_radio_value_set(ad->font_size_rdg, font_size_index);
-
- evas_object_data_set(genlist, "radio_main", ad->font_size_rdg);
-
- Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
- padding->item_style = "padding";
- padding->func.del = _font_size_gl_del;
-
- Elm_Object_Item *padding_item;
- padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
- elm_genlist_item_class_free(padding);
-
- g_font_size_genlist = genlist;
-
- elm_object_part_content_set(layout, "elm.genlist", genlist);
-
- elm_genlist_item_class_free(itc);
-
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
- back_button_cb_push(&back_key_generic_cb, data, NULL, g_font_genlist, "g_font_genlist");
-#if !defined(FEATURE_SETTING_TELEPHONY)
- elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
-#endif
- elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
-}
-
-static char *_gl_roatate_screen_title_get(void *data, Evas_Object *obj, const char *part)
-{
- char buf[1024] = {0,};
- Item_Data *id = data;
-
- if (!strcmp(part, "elm.text")) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(rotate_screen_str[id->index]));
-
- }
- return strdup(buf);
-}
-
-static Evas_Object *_gl_rotate_screen_radio_get(void *data, Evas_Object *obj, const char *part)
-{
- Evas_Object *radio = NULL;
- Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
- Item_Data *id = data;
- static int rotate = -1;
-
- if (!strcmp(part, "elm.icon")) {
- radio = elm_radio_add(obj);
- elm_radio_state_value_set(radio, id->index);
- evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_radio_group_add(radio, radio_main);
-
- /*get_int rotate */
- rotate = _get_rotate_screen();
- rotate_screen_rot = rotate;
-
- if (rotate == SETTING_SCREENROTATION_90_DEGREE) {
- /*90R */
- rotate_screen_index = 1;
- } else if (rotate == SETTING_SCREENROTATION_270_DEGREE) {
- /*90L */
- rotate_screen_index = 2;
- } else if (rotate == SETTING_SCREENROTATION_180_DEGREE) {
- /*180 */
- rotate_screen_index = 3;
- }
-
- if (rotate == -1) {
- rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
- }
- }
- return radio;
-}
-
-static void _rotate_screen_gl_del(void *data, Evas_Object *obj)
-{
- Item_Data *id = data;
- FREE(id);
-}
-
-static void _rotate_screen_gl_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
-
- rotate_screen_index = (uintptr_t)data;
-
- if (rotate_screen_index == 1) {
- /*90R */
- rotate_screen_rot = SETTING_SCREENROTATION_90_DEGREE;
- } else if (rotate_screen_index == 2) {
- /*90L */
- rotate_screen_rot = SETTING_SCREENROTATION_270_DEGREE;
- } else if (rotate_screen_index == 3) {
- /*180 */
- rotate_screen_rot = SETTING_SCREENROTATION_180_DEGREE;
- } else {
- rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
- }
-
- /*set int */
- _set_rotate_screen(rotate_screen_rot);
-
- elm_genlist_realized_items_update(g_rotate_screen_genlist);
-
- elm_naviframe_item_pop(temp_ad->nf);
- if (!temp_ad->rotate_screen_rdg) {
- evas_object_del(temp_ad->rotate_screen_rdg);
- temp_ad->rotate_screen_rdg = NULL;
- }
-}
-
-void _show_rotate_screen_list(void *data)
-{
- appdata *ad = data;
- if (ad == NULL) {
- DBG("%s", "_show_screen_timeout_list - appdata is null");
- return;
- }
- Evas_Object *genlist = NULL;
- Elm_Object_Item *nf_it = NULL;
- int idx;
-
- temp_ad = ad;
-
- Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- itc->item_style = "1text.1icon.1";
- itc->func.text_get = _gl_roatate_screen_title_get;
- itc->func.content_get = _gl_rotate_screen_radio_get;
- itc->func.del = _rotate_screen_gl_del;
-
- genlist = elm_genlist_add(ad->nf);
- elm_genlist_block_count_set(genlist, 14);
- evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- connect_to_wheel_with_genlist(genlist, ad);
-
- Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
- title_item->func.text_get = _gl_menu_title_text_get;
- title_item->item_style = "title";
- title_item->func.del = NULL;
-
- elm_genlist_item_append(genlist, title_item, (void *)DISPLAY_TITLE_ROTATE, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-
- elm_genlist_item_class_free(title_item);
-
- for (idx = 0; idx < ROTATE_SCREEN_COUNT; idx++) {
- Item_Data *id = calloc(sizeof(Item_Data), 1);
- if (id) {
- id->index = idx;
- id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _rotate_screen_gl_cb, (void *)(uintptr_t)idx);
- }
- }
-
- ad->rotate_screen_rdg = elm_radio_add(genlist);
- elm_radio_state_value_set(ad->rotate_screen_rdg, -1);
- elm_radio_value_set(ad->rotate_screen_rdg, rotate_screen_index);
-
- evas_object_data_set(genlist, "radio_main", ad->rotate_screen_rdg);
-
- Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
- padding->item_style = "padding";
- padding->func.del = _rotate_screen_gl_del;
-
- Elm_Object_Item *padding_item;
- padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
- elm_genlist_item_class_free(padding);
- g_screen_time_genlist = genlist;
-
- elm_genlist_item_class_free(itc);
-
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, "empty");
- elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
-}
-
-static void _set_rotate_screen(const int rotation)
-{
- vconf_set_int(VCONFKEY_SETAPPL_SCREENROTATION_DEG_INT, rotation);
-}
-
-static int _get_rotate_screen()
-{
- int rot;
- vconf_get_int(VCONFKEY_SETAPPL_SCREENROTATION_DEG_INT, &rot);
- return rot;
-}
-
-static void settings_font_style_changed_cb(system_settings_key_e key, void *user_data)
-{
- DBG("settings_font_style_changed_cb");
-
- appdata *ad = user_data;
- if (ad == NULL)
- return;
-
- char *font_name = NULL;
- Evas_Object *font_style_radio = NULL;
- if (g_font_style_genlist) {
- font_style_radio = evas_object_data_get(g_font_style_genlist, "radio_main");
- if (font_style_radio) {
- if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
- != SYSTEM_SETTINGS_ERROR_NONE) {
- ERR("failed to call system_setting_get_value_string with err");
- return;
- }
-
- DBG("Update a font style list");
-
- DBG("System font: %s", font_name);
-
- int index = 0;
- Eina_List *font_list = NULL;
- Eina_List *l = NULL;
- Elm_Object_Item *font_item = NULL;
- Font_Style_Item_Data *font_data = NULL;
-
- font_list = elm_genlist_realized_items_get(g_font_style_genlist);
- EINA_LIST_FOREACH(font_list, l, font_item) {
- font_data = (Font_Style_Item_Data *) elm_object_item_data_get(font_item);
- if (font_name && !strcmp((const char *)font_name, (const char *)font_data->font_name)) {
- DBG("1: %s, 2: %s", font_name, font_data->font_name);
- DBG("Font style matched index : %d", index);
- elm_radio_value_set(font_style_radio, index);
- return;
- }
- index++;
- }
- }
- }
-
- if (font_style_item) {
- elm_genlist_item_update(font_style_item);
- }
-}
-
-static void setting_font_list_pop_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- ERR("setting_font_list_pop_cb");
-
- font_size_item = NULL;
- font_style_item = NULL;
-
- if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE) != 0) {
- ERR("system_settings_unset_changed_cb failed!!");
- }
-
- return;
-}
-
-static void change_language_enabling(keynode_t *key, void *data)
-{
- if (lang_item == NULL) {
- DBG("Setting - lang_item is null!!");
- return;
- }
-
- int enable = 0;
- vconf_get_bool(VCONFKEY_WMS_WMANAGER_CONNECTED, &enable);
- if (enable) {
- DBG("Setting - Language is disabled");
- } else {
- DBG("Setting - Language is enabled");
- }
-
- if (lang_item) {
- elm_genlist_item_update(lang_item);
- }
-}
-
-static void change_screen_time_cb(keynode_t *key, void *data)
-{
- DBG("Setting - change_screen_time_cb");
-
- if (g_screen_time_item) {
- elm_genlist_item_update(g_screen_time_item);
- }
-}
-
-static void change_language_cb(keynode_t *key, void *data)
-{
- DBG("Setting - change_language_cb");
-
- if (lang_item) {
- elm_genlist_item_update(lang_item);
- }
-}
-
-
-
-int brightness_index = 0;
-int brightness_origin_level = 0;
-Evas_Object *brightness_layout = NULL;
-
-static void _brightness_pop_cb(void *data, Evas_Object *obj, void *event_info);
-static void brightness_vconf_changed_cb(keynode_t *key, void *data);
-static void sync_brightness(int real_brightness);
-static int _change_bright_lovel_to_index(int level);
-#if 0 /*!defined(FEATURE_SETTING_EMUL) */
-static void _set_HBM_mode(int enable);
-#endif
-static int _change_bright_index_to_level(int index);
-
-int hbm_mode_on_original = 0; /* backup for cancel */
+int hbm_mode_on_original = 0; /* backup for cancel */
/*#if defined(FEATURE_SETTING_EMUL) */
int display_get_hbm()
-static void _clock_cb(void *data, Evas_Object *obj, void *event_info)
-{
- Evas_Object *layout = NULL;
- Elm_Object_Item *nf_it = NULL;
- appdata *ad = data;
-
- if (ad == NULL) {
- DBG("Setting - ad is null");
- return;
- }
-
- if (running) {
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- return;
- }
-
- if (is_running_clock) {
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- return;
- }
-
- initialize_clock(data);
-
- layout = _clock_type_cb(data);
- if (layout == NULL) {
- DBG("%s", "clock cb - layout is null");
- return;
- }
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
- back_button_cb_push(&back_key_generic_cb, data, NULL, g_display_genlist, "g_display_genlist");
- evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _clear_clock_cb, ad);
- /*elm_naviframe_item_pop_cb_set(nf_it, _clear_clock_cb, ad); */
- elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
-
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- is_running_clock = 1;
-
- ad->MENU_TYPE = SETTING_CLOCK;
-}
-
-static Evas_Object *_gl_display_watch_always_check_get(void *data, Evas_Object *obj, const char *part)
-{
- Evas_Object *check = NULL;
-
- Display_Item_Data *id = data;
- int index = id->index;
-
- if (!strcmp(part, "elm.icon")) {
- check = elm_check_add(obj);
-
- int timeout = -1;
- vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &timeout);
- if (timeout)
- vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_BACKUP_FOR_WATCH_ALWAYS_ON, timeout);
-
- elm_check_state_set(check, (timeout == 0) ? EINA_TRUE : EINA_FALSE);
-
- elm_object_style_set(check, "on&off");
- /* evas_object_smart_callback_add(check, "changed", _display_watch_always_check_cb, (void *)check); */
- evas_object_event_callback_add(check, EVAS_CALLBACK_MOUSE_DOWN, _display_watch_always_check_cb, (void *)check);
- evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_propagate_events_set(check, EINA_TRUE);
-
- id->check = check;
-
- index++;
-
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, check);
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
- elm_atspi_accessible_relationship_append(check, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
-
- }
-
- return check;
-}
-
-static void _set_watch_always_on_cancel_cb(void *data, Evas_Object *obj, void *event_info)
-{
- int val = 0;
- appdata *ad = temp_ad;
- Evas_Object *check = (Evas_Object *)data;
-
- vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, val);
-
- elm_check_state_set(check, EINA_FALSE);
-
- if (ad && ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
- back_button_cb_pop();
-
-}
-
-static void _set_watch_always_on_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- int val = 1;
- appdata *ad = temp_ad;
- Evas_Object *check = (Evas_Object *)data;
-
- vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, val);
- elm_check_state_set(check, EINA_TRUE);
-
- if (ad && ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
- back_button_cb_pop();
-
-}
-
-void back_key_watch_always_popup_cb(void *data, Evas_Object *obj, void *event_info)
-{
- appdata *ad = (appdata *)temp_ad;
- if (ad && ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
- back_button_cb_pop();
-}
-
-static void _display_watch_always_check_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- appdata *ad = temp_ad;
- Evas_Object *check = (Evas_Object *)data;
- int ambient_mode = 0;
-
- if (ad == NULL) {
- DBG("%s", "_display_watch_always_check_cb - appdata or check is null");
- return;
- }
-
- DBG("_display_watch_always_check_cb is called!!!!!!!");
-
- vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &ambient_mode);
- DBG("ambient_mode:%d ", ambient_mode);
-
- if (!ambient_mode) {
-
- Evas_Object *popup = NULL;
- Evas_Object *btn1 = NULL;
- Evas_Object *btn2 = NULL;
- Evas_Object *icon;
-
- popup = elm_popup_add(ad->nf);
- elm_object_style_set(popup, "circle");
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(ad->nf, popup);
-
- ad->popup = popup;
-
- char buf[1024];
-
- char *font_size_frame = "<text_class=tizen><align=center>%s</align></text_class>";
- snprintf(buf, sizeof(buf) - 1, font_size_frame, _("WDS_CLOCK_TPOP_ENABLING_WATCH_ALWAYS_ON_WILL_SIGNIFICANTLY_INCREASE_BATTERY_CONSUMPTION"));
-
- Evas_Object *layout;
- layout = elm_layout_add(popup);
- elm_layout_theme_set(layout, "layout", "popup", "content/circle/buttons2");
-
- char *txt = strdup(buf);
- elm_object_text_set(layout, txt);
- elm_object_content_set(popup, layout);
-
- FREE(txt);
-
- btn1 = elm_button_add(popup);
- elm_object_style_set(btn1, "popup/circle/left");
- evas_object_size_hint_weight_set(btn1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(popup, "button1", btn1);
- evas_object_smart_callback_add(btn1, "clicked", _set_watch_always_on_cancel_cb, check);
-
- icon = elm_image_add(btn1);
- elm_image_file_set(icon, IMG_DIR"tw_ic_popup_btn_delete.png", NULL);
- evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(btn1, "elm.swallow.content", icon);
- evas_object_show(icon);
-
- btn2 = elm_button_add(popup);
- elm_object_style_set(btn2, "popup/circle/right");
- evas_object_size_hint_weight_set(btn2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(popup, "button2", btn2);
- evas_object_smart_callback_add(btn2, "clicked", _set_watch_always_on_ok_clicked_cb, check);
-
- icon = elm_image_add(btn2);
- elm_image_file_set(icon, IMG_DIR"tw_ic_popup_btn_check.png", NULL);
- evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(btn2, "elm.swallow.content", icon);
- evas_object_show(icon);
-
- evas_object_show(popup);
- back_button_cb_push(&back_key_watch_always_popup_cb, check, NULL, g_display_genlist, "g_display_genlist");
- eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _hw_back_key_cb, NULL);
-
- } else {
- /* disable watch always off with out popup */
-
- DBG("Cancel watch always on!", ambient_mode);
- vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, !ambient_mode);
-
- /* elm_check_state_set(check, EINA_FALSE); */
- }
-
-}
-#ifdef FEATURE_SETTING_EMUL
-static void _display_gl_watch_always_on_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- DBG("_display_gl_watch_always_on_cb is called!!!!!!!");
-}
-#endif
-
-static void _display_gl_display_noti_indicator_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- DBG("_display_gl_display_noti_indicator_cb is called!!!!!!!");
- _show_noti_indicator_list(data);
-}
-
-void _noti_indicator_help_popup_cb(void *data, Evas_Object *obj, void *event_info)
-{
- appdata *ad = (appdata *) data;
- if (ad == NULL)
- return;
-
- Evas_Object *popup = NULL;
-
- popup = elm_popup_add(ad->nf);
- elm_object_style_set(popup, "circle");
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(ad->nf, popup);
-
- ad->popup = popup;
-
- char buf[1024];
-
- char *font_size_frame = "<font=Tizen><style=Thin><align=center>%s</align></style></font>";
- snprintf(buf, sizeof(buf) - 1, font_size_frame, " <br>Show a yellow indicator on the watch face when there are unread notifications.");
-
- Evas_Object *layout;
- layout = elm_layout_add(popup);
- elm_layout_theme_set(layout, "layout", "popup", "content/circle/buttons1");
- elm_object_part_text_set(layout, "elm.text.title", "Help");
-
- char *txt = strdup(buf);
- elm_object_text_set(layout, txt);
- elm_object_content_set(popup, layout);
-
- FREE(txt);
-
- evas_object_show(popup);
- back_button_cb_push(&back_key_popup_cb, data, NULL, g_noti_indicator_genlist, "g_noti_indicator_genlist");
- eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _hw_back_key_cb, NULL);
-
-}
-
-static void _display_gl_display_noti_indicator_check_cb(void *data, Evas_Object *obj, void *event_info)
-{
- int value = 0;
- Elm_Object_Item *it = (Elm_Object_Item *)event_info;
- appdata *ad = data;
-
- if (ad == NULL) {
- DBG("%s", "_touch_sound_cb - appdata or check is null");
- return;
- }
- vconf_get_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR, &value);
- value = value ? 0 : 1;
- vconf_set_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR, value);
-
-
- if (g_noti_check != NULL)
- elm_check_state_set(g_noti_check, (value) ? EINA_TRUE : EINA_FALSE);
-
- elm_genlist_item_selected_set(it, EINA_FALSE);
-
-}
-
-static void _display_gl_display_noti_indicator_help_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- DBG("_display_gl_display_noti_indicator_help_cb is called!!!!!!!");
- _noti_indicator_help_popup_cb(data, obj, event_info);
-}
-
-static void _display_noti_indicator_check_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- Evas_Object *check = obj;
- int nofi_indicator = 0;
- nofi_indicator = !elm_check_state_get(check);
- vconf_set_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR, nofi_indicator);
- ERR("Setting VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR : %d", nofi_indicator);
-}
-
-static Evas_Object *_gl_display_noti_indicator_check_get(void *data, Evas_Object *obj, const char *part)
-{
- Evas_Object *check = NULL;
- Item_Data *id = (Item_Data *)data;
-
-
- if (!strcmp(part, "elm.icon") && id->index == 0) {
- int noti_indicator = 0;
- check = elm_check_add(obj);
-
- vconf_get_bool(VCONFKEY_SETAPPL_NOTIFICATION_INDICATOR , ¬i_indicator);
- elm_object_style_set(check, "on&off");
- ERR("notification_indicator : %d", noti_indicator);
-
- elm_check_state_set(check, (noti_indicator) ? EINA_TRUE : EINA_FALSE);
- evas_object_event_callback_add(check, EVAS_CALLBACK_MOUSE_UP, _display_noti_indicator_check_cb, (void *)check);
- evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_propagate_events_set(check, EINA_FALSE);
-
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_DESCRIBED_BY, check);
- elm_atspi_accessible_relationship_append(id->item, ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
- elm_atspi_accessible_relationship_append(check, ELM_ATSPI_RELATION_CONTROLLED_BY, id->item);
- g_noti_check = check;
-
- }
-
- return check;
-}
-
-
-static char *_gl_noti_title_get(void *data, Evas_Object *obj, const char *part)
-{
- char buf[1024] = {0,};
- Display_Item_Data *id = data;
- int index = id->index;
-
- if (!strcmp(part, "elm.text")) {
- snprintf(buf, sizeof(buf) - 1, "%s", _(noti_menu_its[index].name));
- }
- return strdup(buf);
-}
-
-static void _noti_indicator_gl_del(void *data, Evas_Object *obj)
-{
- Item_Data *id = data;
- FREE(id);
-
- Elm_Object_Item *first = elm_genlist_first_item_get(g_noti_indicator_genlist);
- elm_object_item_signal_emit(first, "elm,action,title,slide,start", "elm");
-}
-
-static void gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
-{
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Elm_Object_Item *first = elm_genlist_first_item_get(g_noti_indicator_genlist);
- if (first == item)
- elm_object_item_signal_emit(first, "elm,action,title,slide,start", "elm");
-
-}
-
-static void _show_noti_indicator_list(void *data)
-{
- appdata *ad = data;
- if (ad == NULL) {
- DBG("%s", "_show_font_list - appdata is null");
- return;
- }
-
- Evas_Object *genlist = NULL;
- Elm_Object_Item *nf_it = NULL;
- int idx;
-
- temp_ad = ad;
- Elm_Genlist_Item_Class *itc[2];
- itc[0] = elm_genlist_item_class_new();
- itc[0]->item_style = "1text.1icon.1";
- itc[0]->func.text_get = _gl_noti_title_get;
- itc[0]->func.content_get = _gl_display_noti_indicator_check_get;
- itc[0]->func.del = _noti_indicator_gl_del;
-
- itc[1] = elm_genlist_item_class_new();
- itc[1]->item_style = "1text";
- itc[1]->func.text_get = _gl_noti_title_get;
- itc[1]->func.del = _noti_indicator_gl_del;
-
-
- Evas_Object *layout = elm_layout_add(ad->nf);
- elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- genlist = elm_genlist_add(layout);
- elm_genlist_block_count_set(genlist, 14);
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- connect_to_wheel_with_genlist(genlist, ad);
-
- evas_object_smart_callback_add(genlist, "realized", gl_realized_cb, NULL);
-
- Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
- title_item->func.text_get = _gl_menu_title_text_get;
- title_item->item_style = "title";
- title_item->func.del = NULL;
-
- elm_genlist_item_append(genlist, title_item, (void *)DISPLAY_TITLE_NOTIFICATION_INDICATOR, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-
- elm_genlist_item_class_free(title_item);
-
- for (idx = 0; idx < 2; idx++) {
- Item_Data *id = calloc(sizeof(Item_Data), 1);
- if (id) {
- id->index = idx;
- id->item = elm_genlist_item_append(genlist, itc[idx], id, NULL,
- ELM_GENLIST_ITEM_NONE, noti_menu_its[idx].func, ad);
-
- }
- }
-
- elm_object_part_content_set(layout, "elm.genlist", genlist);
-
- elm_genlist_item_class_free(itc[0]);
- elm_genlist_item_class_free(itc[1]);
-
- Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
- padding->item_style = "padding";
- padding->func.del = _noti_indicator_gl_del;
- g_noti_indicator_genlist = genlist;
- Elm_Object_Item *padding_item;
- padding_item = elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_atspi_accessible_role_set(padding_item, ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
- elm_genlist_item_class_free(padding);
-
- nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, "empty");
- back_button_cb_push(&back_key_generic_cb, data, NULL, g_display_genlist, "g_display_genlist");
- elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
- elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
-
-}
-