2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Flora License, Version 1.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 * Created on: Oct 9, 2013
25 #include <system_settings.h>
27 #include <vconf-keys.h>
28 #include <libxml/xmlmemory.h>
29 #include <libxml/parser.h>
30 #include <fontconfig/fontconfig.h>
32 #include "setting_data_vconf.h"
33 #include "setting-display.h"
34 #include "setting_view_toast.h"
35 #include "setting-language.h"
36 #include "setting-homescreen.h"
37 #include "setting-motion.h"
40 static struct _display_menu_item display_menu_its[] = {
41 { "IDS_ST_MBODY_SCREEN_TIMEOUT_ABB", SETTING_DISPLAY_SCREEN_TIME, _display_gl_screen_timeout_cb, 0 },
42 { "IDS_ST_BODY_FONT", SETTING_DISPLAY_FONT, _display_gl_font_cb, 0 },
43 { "IDS_ST_BUTTON_LANGUAGE", SETTING_DISPLAY_LANG, _display_gl_language_cb, 0 },
44 { "IDS_ST_MBODY_ALWAYS_ON_ABB", SETTING_DISPLAY_AMBIENT_MODE, _display_ambient_mode_cb, 0 },
45 #if !defined(FEATURE_SETTING_SDK) && !defined(FEATURE_SETTING_EMUL)
46 { "IDS_ST_MBODY_MANAGE_APPS_ABB", SETTING_DISPLAY_EDIT_APPS, _homescreen_gl_edit_apps_cb, 0 },
50 static struct _font_menu_item font_menu_its[] = {
51 { "IDS_ST_BODY_FONT_STYLE", SETTING_DISPLAY_FONT_STYLE, _display_gl_font_style_cb },
52 { "IDS_ST_BODY_FONT_SIZE_ABB", SETTING_DISPLAY_FONT_SIZE, _display_gl_font_size_cb },
55 static int screen_time_str[] = {
58 static int timeout_arr[] = {
62 static char *font_size_str[] = {
63 "IDS_EMAIL_OPT_SMALL_M_FONT_SIZE",
64 "IDS_ST_OPT_MEDIUM_M_FONT_SIZE",
65 "IDS_ST_BODY_LARGE_M_FONT_SIZE_ABB2"
68 static char *rotate_screen_str[] = {
69 "IDS_COM_BODY_DEFAULT", "IDS_COM_OPT_ROTATE_CW", "IDS_COM_OPT_ROTATE_CCW", "IDS_ST_SBODY_180_DEGREE"
72 static appdata *temp_ad = NULL;
73 static Evas_Object *g_display_genlist = NULL;
74 static Evas_Object *g_screen_time_genlist = NULL;
75 static Evas_Object *g_font_size_genlist = NULL;
76 static Evas_Object *g_font_style_genlist = NULL;
77 static Evas_Object *g_rotate_screen_genlist = NULL;
79 static int screen_time_index = 1; /* default: 10 seconds */
80 static int font_size_index = 1; /* default: normal */
81 static int rotate_screen_rot = 0; /* default: 0(0degree), vconf enum */
82 static int rotate_screen_index = 0; /* default: 0, list index */
84 static int touch_mode = NONE;
86 /* Main display list item */
87 static Elm_Object_Item *lang_item = NULL;
88 static Elm_Object_Item *wake_up_item = NULL;
89 static Elm_Object_Item *edit_icon_item = NULL;
90 static Elm_Object_Item *screen_time_item = NULL;
91 static Elm_Object_Item *ambient_mode_item = NULL;
94 static char *font_name = NULL;
96 static Elm_Object_Item *font_style_item = NULL;
97 static Elm_Object_Item *font_size_item = NULL;
99 static void _font_size_gl_cb(void *data, Evas_Object *obj, void *event_info);
100 static void _font_style_gl_cb(void *data, Evas_Object *obj, void *event_info);
101 static Eina_Bool setting_font_style_pop_cb(void *data, Elm_Object_Item *it);
102 static void settings_font_style_changed_cb(system_settings_key_e key, void *user_data);
103 static void change_language_enabling(keynode_t *key, void *data);
104 static void change_screen_time_cb(keynode_t *key, void *data);
105 static void change_language_cb(keynode_t *key, void *data);
106 static Eina_Bool setting_font_list_pop_cb(void *data, Elm_Object_Item *it);
107 static void _lang_update_font_style_list(void *data, Evas_Object *obj, void *event_info);
113 register_vconf_changing(VCONFKEY_WMS_WMANAGER_CONNECTED, change_language_enabling, NULL);
114 register_vconf_changing(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, change_screen_time_cb, NULL);
115 register_vconf_changing(VCONFKEY_LANGSET, change_language_cb, NULL);
117 /*_init_screen_rotate(); */
120 void _init_screen_rotate()
123 rotate = _get_rotate_screen();
124 rotate_screen_rot = rotate;
126 if (rotate == SETTING_SCREENROTATION_90_DEGREE) {
128 rotate_screen_index = 1;
129 } else if (rotate == SETTING_SCREENROTATION_270_DEGREE) {
131 rotate_screen_index = 2;
132 } else if (rotate == SETTING_SCREENROTATION_180_DEGREE) {
134 rotate_screen_index = 3;
138 rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
142 void _update_menu_text_when_lang_changed()
144 DBG("Setting - Language is changed...update display list");
146 if (g_display_genlist) {
147 elm_genlist_realized_items_update(g_display_genlist);
150 if (temp_ad && temp_ad->main_genlist) {
151 elm_genlist_realized_items_update(temp_ad->main_genlist);
155 Eina_Bool _clear_display_cb(void *data, Elm_Object_Item *it)
158 g_screen_time_genlist = NULL;
159 g_font_size_genlist = NULL;
160 g_font_style_genlist = NULL;
161 g_rotate_screen_genlist = NULL;
165 unregister_vconf_changing(VCONFKEY_WMS_WMANAGER_CONNECTED, change_language_enabling);
166 unregister_vconf_changing(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, change_screen_time_cb);
167 unregister_vconf_changing(VCONFKEY_LANGSET, change_language_cb);
172 void _display_gl_font_cb(void *data, Evas_Object *obj, void *event_info)
174 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
177 _show_font_list(data);
179 DBG("ad->font_name is NULL !!!!!!");
183 void _display_gl_font_style_cb(void *data, Evas_Object *obj, void *event_info)
185 DBG("_display_gl_font_style_cb");
187 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
190 _show_font_style_list(data);
194 void _display_gl_font_size_cb(void *data, Evas_Object *obj, void *event_info)
196 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
199 _show_font_size_list(data);
203 void _display_gl_rotate_screen_cb(void *data, Evas_Object *obj, void *event_info)
205 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
208 _show_rotate_screen_list(data);
212 void _display_gl_screen_timeout_cb(void *data, Evas_Object *obj, void *event_info)
214 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
217 _show_screen_timeout_list(data);
221 void _display_gl_language_cb(void *data, Evas_Object *obj, void *event_info)
223 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
225 Evas_Object *genlist = NULL;
226 Elm_Object_Item *nf_it = NULL;
230 DBG("Setting - ad is null");
234 if (ad->MENU_TYPE == SETTING_LANGUAGE) {
235 DBG("Already language screen enter:clear");
239 if (is_connected_GM()) {
240 DBG("Setting - language can not change!!");
242 /* automatic freed!! */
243 struct _toast_data *toast = _create_toast(ad, _("IDS_ST_TPOP_CHANGE_LANGUAGE_ON_MOBILE_DEVICE"));
245 _show_toast(ad, toast);
250 ad->MENU_TYPE = SETTING_LANGUAGE;
252 _initialize_language(ad);
253 _set_launguage_update_cb(_update_menu_text_when_lang_changed);
255 genlist = _create_lang_list(data);
256 if (genlist == NULL) {
257 DBG("%s", "language cb - genlist is null");
260 nf_it = elm_naviframe_item_push(ad->nf, "IDS_ST_BUTTON_LANGUAGE", NULL, NULL, genlist, NULL);
261 evas_object_event_callback_add(genlist, EVAS_CALLBACK_DEL, _clear_lang_cb, ad);
262 #if !defined(FEATURE_SETTING_TELEPHONY)
263 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
265 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
267 ad->MENU_TYPE = SETTING_LANGUAGE;
270 Evas_Object *_gl_display_check_get(void *data, Evas_Object *obj, const char *part)
272 Evas_Object *check = NULL;
274 Display_Item_Data *id = data;
275 int index = id->index;
277 if (!strcmp(part, "elm.icon")) {
278 check = elm_check_add(obj);
280 if (vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &display_menu_its[0].is_enable_ambient_mode) < 0) {
281 display_menu_its[0].is_enable_ambient_mode = AMBIENT_MODE_ENABLE; /* default value of ambient mode: off */
283 elm_check_state_set(check, (display_menu_its[0].is_enable_ambient_mode) ? EINA_TRUE : EINA_FALSE);
284 evas_object_smart_callback_add(check, "changed", _display_ambient_mode_cb, (void *)1);
285 evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
286 evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
287 evas_object_propagate_events_set(check, EINA_FALSE);
298 char *_gl_display_title_get(void *data, Evas_Object *obj, const char *part)
300 char buf[1024] = {0,};
301 Display_Item_Data *id = data;
302 int index = id->index;
304 if (!strcmp(part, "elm.text")) {
305 if (id->item == lang_item) {
306 if (is_connected_GM()) {
307 snprintf(buf, sizeof(buf) - 1, "<font color=#515151>%s</font>",
308 _(display_menu_its[index].name));
310 snprintf(buf, sizeof(buf) - 1, "%s",
311 _(display_menu_its[index].name));
313 DBG("buf --->%s", buf);
315 snprintf(buf, sizeof(buf) - 1, "%s", _(display_menu_its[index].name));
316 DBG("buf --->%s", buf);
318 } else if (!strcmp(part, "elm.text.1")) {
319 if (id->item == edit_icon_item) {
320 char *str = _get_homeview_type_subtitle();
321 snprintf(buf, sizeof(buf) - 1, "%s", str);
322 DBG("buf --->%s", buf);
324 } else if (id->item == lang_item) {
325 const char *curr_lang = setting_get_lang_title();
327 if (is_connected_GM()) {
328 snprintf(buf, sizeof(buf) - 1, "<font color=#515151>%s</font>", curr_lang);
330 snprintf(buf, sizeof(buf) - 1, "%s", curr_lang);
332 DBG("buf --->%s", buf);
335 } else if (id->item == screen_time_item) {
337 vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &time);
340 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_10SEC"), screen_time_str[0]);
343 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_15SEC"), screen_time_str[1]);
346 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_30SEC"), screen_time_str[2]);
349 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_1_MINUTE_ABB2"), screen_time_str[3]);
352 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_5_MINUTES"), screen_time_str[4]);
355 DBG("buf --->%s", buf);
357 snprintf(buf, sizeof(buf) - 1, "%s", _get_wake_up_gesture_sub_title());
358 DBG("buf --->%s", buf);
364 void _display_gl_del(void *data, Evas_Object *obj)
366 Display_Item_Data *id = data;
371 Evas_Object *_create_display_list(void *data)
375 DBG("%s", "_create_display_list - appdata is null");
378 Evas_Object *genlist = NULL;
379 struct _display_menu_item *menu_its = NULL;
384 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
385 itc->item_style = "1text";
386 itc->func.text_get = _gl_display_title_get;
387 itc->func.del = _display_gl_del;
389 Elm_Genlist_Item_Class *itc2 = elm_genlist_item_class_new();
390 itc2->item_style = "2text";
391 itc2->func.text_get = _gl_display_title_get;
392 itc2->func.del = _display_gl_del;
394 Elm_Genlist_Item_Class *itc_ambient_md = elm_genlist_item_class_new();
395 itc_ambient_md->item_style = "1text.1icon.1";
396 itc_ambient_md->func.text_get = _gl_display_title_get;
397 itc_ambient_md->func.content_get = _gl_display_check_get;
398 itc_ambient_md->func.del = _display_gl_del;
400 genlist = elm_genlist_add(ad->nf);
401 elm_genlist_block_count_set(genlist, 14);
402 elm_genlist_homogeneous_set(genlist, EINA_TRUE);
403 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
406 Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
407 eext_circle_object_genlist_scroller_policy_set(circle_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
408 eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
411 menu_its = display_menu_its;
413 int size = sizeof(display_menu_its) / sizeof(struct _display_menu_item);
415 for (idx = 0; idx < size; idx++) {
416 Elm_Genlist_Item_Class *itc_tmp = NULL;
418 if (menu_its[idx].type == SETTING_DISPLAY_GESTURE
419 || menu_its[idx].type == SETTING_DISPLAY_ICON_SIZE
420 || menu_its[idx].type == SETTING_DISPLAY_LANG
421 || menu_its[idx].type == SETTING_DISPLAY_SCREEN_TIME) {
423 } else if (menu_its[idx].type == SETTING_DISPLAY_AMBIENT_MODE) {
424 itc_tmp = itc_ambient_md;
429 Display_Item_Data *id = calloc(sizeof(Display_Item_Data), 1);
432 id->item = elm_genlist_item_append(
433 genlist, /* genlist object */
434 itc_tmp, /* item class */
437 ELM_GENLIST_ITEM_NONE,
438 menu_its[idx].func, /* call back */
441 if (menu_its[idx].type == SETTING_DISPLAY_LANG) {
442 lang_item = id->item;
443 } else if (menu_its[idx].type == SETTING_DISPLAY_GESTURE) {
444 DBG("wakeup item@!!!");
445 wake_up_item = id->item;
446 } else if (menu_its[idx].type == SETTING_DISPLAY_ICON_SIZE) {
447 DBG("edit icon item@!!!");
448 edit_icon_item = id->item;
449 } else if (menu_its[idx].type == SETTING_DISPLAY_SCREEN_TIME) {
450 DBG("screen time item@!!!");
451 screen_time_item = id->item;
452 } else if (menu_its[idx].type == SETTING_DISPLAY_AMBIENT_MODE) {
453 DBG("ambient mode item@!!!");
454 ambient_mode_item = id->item;
458 elm_genlist_item_class_free(itc);
459 elm_genlist_item_class_free(itc2);
460 elm_genlist_item_class_free(itc_ambient_md);
462 g_display_genlist = genlist;
467 static char *_gl_screen_timeout_title_get(void *data, Evas_Object *obj, const char *part)
469 char buf[1024] = {0,};
470 Item_Data *id = data;
472 if (!strcmp(part, "elm.text")) {
473 if (id->index == 0) {
474 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_10SEC"), screen_time_str[id->index]);
475 } else if (id->index == 1) {
476 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_15SEC"), screen_time_str[id->index]);
477 } else if (id->index == 2) {
478 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_30SEC"), screen_time_str[id->index]);
479 } else if (id->index == 3) {
480 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_1_MINUTE_ABB2"), screen_time_str[id->index]);
482 snprintf(buf, sizeof(buf) - 1, _("IDS_ST_BODY_5_MINUTES"), screen_time_str[id->index]);
488 static int _get_timeout_index(int seconds)
492 length = sizeof(timeout_arr) / sizeof(timeout_arr[0]);
494 DBG("Setting - timeout_arr's length: %d", length);
496 for (index = 0; index < length; index++) {
497 if (timeout_arr[index] == seconds) {
498 DBG("Setting - timeout index : %d, sec : %d", index, timeout_arr[index]);
506 static void _screen_timeout_gl_cb(void *data, Evas_Object *obj, void *event_info)
508 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
510 screen_time_index = (int)data;
512 vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL , timeout_arr[screen_time_index]);
514 elm_genlist_realized_items_update(g_screen_time_genlist);
516 elm_naviframe_item_pop(temp_ad->nf);
517 if (!temp_ad->screen_timeout_rdg) {
518 evas_object_del(temp_ad->screen_timeout_rdg);
519 temp_ad->screen_timeout_rdg = NULL;
523 static Evas_Object *_gl_screen_timeout_ridio_get(void *data, Evas_Object *obj, const char *part)
525 Evas_Object *radio = NULL;
526 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
527 Item_Data *id = data;
528 static int timeout = -1;
530 if (!strcmp(part, "elm.icon")) {
531 radio = elm_radio_add(obj);
532 elm_radio_state_value_set(radio, id->index);
533 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
534 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
535 elm_radio_group_add(radio, radio_main);
536 evas_object_smart_callback_add(radio, "changed", _screen_timeout_gl_cb, (void *)id->index);
537 evas_object_propagate_events_set(radio, EINA_FALSE);
540 vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &timeout);
541 screen_time_index = _get_timeout_index(timeout);
544 if (screen_time_index == id->index) {
545 elm_radio_value_set(radio_main, screen_time_index);
551 static void _screen_timeout_gl_del(void *data, Evas_Object *obj)
553 Item_Data *id = data;
558 void _show_screen_timeout_list(void *data)
562 DBG("%s", "_show_screen_timeout_list - appdata is null");
565 Evas_Object *genlist = NULL;
566 Elm_Object_Item *nf_it = NULL;
571 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
572 itc->item_style = "1text.1icon.1";
573 itc->func.text_get = _gl_screen_timeout_title_get;
574 itc->func.content_get = _gl_screen_timeout_ridio_get;
575 itc->func.del = _screen_timeout_gl_del;
577 genlist = elm_genlist_add(ad->nf);
578 elm_genlist_block_count_set(genlist, 14);
579 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
580 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
583 Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
584 eext_circle_object_genlist_scroller_policy_set(circle_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
585 eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
589 vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &timeout);
590 screen_time_index = _get_timeout_index(timeout);
592 Elm_Object_Item *curr_item = NULL;
594 for (idx = 0; idx < SCREEN_TIME_COUNT; idx++) {
595 Item_Data *id = calloc(sizeof(Item_Data), 1);
598 id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _screen_timeout_gl_cb, (void *)idx);
601 if (idx == screen_time_index) {
602 curr_item = id->item;
606 ad->screen_timeout_rdg = elm_radio_add(genlist);
607 elm_radio_state_value_set(ad->screen_timeout_rdg, 6);
608 elm_radio_value_set(ad->screen_timeout_rdg, screen_time_index);
610 evas_object_data_set(genlist, "radio_main", ad->screen_timeout_rdg);
613 elm_genlist_item_show(curr_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
616 g_screen_time_genlist = genlist;
618 elm_genlist_item_class_free(itc);
620 nf_it = elm_naviframe_item_push(ad->nf, "IDS_ST_MBODY_SCREEN_TIMEOUT_ABB", NULL, NULL, genlist, NULL);
621 #if !defined(FEATURE_SETTING_TELEPHONY)
622 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
624 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
627 static char *_gl_font_title_get(void *data, Evas_Object *obj, const char *part)
629 char buf[1024] = {0};
630 Item_Data *id = data;
632 if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
633 snprintf(buf, sizeof(buf) - 1, "%s", _(font_menu_its[id->index].name));
634 } else if (!strcmp(part, "elm.text.2")) {
635 if (id->index == SETTING_DISPLAY_FONT_STYLE) {
636 char *font_name = NULL;
637 if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
638 != SYSTEM_SETTINGS_ERROR_NONE) {
639 ERR("failed to call system_setting_get_value_string with err");
644 DBG(" font_name <---------------------- (%s) ", font_name);
646 if (strstr(font_name, "Samsung")) {
647 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_DEFAULT_FONT"));
649 if (!strcmp(font_name, "Choco cooky")) {
650 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_LCKSCN_BODY_CHOCO_COOKY_M_FONT"));
651 } else if (!strcmp(font_name, "Cool jazz")) {
652 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_COOL_JAZZ"));
653 } else if (!strcmp(font_name, "Rosemary")) {
654 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
655 } else if (!strcmp(font_name, "Tinkerbell")) {
656 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_MBODY_TINKERBELL"));
657 } else if (!strcmp(font_name, "Applemint")) {
658 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_RH_BUTTON2_APPLEMINT_M_FONT"));
659 } else if (!strcmp(font_name, "Kaiti")) {
660 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_KAITI_M_FONT"));
661 } else if (!strcmp(font_name, "POP")) {
662 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_POP_JPN_DCM"));
663 } else if (!strcmp(font_name, "UDMincho")) {
664 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_UDMINCHO_JPN"));
665 } else if (!strcmp(font_name, "UDRGothic")) {
666 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_UDRGOTHICM_JPN"));
667 } else if (!strcmp(font_name, "TizenSans")) {
668 snprintf(buf, sizeof(buf) - 1, "%s", _("TizenSans"));
670 snprintf(buf, sizeof(buf) - 1, "%s", font_name);
674 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_UNKNOWN"));
676 } else if (id->index == SETTING_DISPLAY_FONT_SIZE) {
678 if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &font_size)
679 != SYSTEM_SETTINGS_ERROR_NONE) {
680 DBG("Setting - system_settings_get_value_int() is failed.");
683 if (font_size < 0 || font_size > 2) {
684 snprintf(buf, sizeof(buf) - 1, "%s", _("IDS_ST_BODY_UNKNOWN"));
686 snprintf(buf, sizeof(buf) - 1, "%s", _(font_size_str[font_size]));
694 static char *_gl_font_style_title_get(void *data, Evas_Object *obj, const char *part)
697 Font_Style_Item_Data *id = data;
699 char *pos = id->font_name;
703 while (pos && *pos != '\0') {
705 new_name[count] = '\\';
707 new_name[count] = ' ';
709 new_name[count] = id->font_name[i];
716 new_name[count] = '\0';
718 if (!strcmp(part, "elm.text")) {
720 if (id->index == 0) {
721 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_DEFAULT_FONT"));
725 if (!strcmp(id->font_name, "Choco cooky")) {
726 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_LCKSCN_BODY_CHOCO_COOKY_M_FONT"));
727 } else if (!strcmp(id->font_name, "Cool jazz")) {
728 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_COOL_JAZZ"));
729 } else if (!strcmp(id->font_name, "Rosemary")) {
730 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
731 } else if (!strcmp(id->font_name, "Tinkerbell")) {
732 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_MBODY_TINKERBELL"));
733 } else if (!strcmp(id->font_name, "Applemint")) {
734 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_RH_BUTTON2_APPLEMINT_M_FONT"));
735 } else if (!strcmp(id->font_name, "Kaiti")) {
736 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_KAITI_M_FONT"));
737 } else if (!strcmp(id->font_name, "POP")) {
738 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_POP_JPN_DCM"));
739 } else if (!strcmp(id->font_name, "UDMincho")) {
740 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_UDMINCHO_JPN"));
741 } else if (!strcmp(id->font_name, "UDRGothic")) {
742 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, _("IDS_ST_BODY_UDRGOTHICM_JPN"));
744 snprintf(buf, sizeof(buf) - 1, "<font=%s>%s</font>", new_name, id->font_name);
751 DBG("font = %s", buf);
755 static Evas_Object *_gl_font_style_ridio_get(void *data, Evas_Object *obj, const char *part)
757 Evas_Object *radio = NULL;
758 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
759 Font_Style_Item_Data *id = data;
761 if (!strcmp(part, "elm.icon")) {
762 radio = elm_radio_add(obj);
763 elm_radio_state_value_set(radio, id->index);
764 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
765 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
766 elm_radio_group_add(radio, radio_main);
768 evas_object_smart_callback_add(radio, "clicked", _font_style_gl_cb, (void *)id);
769 evas_object_propagate_events_set(radio, EINA_FALSE);
775 static void _font_style_gl_del(void *data, Evas_Object *obj)
777 Font_Style_Item_Data *id = data;
784 static char *_gl_font_size_title_get(void *data, Evas_Object *obj, const char *part)
786 int old_font_size = -1;
787 if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
788 != SYSTEM_SETTINGS_ERROR_NONE) {
789 DBG("Setting - system_settings_get_value_int() is failed.");
791 char buf[1024] = {0,};
792 Item_Data *id = data;
794 if (!strcmp(part, "elm.text")) {
795 if (id->index == 0) {
796 snprintf(buf, sizeof(buf) - 1, "<font_size=30>%s</font_size>", _(font_size_str[id->index]));
797 } else if (id->index == 1) {
798 snprintf(buf, sizeof(buf) - 1, "<font_size=38>%s</font_size>", _(font_size_str[id->index]));
800 snprintf(buf, sizeof(buf) - 1, "<font_size=46>%s</font_size>", _(font_size_str[id->index]));
806 static Evas_Object *_gl_font_size_ridio_get(void *data, Evas_Object *obj, const char *part)
808 Evas_Object *radio = NULL;
809 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
810 Item_Data *id = data;
812 int old_font_size = -1;
813 if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
814 != SYSTEM_SETTINGS_ERROR_NONE) {
815 DBG("Setting - system_settings_get_value_int() is failed.");
818 if (!strcmp(part, "elm.icon")) {
819 radio = elm_radio_add(obj);
820 elm_radio_state_value_set(radio, id->index);
821 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
822 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
823 elm_radio_group_add(radio, radio_main);
824 evas_object_smart_callback_add(radio, "changed", _font_size_gl_cb, (void *)id->index);
825 evas_object_propagate_events_set(radio, EINA_FALSE);
827 if (old_font_size == id->index) {
828 elm_radio_value_set(radio_main, old_font_size);
834 static void _font_size_gl_del(void *data, Evas_Object *obj)
836 Item_Data *id = data;
841 static Ecore_Timer *font_timer = NULL;
843 static Eina_Bool _update_font_style(void *data)
845 /* change font style */
847 system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, font_name);
850 ERR("font_name is null");
854 return ECORE_CALLBACK_CANCEL;
857 static void _font_style_cancel_cb(void *data, Evas_Object *obj, void *event_info)
861 ERR("appdata is null");
865 elm_naviframe_item_pop(ad->nf);
866 if (!ad->font_style_rdg) {
867 evas_object_del(ad->font_style_rdg);
868 ad->font_style_rdg = NULL;
874 static void _font_style_ok_cb(void *data, Evas_Object *obj, void *event_info)
878 ERR("appdata is null");
882 elm_naviframe_item_pop(ad->nf);
884 if (!ad->font_style_rdg) {
885 evas_object_del(ad->font_style_rdg);
886 ad->font_style_rdg = NULL;
890 ecore_timer_del(font_timer);
893 font_timer = ecore_timer_add(0.3, (Ecore_Task_Cb) _update_font_style, NULL);
897 static void _font_style_gl_cb(void *data, Evas_Object *obj, void *event_info)
899 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
900 Font_Style_Item_Data *id = (Font_Style_Item_Data *)data;
902 /*elm_radio_value_set(temp_ad->font_style_rdg, id->index); */
907 font_name = strdup(id->font_name);
910 /*elm_genlist_realized_items_update(g_font_style_genlist); */
911 elm_naviframe_item_pop(temp_ad->nf);
913 if (font_style_item) {
914 elm_genlist_item_update(font_style_item);
917 if (!temp_ad->font_style_rdg) {
918 evas_object_del(temp_ad->font_style_rdg);
919 temp_ad->font_style_rdg = NULL;
923 ecore_timer_del(font_timer);
926 font_timer = ecore_timer_add(0.3, (Ecore_Task_Cb) _update_font_style, NULL);
929 static Eina_Bool _update_font_size(void *data)
931 /* change font size */
932 system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, font_size_index);
936 if (font_size_item) {
937 elm_genlist_item_update(font_size_item);
940 return ECORE_CALLBACK_CANCEL;
943 static void _font_size_gl_cb(void *data, Evas_Object *obj, void *event_info)
945 int old_font_size = 0;
947 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
949 if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_font_size)
950 != SYSTEM_SETTINGS_ERROR_NONE) {
951 DBG("Setting - system_settings_get_value_int() is failed.");
954 DBG("Setting - old font size is %d.", old_font_size);
956 font_size_index = (int)data;
958 DBG("Setting - Curr font size is %d.", font_size_index);
960 /*elm_genlist_realized_items_update(g_font_size_genlist); */
962 elm_naviframe_item_pop(temp_ad->nf);
964 if (!temp_ad->font_size_rdg) {
965 evas_object_del(temp_ad->font_size_rdg);
966 temp_ad->font_size_rdg = NULL;
970 ecore_timer_del(font_timer);
974 if (old_font_size != font_size_index) {
975 DBG("Setting - font size is same with old.");
976 font_timer = ecore_timer_add(0.3, (Ecore_Task_Cb) _update_font_size, NULL);
980 void _show_font_list(void *data)
984 DBG("%s", "_show_font_list - appdata is null");
988 Evas_Object *genlist = NULL;
989 Elm_Object_Item *nf_it = NULL;
994 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
995 itc->item_style = "2text";
996 itc->func.text_get = _gl_font_title_get;
997 itc->func.del = _font_size_gl_del;
999 Evas_Object *layout = elm_layout_add(ad->nf);
1000 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
1001 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1003 genlist = elm_genlist_add(layout);
1004 elm_genlist_block_count_set(genlist, 14);
1005 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
1006 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1009 Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
1010 padding->item_style = "padding";
1011 padding->func.del = _font_size_gl_del;
1013 elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1016 for (idx = 0; idx < 1; idx++) {
1017 Item_Data *id = calloc(sizeof(Item_Data), 1);
1020 id->item = elm_genlist_item_append(genlist, itc, id, NULL,
1021 ELM_GENLIST_ITEM_NONE, _display_gl_font_style_cb, ad);
1024 font_style_item = id->item;
1029 elm_object_part_content_set(layout, "elm.genlist", genlist);
1031 elm_genlist_item_class_free(itc);
1033 nf_it = elm_naviframe_item_push(ad->nf, "IDS_ST_BODY_FONT", NULL, NULL, layout, NULL);
1034 #if !defined(FEATURE_SETTING_TELEPHONY)
1035 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
1037 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1038 elm_naviframe_item_pop_cb_set(nf_it, setting_font_list_pop_cb, ad);
1040 if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, settings_font_style_changed_cb, ad) != 0) {
1041 ERR("system_settings_set_changed_cb failed!!");
1045 char *_get_default_font()
1047 xmlDocPtr doc = NULL;
1048 xmlNodePtr cur = NULL;
1049 xmlNodePtr cur2 = NULL;
1050 xmlNodePtr cur3 = NULL;
1051 xmlChar *key = NULL;
1052 struct _xmlAttr *properties = NULL;
1053 char *default_font_name = NULL;
1055 doc = xmlParseFile("/usr/opt/etc/fonts/conf.avail/99-slp.conf");
1057 cur = xmlDocGetRootElement(doc);
1065 if (xmlStrcmp(cur->name, (const xmlChar *)"fontconfig")) {
1071 cur = cur->xmlChildrenNode;
1073 while (cur != NULL) {
1074 if ((!xmlStrcmp(cur->name, (const xmlChar *)"match"))) {
1075 cur2 = cur->xmlChildrenNode;
1076 while (cur2 != NULL) {
1077 if ((!xmlStrcmp(cur2->name, (const xmlChar *)"edit"))) {
1078 properties = cur2->properties;
1079 /*find the "name" property*/
1080 while (NULL != properties) {
1081 if (!xmlStrcmp(properties->name, (const xmlChar *)"name")) {
1084 properties = properties->next;
1087 /*If the value of "name" property is "family", then get the child node string,
1088 it shall be the default font type*/
1089 if (NULL != properties && !xmlStrcmp(properties->children->content, (const xmlChar *)"family")) {
1090 cur3 = cur2->xmlChildrenNode;
1091 while (cur3 != NULL) {
1092 if ((!xmlStrcmp(cur3->name, (const xmlChar *)"string"))) {
1093 key = xmlNodeListGetString(doc, cur3->xmlChildrenNode, 1);
1094 default_font_name = (char *)g_strdup((char *)key);
1099 return default_font_name;
1116 static Eina_List *_get_available_font_list()
1118 FcObjectSet *os = NULL;
1119 FcFontSet *fs = NULL;
1120 FcPattern *pat = NULL;
1121 Eina_List *list = NULL;
1122 FcConfig *font_config = NULL;
1124 font_config = FcInitLoadConfigAndFonts();
1126 if (font_config == NULL) {
1127 ERR("Failed: FcInitLoadConfigAndFonts");
1131 char *locale = setlocale(0, NULL);
1133 pat = FcPatternCreate();
1135 os = FcObjectSetBuild(FC_FAMILY, FC_FILE, FC_FAMILYLANG, (char *) 0);
1138 fs = FcFontList(font_config, pat, os);
1139 FcObjectSetDestroy(os);
1144 FcPatternDestroy(pat);
1150 DBG("fs->nfont = %d", fs->nfont);
1152 for (j = 0; j < fs->nfont; j++) {
1153 FcChar8 *family = NULL;
1154 FcChar8 *file = NULL;
1155 FcChar8 *lang = NULL;
1158 if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch) {
1159 int preload_path_len = strlen(SETTING_FONT_PRELOAD_FONT_PATH);
1160 int download_path_len = strlen(SETTING_FONT_DOWNLOADED_FONT_PATH);
1162 char *family_result = NULL;
1164 if (FcPatternGetString(fs->fonts[j], FC_FAMILY, 0, &family) != FcResultMatch) {
1165 DBG("Family name is invalid");
1169 if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
1170 DBG("Family lang is invalid");
1174 if (!strncmp((const char *)file, SETTING_FONT_PRELOAD_FONT_PATH, preload_path_len)) {
1175 /* Find proper family name for current locale. */
1176 while (locale && family && lang) {
1177 /*DBG("locale: %s, family: %s, lang: %s", locale, family, lang); */
1179 if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
1180 family_result = (char *)family;
1184 /* I will set english as default family language. */
1185 /* If there is no proper family language for current locale, */
1186 /* we have to show the english family name. */
1187 if (!strcmp(lang, "en")) {
1188 family_result = (char *)family;
1191 if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
1194 if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
1199 if (eina_list_data_find(list, family_result) == NULL) {
1200 list = eina_list_append(list, family_result);
1201 DBG("-------- ADDED FONT - family result = %s", (char *)family_result);
1207 /* always shown for D/L */
1208 if (!strncmp((const char *)file, SETTING_FONT_DOWNLOADED_FONT_PATH, download_path_len)) {
1209 /* Find proper family name for current locale. */
1210 while (locale && family && lang) {
1211 /*DBG("locale: %s, family: %s, lang: %s", locale, family, lang); */
1213 if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
1214 family_result = (char *)family;
1218 /* I will set english as default family language. */
1219 /* If there is no proper family language for current locale, */
1220 /* we have to show the english family name. */
1221 if (!strcmp(lang, "en")) {
1222 family_result = (char *)family;
1225 if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
1228 if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
1233 if (eina_list_data_find(list, family_result) == NULL) {
1234 list = eina_list_append(list, family_result);
1235 DBG("-------- ADDED FONT - family result = %s", (char *)family_result);
1240 FcFontSetDestroy(fs);
1244 FcConfigDestroy(font_config);
1249 int _show_font_style_list(void *data)
1253 DBG("%s", "_show_font_style_list - appdata is null");
1256 Evas_Object *genlist = NULL;
1257 Evas_Object *btn = NULL;
1258 Elm_Object_Item *nf_it = NULL;
1259 char *default_font_name = NULL;
1260 char *tmp_name = NULL;
1261 int idx = 0, matched_idx = 0;
1266 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
1267 itc->item_style = "1text.1icon.1";
1268 itc->func.text_get = _gl_font_style_title_get;
1269 itc->func.content_get = _gl_font_style_ridio_get;
1270 itc->func.del = _font_style_gl_del;
1272 Evas_Object *layout = elm_layout_add(ad->nf);
1273 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
1274 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1276 genlist = elm_genlist_add(layout);
1277 elm_genlist_block_count_set(genlist, 14);
1278 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
1279 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1282 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &tmp_name);
1283 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
1284 ERR("failed to call system_setting_get_value_string with err %d", ret);
1285 tmp_name = _get_default_font();
1286 if (tmp_name == NULL) {
1287 ERR("failed to get default font name");
1290 DBG("get_default_font = %s", tmp_name);
1293 DBG("SYSTEM_SETTINGS_KEY_FONT_TYPE = %s", tmp_name);
1297 Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
1298 padding->item_style = "padding";
1299 padding->func.del = _font_size_gl_del;
1301 elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1304 default_font_name = _get_default_font();
1306 if (default_font_name) {
1307 Font_Style_Item_Data *id_default = calloc(sizeof(Font_Style_Item_Data), 1);
1308 if (default_font_name && tmp_name && !strcmp(tmp_name, default_font_name)) {
1310 font_name = strdup(tmp_name);
1313 id_default->index = idx++;
1314 id_default->font_name = strdup(default_font_name);
1315 id_default->item = elm_genlist_item_append(genlist, itc, id_default, NULL, ELM_GENLIST_ITEM_NONE,
1316 _font_style_gl_cb, (void *)id_default);
1319 ERR("default_font_name is NULL");
1323 Eina_List *font_list = NULL;
1324 Eina_List *l = NULL;
1325 FcChar8 *font_data = NULL;
1326 font_list = _get_available_font_list();
1327 EINA_LIST_FOREACH(font_list, l, font_data) {
1328 if (!default_font_name || strcmp((const char *)default_font_name, (const char *)font_data)) {
1329 Font_Style_Item_Data *id = calloc(sizeof(Item_Data), 1);
1330 if (tmp_name && !strcmp((const char *)tmp_name, (const char *)font_data)) {
1332 font_name = strdup(tmp_name);
1335 DBG("font_data -------> %s", (const char *)font_data);
1339 id->font_name = (char *)strdup((char *)font_data);
1340 id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE,
1341 _font_style_gl_cb, (void *)id);
1347 ad->font_style_rdg = elm_radio_add(genlist);
1348 elm_radio_state_value_set(ad->font_style_rdg, -1);
1349 elm_radio_value_set(ad->font_style_rdg, matched_idx);
1351 evas_object_data_set(genlist, "radio_main", ad->font_style_rdg);
1353 g_font_style_genlist = genlist;
1355 elm_object_part_content_set(layout, "elm.genlist", genlist);
1357 elm_genlist_item_class_free(itc);
1359 evas_object_smart_callback_add(genlist, "language,changed", _lang_update_font_style_list, ad);
1361 nf_it = elm_naviframe_item_push(ad->nf, "IDS_ST_BODY_FONT_STYLE", NULL, NULL, layout, NULL);
1362 #if !defined(FEATURE_SETTING_TELEPHONY)
1363 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
1365 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1366 elm_naviframe_item_pop_cb_set(nf_it, setting_font_style_pop_cb, ad);
1371 static void _lang_update_font_style_list(void *data, Evas_Object *obj, void *event_info)
1373 DBG("_lang_update_font_style_list");
1377 DBG("%s", "_lang_update_font_style_list - appdata is null");
1381 if (g_font_style_genlist) {
1382 elm_genlist_clear(g_font_style_genlist);
1384 char *default_font_name = NULL;
1385 char *tmp_name = NULL;
1386 int idx = 0, matched_idx = 0;
1389 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
1390 itc->item_style = "1text.1icon.1";
1391 itc->func.text_get = _gl_font_style_title_get;
1392 itc->func.content_get = _gl_font_style_ridio_get;
1393 itc->func.del = _font_style_gl_del;
1396 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &tmp_name);
1397 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
1398 ERR("failed to call system_setting_get_value_string with err %d", ret);
1399 tmp_name = _get_default_font();
1402 default_font_name = _get_default_font();
1404 Font_Style_Item_Data *id_default = calloc(sizeof(Font_Style_Item_Data), 1);
1405 if (default_font_name && tmp_name && !strcmp(tmp_name, default_font_name)) {
1407 font_name = strdup(tmp_name);
1410 id_default->index = idx++;
1411 id_default->font_name = (default_font_name != NULL) ? strdup(default_font_name) : NULL;
1412 id_default->item = elm_genlist_item_append(g_font_style_genlist, itc, id_default, NULL, ELM_GENLIST_ITEM_NONE,
1413 _font_style_gl_cb, (void *)id_default);
1416 Eina_List *font_list = NULL;
1417 Eina_List *l = NULL;
1418 FcChar8 *font_data = NULL;
1419 font_list = _get_available_font_list();
1420 EINA_LIST_FOREACH(font_list, l, font_data) {
1421 if (!default_font_name || strcmp((const char *)default_font_name, (const char *)font_data)) {
1422 Font_Style_Item_Data *id = calloc(sizeof(Item_Data), 1);
1423 if (tmp_name && !strcmp((const char *)tmp_name, (const char *)font_data)) {
1425 font_name = strdup(tmp_name);
1427 DBG("Font1: %s, Font2: %s", tmp_name, font_data);
1431 id->font_name = (char *)strdup((char *)font_data);
1432 id->item = elm_genlist_item_append(g_font_style_genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE,
1433 _font_style_gl_cb, (void *)id);
1438 ad->font_style_rdg = evas_object_data_get(g_font_style_genlist, "radio_main");
1439 if (ad->font_style_rdg) {
1440 evas_object_del(ad->font_style_rdg);
1441 ad->font_style_rdg = NULL;
1445 ad->font_style_rdg = elm_radio_add(g_font_style_genlist);
1446 elm_radio_state_value_set(ad->font_style_rdg, -1);
1448 evas_object_data_set(g_font_style_genlist, "radio_main", ad->font_style_rdg);
1450 elm_genlist_realized_items_update(g_font_style_genlist);
1452 DBG("Matched index: %d", matched_idx);
1454 elm_radio_value_set(ad->font_style_rdg, matched_idx);
1456 elm_genlist_item_class_free(itc);
1460 void _show_font_size_list(void *data)
1464 DBG("%s", "_show_screen_timeout_list - appdata is null");
1467 Evas_Object *genlist = NULL;
1468 Elm_Object_Item *nf_it = NULL;
1469 struct _dt_menu_item *menu_its = NULL;
1474 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
1475 itc->item_style = "1text.1icon.1";
1476 itc->func.text_get = _gl_font_size_title_get;
1477 itc->func.content_get = _gl_font_size_ridio_get;
1478 itc->func.del = _font_size_gl_del;
1480 Evas_Object *layout = elm_layout_add(ad->nf);
1481 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
1482 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1484 genlist = elm_genlist_add(layout);
1485 elm_genlist_block_count_set(genlist, 14);
1486 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
1487 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1489 for (idx = 0; idx < FONT_SIZE_COUNT; idx++) {
1490 Item_Data *id = calloc(sizeof(Item_Data), 1);
1493 id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _font_size_gl_cb, (void *)idx);
1497 ad->font_size_rdg = elm_radio_add(genlist);
1498 elm_radio_state_value_set(ad->font_size_rdg, 6);
1499 elm_radio_value_set(ad->font_size_rdg, screen_time_index);
1501 evas_object_data_set(genlist, "radio_main", ad->font_size_rdg);
1503 g_font_size_genlist = genlist;
1505 elm_object_part_content_set(layout, "elm.genlist", genlist);
1507 elm_genlist_item_class_free(itc);
1509 nf_it = elm_naviframe_item_push(ad->nf, "IDS_ST_BODY_FONT_SIZE_ABB", NULL, NULL, layout, NULL);
1510 #if !defined(FEATURE_SETTING_TELEPHONY)
1511 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
1513 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1516 static char *_gl_roatate_screen_title_get(void *data, Evas_Object *obj, const char *part)
1518 char buf[1024] = {0,};
1519 Item_Data *id = data;
1521 if (!strcmp(part, "elm.text")) {
1522 snprintf(buf, sizeof(buf) - 1, "%s", _(rotate_screen_str[id->index]));
1528 static Evas_Object *_gl_rotate_screen_radio_get(void *data, Evas_Object *obj, const char *part)
1530 Evas_Object *radio = NULL;
1531 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
1532 Item_Data *id = data;
1533 static int rotate = -1;
1535 if (!strcmp(part, "elm.icon")) {
1536 radio = elm_radio_add(obj);
1537 elm_radio_state_value_set(radio, id->index);
1538 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
1539 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1540 elm_radio_group_add(radio, radio_main);
1543 rotate = _get_rotate_screen();
1544 rotate_screen_rot = rotate;
1546 if (rotate == SETTING_SCREENROTATION_90_DEGREE) {
1548 rotate_screen_index = 1;
1549 } else if (rotate == SETTING_SCREENROTATION_270_DEGREE) {
1551 rotate_screen_index = 2;
1552 } else if (rotate == SETTING_SCREENROTATION_180_DEGREE) {
1554 rotate_screen_index = 3;
1558 rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
1564 static void _rotate_screen_gl_del(void *data, Evas_Object *obj)
1566 Item_Data *id = data;
1571 static void _rotate_screen_gl_cb(void *data, Evas_Object *obj, void *event_info)
1573 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
1575 rotate_screen_index = (int)data;
1577 if (rotate_screen_index == 1) {
1579 rotate_screen_rot = SETTING_SCREENROTATION_90_DEGREE;
1580 } else if (rotate_screen_index == 2) {
1582 rotate_screen_rot = SETTING_SCREENROTATION_270_DEGREE;
1583 } else if (rotate_screen_index == 3) {
1585 rotate_screen_rot = SETTING_SCREENROTATION_180_DEGREE;
1587 rotate_screen_rot = SETTING_SCREENROTATION_0_DEGREE;
1591 _set_rotate_screen(rotate_screen_rot);
1593 elm_genlist_realized_items_update(g_rotate_screen_genlist);
1595 elm_naviframe_item_pop(temp_ad->nf);
1596 if (!temp_ad->rotate_screen_rdg) {
1597 evas_object_del(temp_ad->rotate_screen_rdg);
1598 temp_ad->rotate_screen_rdg = NULL;
1602 void _show_rotate_screen_list(void *data)
1606 DBG("%s", "_show_screen_timeout_list - appdata is null");
1609 Evas_Object *genlist = NULL;
1610 Elm_Object_Item *nf_it = NULL;
1611 struct _dt_menu_item *menu_its = NULL;
1616 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
1617 itc->item_style = "1text.1icon.1";
1618 itc->func.text_get = _gl_roatate_screen_title_get;
1619 itc->func.content_get = _gl_rotate_screen_radio_get;
1620 itc->func.del = _rotate_screen_gl_del;
1622 genlist = elm_genlist_add(ad->nf);
1623 elm_genlist_block_count_set(genlist, 14);
1624 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1626 for (idx = 0; idx < ROTATE_SCREEN_COUNT; idx++) {
1627 Item_Data *id = calloc(sizeof(Item_Data), 1);
1630 id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _rotate_screen_gl_cb, (void *)idx);
1634 ad->rotate_screen_rdg = elm_radio_add(genlist);
1635 elm_radio_state_value_set(ad->rotate_screen_rdg, -1);
1636 elm_radio_value_set(ad->rotate_screen_rdg, rotate_screen_index);
1638 evas_object_data_set(genlist, "radio_main", ad->rotate_screen_rdg);
1640 g_screen_time_genlist = genlist;
1642 elm_genlist_item_class_free(itc);
1644 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
1645 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
1648 static void _set_rotate_screen(const int rotation)
1650 vconf_set_int(VCONFKEY_SETAPPL_SCREENROTATION_DEG_INT, rotation);
1653 static int _get_rotate_screen()
1656 vconf_get_int(VCONFKEY_SETAPPL_SCREENROTATION_DEG_INT, &rot);
1660 static void settings_font_style_changed_cb(system_settings_key_e key, void *user_data)
1662 DBG("settings_font_style_changed_cb");
1664 appdata *ad = user_data;
1668 char *font_name = NULL;
1669 Evas_Object *font_style_radio = NULL;
1670 if (g_font_style_genlist) {
1671 font_style_radio = evas_object_data_get(g_font_style_genlist, "radio_main");
1672 if (font_style_radio) {
1673 if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name)
1674 != SYSTEM_SETTINGS_ERROR_NONE) {
1675 ERR("failed to call system_setting_get_value_string with err");
1679 DBG("Update a font style list");
1681 DBG("System font: %s", font_name);
1684 Eina_List *font_list = NULL;
1685 Eina_List *l = NULL;
1686 Elm_Object_Item *font_item = NULL;
1687 Font_Style_Item_Data *font_data = NULL;
1689 font_list = elm_genlist_realized_items_get(g_font_style_genlist);
1690 EINA_LIST_FOREACH(font_list, l, font_item) {
1691 font_data = (Font_Style_Item_Data *) elm_object_item_data_get(font_item);
1692 if (font_name && !strcmp((const char *)font_name, (const char *)font_data->font_name)) {
1693 DBG("1: %s, 2: %s", font_name, font_data->font_name);
1694 DBG("Font style matched index : %d", index);
1695 elm_radio_value_set(font_style_radio, index);
1703 if (font_style_item) {
1704 elm_genlist_item_update(font_style_item);
1708 static Eina_Bool setting_font_style_pop_cb(void *data, Elm_Object_Item *it)
1710 DBG("setting_font_style_pop_cb");
1712 g_font_style_genlist = NULL;
1717 static Eina_Bool setting_font_list_pop_cb(void *data, Elm_Object_Item *it)
1719 DBG("setting_font_list_pop_cb");
1721 font_size_item = NULL;
1722 font_style_item = NULL;
1724 if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE) != 0) {
1725 ERR("system_settings_unset_changed_cb failed!!");
1731 static void change_language_enabling(keynode_t *key, void *data)
1733 if (lang_item == NULL) {
1734 DBG("Setting - lang_item is null!!");
1739 vconf_get_bool(VCONFKEY_WMS_WMANAGER_CONNECTED, &enable);
1741 DBG("Setting - Language is disabled");
1743 DBG("Setting - Language is enabled");
1747 elm_genlist_item_update(lang_item);
1751 static void change_screen_time_cb(keynode_t *key, void *data)
1753 DBG("Setting - change_screen_time_cb");
1755 if (screen_time_item) {
1756 elm_genlist_item_update(screen_time_item);
1760 static void change_language_cb(keynode_t *key, void *data)
1762 DBG("Setting - change_language_cb");
1765 elm_genlist_item_update(lang_item);
1770 static void _display_brightness_cb(void *data, Evas_Object *obj, void *event_info)
1772 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
1774 Evas_Object *layout = NULL;
1775 Elm_Object_Item *navi_it = NULL;
1780 layout = _show_brightness_popup(ad, obj, event_info);
1784 evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_IN, _power_off_popup_dismiss_cb, NULL);
1786 navi_it = elm_naviframe_item_push(ad->nf, "IDS_ST_BUTTON_BRIGHTNESS", NULL, NULL, layout, NULL);
1787 elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
1788 elm_naviframe_item_pop_cb_set(navi_it, _brightness_pop_cb, NULL);
1790 register_vconf_changing(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, brightness_vconf_changed_cb, NULL);
1794 Evas_Object *_show_brightness_popup(void *data, Evas_Object *obj, void *event_info)
1801 int brightness_level = 0;
1808 pd = (spin_date *) malloc(sizeof(spin_date));
1810 int real_brightness = 0;
1811 device_get_brightness(0, &real_brightness);
1812 DBG("Setting - Real brightness : %d", real_brightness);
1814 /* Vconf brightness level */
1815 vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &brightness_level);
1817 if (real_brightness != brightness_level) { /* HBM mode -> normal level(4) */
1818 sync_brightness(real_brightness);
1820 brightness_level = real_brightness;
1823 int enable = display_get_hbm();
1825 DBG("Setting - dispaly_get_hbm() is fail!!");
1828 if (enable == TRUE) {
1829 DBG("Setting - current HBM mode!!");
1830 brightness_index = 6;
1832 brightness_index = _change_bright_lovel_to_index(brightness_level);
1835 DBG("Setting - level: %d, index: %d", brightness_level, brightness_index);
1837 brightness_origin_level = brightness_level;
1839 ly = elm_layout_add(ad->nf);
1840 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default2");
1841 evas_object_size_hint_min_set(ly, 320, 200);
1842 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1843 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
1845 brightness_layout = ly;
1847 pd->spinner = elm_spinner_add(ly);
1848 elm_object_style_set(pd->spinner, "brightnessstyle");
1849 elm_spinner_editable_set(pd->spinner, EINA_TRUE);
1850 elm_spinner_min_max_set(pd->spinner, 1, 6);
1851 evas_object_smart_callback_add(pd->spinner, "changed", _on_spinner_change_cb, pd);
1852 elm_object_part_content_set(ly, "elm.icon.1", pd->spinner);
1853 elm_spinner_value_set(pd->spinner, brightness_index);
1854 _update_brightness_circle(pd->spinner);
1856 btn = elm_button_add(ly);
1857 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1858 elm_object_translatable_text_set(btn, "IDS_ST_BUTTON_CANCEL_ABB2");
1859 elm_object_part_content_set(ly, "btn1", btn);
1860 evas_object_smart_callback_add(btn, "clicked", _set_cancel_cb, ad);
1862 btn = elm_button_add(ly);
1863 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1864 elm_object_translatable_text_set(btn, "IDS_WNOTI_BUTTON_OK_ABB2");
1865 elm_object_part_content_set(ly, "btn2", btn);
1866 evas_object_smart_callback_add(btn, "clicked", _set_brightness_clicked_cb, ad);
1868 hbm_mode_on_original = enable; /* backup for cancel */
1870 g_spinner = pd->spinner;
1875 static void _on_spinner_change_cb(void *data, Evas_Object *obj, void *event_info)
1877 DBG("Setting - _on_spinner_change_cb() is called!");
1881 static int prev = 0;
1883 int idx = (int) elm_spinner_value_get(obj);
1885 edje_object_part_geometry_get(elm_layout_edje_get(obj), "center.image2", NULL, NULL, &w, NULL);
1886 elm_spinner_min_max_get(obj, &min, &max);
1888 DBG("Setting - min: %i, max: %i, idx: %d", (int)min, (int)max, idx);
1891 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,full", "elm");
1893 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,default", "elm");
1895 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,min", "elm");
1897 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,normal", "elm");
1900 brightness_index = idx;
1902 if (brightness_index > 0 && brightness_index < 6) {
1903 int enable = display_get_hbm();
1905 DBG("Setting - dispaly_get_hbm() is fail!!");
1906 } else if (enable == TRUE) {
1907 DBG("Setting - current HBM mode!!");
1909 elm_object_part_text_set(brightness_layout, "elm.text.2", "");
1911 _set_HBM_mode(FALSE);
1913 /*set off sequnce : hbm off -> bright level down */
1914 int brightness_level = _change_bright_index_to_level(brightness_index);
1915 device_set_brightness_to_settings(0, brightness_level);
1916 vconf_set_int("db/setting/Brightness", brightness_level);
1917 } else if (brightness_index == 6) {
1918 DBG("Setting - HBM mode on!!");
1920 _set_HBM_mode(TRUE);
1922 elm_object_translatable_part_text_set(brightness_layout, "elm.text.2", "IDS_ST_BODY_OUTDOOR_MODE_ABB");
1925 double posx2 = (double)(w / max) * brightness_index;
1928 edje_object_part_drag_value_set(elm_layout_edje_get(obj), "elm.dragable.slider", posx2, 0);
1931 static Eina_Bool _brightness_pop_cb(void *data, Elm_Object_Item *it)
1933 DBG("Setting - brightness_pop_cb() is called!");
1936 DBG("Setting - Free pd!");
1940 unregister_vconf_changing(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, brightness_vconf_changed_cb);
1945 static void _power_off_popup_dismiss_cb(void *data, Evas_Object *obj, void *event_info)
1947 DBG("Setting - _power_off_popup_dismiss_cb() is called!");
1949 int brightness_level = 0;
1950 vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &brightness_level);
1951 brightness_index = _change_bright_lovel_to_index(brightness_level);
1954 int enable = display_get_hbm();
1956 brightness_index = 6;
1958 elm_spinner_value_set(g_spinner, brightness_index);
1959 _update_brightness_circle(g_spinner);
1963 static void brightness_vconf_changed_cb(keynode_t *key, void *data)
1965 DBG("Setting - brightness vconf changed!!");
1967 int brightness_level = 0;
1968 brightness_level = vconf_keynode_get_int(key);
1969 brightness_index = _change_bright_lovel_to_index(brightness_level);
1972 int enable = display_get_hbm();
1974 brightness_index = 6;
1976 elm_spinner_value_set(g_spinner, brightness_index);
1977 _update_brightness_circle(g_spinner);
1981 static void _set_brightness_clicked_cb(void *data, Evas_Object *obj, void *event_info)
1983 appdata *ad = (appdata *) data;
1987 int enable = display_get_hbm();
1988 if (enable == TRUE) {
1990 snprintf(buf, sizeof(buf) - 1, _("IDS_IDLE_POP_AFTER_P1SD_MINS_BRIGHTNESS_WILL_BE_RESET_TO_DEFAULT_LEVEL_HP2SD"), 5, 4);
1992 /* show toast - automatic freed!! */
1993 struct _toast_data *toast = _create_toast(ad, buf);
1995 _show_toast(ad, toast);
1998 int brightness_level = _change_bright_index_to_level(brightness_index);
2000 device_set_brightness_to_settings(0, brightness_level);
2003 brightness_layout = NULL;
2004 g_brightness_controller = NULL;
2007 elm_naviframe_item_pop(ad->nf);
2011 static void sync_brightness(int real_brightness)
2013 DBG("Setting - Synchronized brightness level");
2015 vconf_set_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, real_brightness);
2018 static void _update_brightness_circle(Evas_Object *spiner)
2024 double min, max, posx2;
2025 int idx = (int) elm_spinner_value_get(spiner);
2027 edje_object_part_geometry_get(elm_layout_edje_get(spiner), "center.image2", NULL, NULL, &w, NULL);
2028 elm_spinner_min_max_get(spiner, &min, &max);
2030 int enable = display_get_hbm();
2032 DBG("Setting - dispaly_get_hbm() is fail!!");
2035 if (enable == TRUE) {
2036 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,full1", "elm");
2038 elm_object_part_text_set(brightness_layout, "elm.text.2", _("IDS_ST_BODY_OUTDOOR_MODE_ABB"));
2041 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,min", "elm");
2043 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,full1", "elm");
2045 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,default1", "elm");
2047 brightness_index = idx;
2049 posx2 = (double)(w / max) * brightness_index;
2051 edje_object_part_drag_value_set(elm_layout_edje_get(spiner), "elm.dragable.slider", posx2, 0);
2053 elm_object_part_text_set(brightness_layout, "elm.text.2", "");
2057 static void wake_up_vconf_changed_cb(keynode_t *key, void *data)
2059 DBG("Setting - motion_vconf_changed_cb() is called!");
2062 elm_genlist_item_update(wake_up_item);
2066 static void icon_size_vconf_changed_cb(keynode_t *key, void *data)
2068 DBG("Setting - icon_size_vconf_changed_cb() is called!");
2070 if (edit_icon_item) {
2071 elm_genlist_item_update(edit_icon_item);
2075 static void _set_cancel_cb(void *data, Evas_Object *obj, void *event_info)
2081 int enable = display_get_hbm();
2082 if (hbm_mode_on_original) {
2083 if (enable == DISABLE) {
2084 _set_HBM_mode(TRUE);
2087 if (enable == ENABLE) {
2088 _set_HBM_mode(FALSE);
2092 device_set_brightness_to_settings(0, brightness_origin_level);
2094 brightness_layout = NULL;
2095 g_brightness_controller = NULL;
2097 elm_naviframe_item_pop(ad->nf);
2100 static int _change_bright_lovel_to_index(int level)
2104 if (level >= 20 && level <= 100) {
2105 index = (level / 20);
2106 DBG("Setting - level -> index : %d", index);
2111 static int _change_bright_index_to_level(int index)
2114 if (index > 0 && index < 6) {
2134 DBG("Setting - index -> level : %d", level);
2139 static void _set_HBM_mode(int enable)
2141 if (display_enable_hbm(enable, 300) == 0) { /* after 5 minutes, HBM mode will be off! */
2142 DBG("Setting - HBM %s!!", (enable) ? "enabled" : "disabled");
2144 DBG("Setting - HBM api failed!!");
2151 void _display_ambient_mode_cb(void *data, Evas_Object *obj, void *event_info)
2153 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
2156 DBG("%s", "_display_gl_ambient_mode_cb - appdata or check is null");
2159 display_menu_its[3].is_enable_ambient_mode = display_menu_its[3].is_enable_ambient_mode ? 0 : 1;
2160 DBG("is_enable_ambient_mode: %d", display_menu_its[3].is_enable_ambient_mode);
2161 vconf_set_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, display_menu_its[3].is_enable_ambient_mode);
2163 elm_genlist_item_selected_set(it, EINA_FALSE);
2165 elm_genlist_item_update(it);