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: Jan 14, 2014
24 #include "setting-safety.h"
26 #include "setting_debug.h"
27 #include "setting_data_vconf.h"
30 static struct _safety_menu_item safety_menu_list[] = {
31 { "IDS_ST_MBODY_ULTRA_POWER_SAVING_MODE", NULL, _emergency_mode_cb },
32 /* { "Trauma", NULL, _trauma_cb }, */
33 /* { "No activity", NULL, _no_activity_cb }, */
34 /* { "Set interval", NULL, _set_interval_cb }, */
35 { "IDS_ST_MBODY_HELP", NULL, _help_cb }
38 static struct _set_interval_menu_item interval_menu_list[] = {
39 { "Trauma", "Warning %s", _trauma_interval_cb },
40 { "No activity", "Warning %s", _no_activity_interval_cb }
43 static struct _interval_trauma_menu_item interval_trauma_time_arr[] = {
44 { "After %s seconds", "30" },
45 { "After %s minute" , "1" },
46 { "After %s minutes", "5" },
47 { "After %s minutes", "10" },
48 { "After %s minutes", "20" },
51 static char *interval_no_activity_hour_arr[] = {
56 static Safety_Data safety_data;
57 static Evas_Object *g_safety_genlist = NULL;
60 static void _emergency_mode_vconf_changed_cb(keynode_t *key, void *data);
63 void initialize_safety()
65 DBG("initialize safety");
67 safety_data.g_safety_genlist = NULL;
68 safety_data.temp_ad = NULL;
70 safety_data.interval_no_activity = 0;
71 safety_data.interval_trauma = 0;
72 safety_data.is_enable_no_activity = 0;
73 safety_data.is_enable_trauma = 0;
74 safety_data.is_support_emergency = 0;
76 vconf_get_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, &safety_data.is_enable_emergency_mode);
77 register_vconf_changing(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, _emergency_mode_vconf_changed_cb, NULL);
80 Eina_Bool clear_safety_cb(void *data, Elm_Object_Item *it)
82 g_safety_genlist = NULL;
84 unregister_vconf_changing(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, _emergency_mode_vconf_changed_cb);
89 static void _emergency_mode_vconf_changed_cb(keynode_t *key, void *data)
91 DBG("Setting - _emergency_mode_vconf_changed_cb() is called!");
93 int enable = vconf_keynode_get_bool(key);
95 if (enable == safety_data.is_enable_emergency_mode) {
96 DBG("Setting - this value was set from Setting!!");
99 DBG("Setting - this value is set from WMS");
101 safety_data.is_enable_emergency_mode = enable;
102 if (g_safety_genlist) {
103 elm_genlist_realized_items_update(g_safety_genlist);
108 static void _emergency_mode_cb(void *data, Evas_Object *obj, void *event_info)
110 DBG("emergency_mode_cb() is called.");
112 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
113 elm_genlist_item_selected_set(it, EINA_FALSE);
117 DBG("%s", "_emergency_mode_cb - ad is null");
121 if (safety_data.is_enable_emergency_mode) {
122 /*confirm popup ok to off to device restart */
123 _disable_emergency_popup_cb(data, obj, event_info);
125 safety_data.is_enable_emergency_mode = !safety_data.is_enable_emergency_mode;
126 vconf_set_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, safety_data.is_enable_emergency_mode);
128 /*DBG("Setting - Emergency mode is %d", safety_data.is_enable_emergency_mode); */
129 /*elm_genlist_item_update(it); */
130 elm_exit(); /*gonna be changed regarding freezer */
134 static void _trauma_cb(void *data, Evas_Object *obj, void *event_info)
136 DBG("trauma_cb() is called.");
138 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
139 elm_genlist_item_selected_set(it, EINA_FALSE);
143 DBG("%s", "_emergency_mode_cb - ad is null");
147 safety_data.is_enable_trauma = !safety_data.is_enable_trauma;
149 elm_genlist_item_update(it);
152 static void _no_activity_cb(void *data, Evas_Object *obj, void *event_info)
154 DBG("_no_activity_cb() is called.");
156 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
157 elm_genlist_item_selected_set(it, EINA_FALSE);
161 DBG("%s", "_no_activity_cb - ad is null");
165 safety_data.is_enable_no_activity = !safety_data.is_enable_no_activity;
167 elm_genlist_item_update(it);
170 static void _set_interval_cb(void *data, Evas_Object *obj, void *event_info)
172 DBG("_set_interval_cb() is called.");
174 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
178 DBG("%s", "_set_interval_cb - ad is null");
182 show_interval_list(ad);
185 static void _help_cb(void *data, Evas_Object *obj, void *event_info)
187 DBG("_help_cb() is called.");
189 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
193 DBG("%s", "_help_cb - ad is null");
196 _help_popup_cb(data, obj, event_info);
199 static int _is_enable(int index)
201 int enable = DISABLE;
204 vconf_get_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, &safety_data.is_enable_emergency_mode);
205 enable = safety_data.is_enable_emergency_mode;
208 enable = safety_data.is_enable_trauma;
211 enable = safety_data.is_enable_no_activity;
221 static char *_gl_safety_title_get(void *data, Evas_Object *obj, const char *part)
223 char buf[1024] = {0,};
224 Safety_Item_Data *id = data;
225 int index = id->index;
227 if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.text")) {
228 snprintf(buf, sizeof(buf) - 1, "%s", _(safety_menu_list[index].name));
229 } else if (!strcmp(part, "elm.text.2")) {
230 snprintf(buf, sizeof(buf) - 1, "%s", _is_enable(index) ? _("IDS_EMAIL_BODY_ENABLED_M_STATUS") : _("IDS_ST_BODY_DISABLED_M_STATUS"));
235 Evas_Object *_gl_safety_check_get(void *data, Evas_Object *obj, const char *part)
237 Evas_Object *check = NULL;
240 Safety_Item_Data *id = data;
241 int index = id->index;
243 if (!strcmp(part, "elm.icon")) {
244 check = elm_check_add(obj);
245 elm_check_state_set(check, _is_enable(index) ? EINA_TRUE : EINA_FALSE);
246 evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
247 evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
253 static void _gl_safety_del(void *data, Evas_Object *obj)
255 Safety_Item_Data *id = data;
263 _gl_menu_title_text_get(void *data, Evas_Object *obj, const char *part)
267 snprintf(buf, 1023, "%s", "Safety");
271 Evas_Object *create_safety_list(void *data)
273 DBG("create_safety_list() is called.");
277 ERR("appdata is null!!");
281 Evas_Object *genlist = NULL;
282 Evas_Object *layout = NULL;
283 Elm_Object_Item *nf_it = NULL;
284 Elm_Genlist_Item_Class *itc_temp = NULL;
285 struct _safety_menu_item *menu_list = NULL;
288 Elm_Genlist_Item_Class *itc_1text_1check = elm_genlist_item_class_new();
289 itc_1text_1check->item_style = "1text.1icon.1";
290 itc_1text_1check->func.text_get = _gl_safety_title_get;
291 itc_1text_1check->func.content_get = _gl_safety_check_get;
292 itc_1text_1check->func.del = _gl_safety_del;
294 Elm_Genlist_Item_Class *itc_2text_1check = elm_genlist_item_class_new();
295 itc_2text_1check->item_style = "2text.1icon.1";
296 itc_2text_1check->func.text_get = _gl_safety_title_get;
297 itc_2text_1check->func.content_get = _gl_safety_check_get;
298 itc_2text_1check->func.del = _gl_safety_del;
300 Elm_Genlist_Item_Class *itc_1text = elm_genlist_item_class_new();
301 itc_1text->item_style = "1text";
302 itc_1text->func.text_get = _gl_safety_title_get;
303 itc_1text->func.del = _gl_safety_del;
305 layout = elm_layout_add(ad->nf);
306 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
307 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
309 genlist = elm_genlist_add(layout);
310 elm_genlist_block_count_set(genlist, 14);
311 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
313 menu_list = safety_menu_list;
316 Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
317 title_item ->func.text_get = _gl_menu_title_text_get;
318 title_item->item_style = "title";
319 title_item->func.del = _gl_safety_del;
321 elm_genlist_item_append(genlist, title_item, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
323 elm_genlist_item_class_free(title_item);
326 count = sizeof(safety_menu_list) / sizeof(struct _safety_menu_item);
328 for (idx = 0; idx < count; idx++) {
330 itc_temp = itc_2text_1check;
333 else if (idx > 0 && idx < 3) {
334 itc_temp = itc_1text_1check;
338 itc_temp = itc_1text;
341 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
344 id->item = elm_genlist_item_append(
345 genlist, /* genlist object */
346 itc_temp, /* item class */
349 ELM_GENLIST_ITEM_NONE,
350 menu_list[idx].func, /* call back */
353 vconf_get_bool("db/setting/support_emergency", &safety_data.is_support_emergency);
354 /*not support list for emergency mode */
355 if (!safety_data.is_support_emergency)
356 elm_object_item_disabled_set(id->item, EINA_TRUE);
361 elm_genlist_item_class_free(itc_2text_1check);
362 elm_genlist_item_class_free(itc_1text_1check);
363 elm_genlist_item_class_free(itc_1text);
366 Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
367 padding->item_style = "padding";
368 padding->func.del = _gl_safety_del;
370 elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
371 elm_genlist_item_class_free(padding);
373 elm_object_part_content_set(layout, "elm.genlist", genlist);
378 static void _trauma_interval_cb(void *data, Evas_Object *obj, void *event_info)
380 DBG("_trauma_interval_cb() is called.");
382 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
384 _show_interval_trauma_list(data);
387 static void _no_activity_interval_cb(void *data, Evas_Object *obj, void *event_info)
389 DBG("_no_activity_interval_cb() is called.");
391 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
393 _show_interval_no_activity_list(data);
396 static char *_gl_interval_title_get(void *data, Evas_Object *obj, const char *part)
398 DBG("_gl_interval_title_get() is called.");
400 char buf[1024] = {0,};
401 Safety_Item_Data *id = data;
402 int index = id->index;
404 if (!strcmp(part, "elm.text.1")) {
405 snprintf(buf, sizeof(buf) - 1, "%s", interval_menu_list[index].title);
406 } else if (!strcmp(part, "elm.text.2")) {
407 snprintf(buf, sizeof(buf) - 1, interval_menu_list[index].sub_title, "after 30 seconds");
412 static void show_interval_list(void *data)
414 DBG("show_interval_list() is called.");
418 ERR("appdata is null!!");
422 Evas_Object *genlist = NULL;
423 Evas_Object *layout = NULL;
424 Elm_Object_Item *nf_it = NULL;
425 struct _set_interval_menu_item *menu_list = NULL;
428 Elm_Genlist_Item_Class *itc_2text = elm_genlist_item_class_new();
429 itc_2text->item_style = "2text";
430 itc_2text->func.text_get = _gl_interval_title_get;
431 itc_2text->func.del = _gl_safety_del;
433 layout = elm_layout_add(ad->nf);
434 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
435 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
437 genlist = elm_genlist_add(layout);
438 elm_genlist_block_count_set(genlist, 14);
439 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
441 menu_list = interval_menu_list;
444 count = sizeof(interval_menu_list) / sizeof(struct _set_interval_menu_item);
446 for (idx = 0; idx < count; idx++) {
447 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
450 id->item = elm_genlist_item_append(
451 genlist, /* genlist object */
452 itc_2text, /* item class */
455 ELM_GENLIST_ITEM_NONE,
456 menu_list[idx].func, /* call back */
461 elm_genlist_item_class_free(itc_2text);
463 elm_object_part_content_set(layout, "elm.genlist", genlist);
465 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
466 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
470 static char *_gl_interval_trauma_title_get(void *data, Evas_Object *obj, const char *part)
472 DBG("_gl_interval_trauma_title_get() is called.");
474 char buf[512] = {0,};
475 Safety_Item_Data *id = data;
477 if (!strcmp(part, "elm.text")) {
478 snprintf(buf, sizeof(buf) - 1, interval_trauma_time_arr[id->index].str,
479 interval_trauma_time_arr[id->index].time);
484 static Evas_Object *_gl_interval_trauma_ridio_get(void *data, Evas_Object *obj, const char *part)
486 DBG("_gl_interval_trauma_ridio_get() is called.");
488 Evas_Object *radio = NULL;
489 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
490 Safety_Item_Data *id = data;
492 if (!strcmp(part, "elm.icon")) {
493 radio = elm_radio_add(obj);
494 elm_radio_state_value_set(radio, id->index);
495 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
496 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
497 elm_radio_group_add(radio, radio_main);
499 if (safety_data.interval_trauma == id->index) {
500 elm_radio_value_set(radio_main, safety_data.interval_trauma);
506 static void _trauma_interval_radio_cb(void *data, Evas_Object *obj, void *event_info)
508 DBG("_trauma_interval_radio_cb is called!");
510 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
512 DBG("selected trauma interval : %d", (int *)data);
514 if (safety_data.temp_ad) {
515 elm_naviframe_item_pop(safety_data.temp_ad->nf);
519 static void _show_interval_trauma_list(void *data)
521 DBG("_show_interval_trauma_list() is called.");
525 ERR("%s", "_show_interval_trauma_list - appdata is null");
528 Evas_Object *genlist = NULL;
529 Elm_Object_Item *nf_it = NULL;
532 safety_data.temp_ad = ad;
534 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
535 itc->item_style = "1text.1icon.1";
536 itc->func.text_get = _gl_interval_trauma_title_get;
537 itc->func.content_get = _gl_interval_trauma_ridio_get;
538 itc->func.del = _gl_safety_del;
540 genlist = elm_genlist_add(ad->nf);
541 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
543 const int count = sizeof(interval_trauma_time_arr) / sizeof(interval_trauma_time_arr[0]);
544 for (idx = 0; idx < count; idx++) {
545 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
548 id->item = elm_genlist_item_append(genlist,
552 ELM_GENLIST_ITEM_NONE,
553 _trauma_interval_radio_cb,
558 ad->safety_interval_trauma_rdg = elm_radio_add(genlist);
559 elm_radio_state_value_set(ad->safety_interval_trauma_rdg, count);
560 elm_radio_value_set(ad->safety_interval_trauma_rdg, count);
562 evas_object_data_set(genlist, "radio_main", ad->safety_interval_trauma_rdg);
564 elm_genlist_item_class_free(itc);
566 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
567 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
570 static char *_gl_interval_no_activity_title_get(void *data, Evas_Object *obj, const char *part)
572 char buf[512] = {0,};
573 Safety_Item_Data *id = data;
575 if (!strcmp(part, "elm.text")) {
576 snprintf(buf, sizeof(buf) - 1, "After %s hours", interval_no_activity_hour_arr[id->index]);
581 static Evas_Object *_gl_interval_no_activity_ridio_get(void *data, Evas_Object *obj, const char *part)
583 Evas_Object *radio = NULL;
584 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
585 Safety_Item_Data *id = data;
587 if (!strcmp(part, "elm.icon")) {
588 radio = elm_radio_add(obj);
589 elm_radio_state_value_set(radio, id->index);
590 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
591 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
592 elm_radio_group_add(radio, radio_main);
594 if (safety_data.interval_no_activity == id->index) {
595 elm_radio_value_set(radio_main, safety_data.interval_no_activity);
601 static void _no_activity_interval_radio_cb(void *data, Evas_Object *obj, void *event_info)
603 DBG("_no_activity_interval_radio_cb is called!");
605 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
607 DBG("selected no activity interval : %d", (int *)data);
609 if (safety_data.temp_ad) {
610 elm_naviframe_item_pop(safety_data.temp_ad->nf);
614 static void _show_interval_no_activity_list(void *data)
616 DBG("_show_interval_no_activity_list() is called.");
620 ERR("%s", "_show_interval_no_activity_list - appdata is null");
623 Evas_Object *genlist = NULL;
624 Elm_Object_Item *nf_it = NULL;
627 safety_data.temp_ad = ad;
629 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
630 itc->item_style = "1text.1icon.1";
631 itc->func.text_get = _gl_interval_no_activity_title_get;
632 itc->func.content_get = _gl_interval_no_activity_ridio_get;
633 itc->func.del = _gl_safety_del;
635 genlist = elm_genlist_add(ad->nf);
636 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
638 const int count = sizeof(interval_no_activity_hour_arr) / sizeof(interval_no_activity_hour_arr[0]);
639 for (idx = 0; idx < count; idx++) {
640 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
643 id->item = elm_genlist_item_append(genlist,
647 ELM_GENLIST_ITEM_NONE,
648 _no_activity_interval_radio_cb,
653 ad->safety_interval_no_activity_rdg = elm_radio_add(genlist);
654 elm_radio_state_value_set(ad->safety_interval_no_activity_rdg, count);
655 elm_radio_value_set(ad->safety_interval_no_activity_rdg, count);
657 evas_object_data_set(genlist, "radio_main", ad->safety_interval_no_activity_rdg);
659 elm_genlist_item_class_free(itc);
661 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
662 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
665 void _help_popup_cb(void *data, Evas_Object *obj, void *event_info)
667 Evas_Object *popup = NULL;
668 Evas_Object *btn = NULL;
669 Evas_Object *scroller = NULL;
670 Evas_Object *label = NULL;
672 appdata *ad = (appdata *) data;
676 popup = elm_popup_add(ad->nf);
677 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
678 elm_object_part_text_set(popup, "title,text", _("IDS_ST_MBODY_HELP"));
682 scroller = elm_scroller_add(popup);
683 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
684 elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
685 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
686 elm_object_content_set(popup, scroller);
687 evas_object_show(scroller);
689 label = elm_label_add(scroller);
690 elm_object_style_set(label, "popup/default");
691 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
692 char *txt = elm_entry_utf8_to_markup(_("IDS_ST_BODY_THE_HOME_SCREEN_WILL_BE_CHANGED_TO_THE_BLACK_THEME_TO_REDUCE_BATTERY_CONSUMPTION_MSG"));
693 elm_object_text_set(label, txt);
695 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
696 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
697 elm_object_content_set(scroller, label);
698 evas_object_show(label);
700 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, setting_popup_back_cb, ad);
702 evas_object_show(popup);
705 static void _disable_emergency_cancel_cb(void *data, Evas_Object *obj, void *event_info)
707 appdata *ad = (appdata *) data;
712 evas_object_del(data);
717 static void _disable_emergency_ok_cb(void *data, Evas_Object *obj, void *event_info)
722 DBG("%s", "_disable_emergency_ok_cb : appdata is null");
727 evas_object_del(data);
731 safety_data.is_enable_emergency_mode = EINA_FALSE;
732 vconf_set_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, safety_data.is_enable_emergency_mode);
733 vconf_set_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, VCONFKEY_SYSMAN_POWER_OFF_RESTART);
736 void _disable_emergency_popup_cb(void *data, Evas_Object *obj, void *event_info)
738 Evas_Object *popup = NULL;
739 Evas_Object *btn = NULL;
740 Evas_Object *scroller = NULL;
741 Evas_Object *label = NULL;
743 appdata *ad = (appdata *) data;
747 popup = elm_popup_add(ad->nf);
748 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
749 elm_object_part_text_set(popup, "title,text", _("Disable Ultra power saving mode"));
753 scroller = elm_scroller_add(popup);
754 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
755 elm_object_content_set(popup, scroller);
756 evas_object_show(scroller);
758 label = elm_label_add(scroller);
759 elm_object_style_set(label, "popup/default");
760 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
761 char *txt = elm_entry_utf8_to_markup(_("IDS_ST_POP_TO_DISABLE_ULTRA_POWER_SAVING_MODE_YOUR_DEVICE_WILL_RESTART"));
762 elm_object_text_set(label, txt);
764 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
765 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
766 elm_object_content_set(scroller, label);
767 evas_object_show(label);
769 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, setting_popup_back_cb, ad);
771 btn = elm_button_add(popup);
772 elm_object_style_set(btn, "default");
773 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
774 elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
775 elm_object_part_content_set(popup, "button1", btn);
776 evas_object_smart_callback_add(btn, "clicked", _disable_emergency_cancel_cb, popup);
778 btn = elm_button_add(popup);
779 elm_object_style_set(btn, "default");
780 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
781 elm_object_text_set(btn, _("IDS_WNOTI_BUTTON_OK_ABB2"));
782 elm_object_part_content_set(popup, "button2", btn);
783 evas_object_smart_callback_add(btn, "clicked", _disable_emergency_ok_cb, popup);
785 evas_object_show(popup);