2 * Copyright (c) 2010 Samsung Electronics, Inc.
5 * This software is a confidential and proprietary information
6 * of Samsung Electronics, Inc. ("Confidential Information"). You
7 * shall not disclose such Confidential Information and shall use
8 * it only in accordance with the terms of the license agreement
9 * you entered into with Samsung Electronics.
14 * Created on: Jan 14, 2014
18 #include "setting-safety.h"
20 #include "setting_debug.h"
21 #include "setting_data_vconf.h"
24 static struct _safety_menu_item safety_menu_list[] = {
25 { "IDS_ST_MBODY_ULTRA_POWER_SAVING_MODE", NULL, _emergency_mode_cb },
26 // { "Trauma", NULL, _trauma_cb },
27 // { "No activity", NULL, _no_activity_cb },
28 // { "Set interval", NULL, _set_interval_cb },
29 { "IDS_ST_MBODY_HELP", NULL, _help_cb }
32 static struct _set_interval_menu_item interval_menu_list[] = {
33 { "Trauma", "Warning %s", _trauma_interval_cb },
34 { "No activity", "Warning %s", _no_activity_interval_cb }
37 static struct _interval_trauma_menu_item interval_trauma_time_arr[] = {
38 { "After %s seconds", "30" },
39 { "After %s minute" , "1" },
40 { "After %s minutes", "5" },
41 { "After %s minutes", "10" },
42 { "After %s minutes", "20" },
45 static char * interval_no_activity_hour_arr[] = {
50 static Safety_Data safety_data;
51 static Evas_Object * g_safety_genlist = NULL;
54 static void _emergency_mode_vconf_changed_cb(keynode_t * key, void * data);
57 void initialize_safety()
59 DBG("initialize safety");
61 safety_data.g_safety_genlist = NULL;
62 safety_data.temp_ad = NULL;
64 safety_data.interval_no_activity = 0;
65 safety_data.interval_trauma = 0;
66 safety_data.is_enable_no_activity = 0;
67 safety_data.is_enable_trauma = 0;
68 safety_data.is_support_emergency = 0;
70 vconf_get_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, &safety_data.is_enable_emergency_mode);
71 register_vconf_changing(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, _emergency_mode_vconf_changed_cb, NULL);
74 Eina_Bool clear_safety_cb(void *data, Elm_Object_Item *it)
76 g_safety_genlist = NULL;
78 unregister_vconf_changing(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, _emergency_mode_vconf_changed_cb);
83 static void _emergency_mode_vconf_changed_cb(keynode_t * key, void * data)
85 DBG("Setting - _emergency_mode_vconf_changed_cb() is called!");
87 int enable = vconf_keynode_get_bool(key);
89 if( enable == safety_data.is_enable_emergency_mode )
91 DBG("Setting - this value was set from Setting!!");
96 DBG("Setting - this value is set from WMS");
98 safety_data.is_enable_emergency_mode = enable;
99 if( g_safety_genlist )
101 elm_genlist_realized_items_update(g_safety_genlist);
106 static void _emergency_mode_cb(void *data, Evas_Object *obj, void *event_info)
108 DBG("emergency_mode_cb() is called.");
110 Elm_Object_Item* it = (Elm_Object_Item *)event_info;
111 elm_genlist_item_selected_set(it, EINA_FALSE);
116 DBG("%s", "_emergency_mode_cb - ad is null");
120 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);
127 safety_data.is_enable_emergency_mode = !safety_data.is_enable_emergency_mode;
128 vconf_set_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, safety_data.is_enable_emergency_mode);
130 //DBG("Setting - Emergency mode is %d", safety_data.is_enable_emergency_mode);
131 //elm_genlist_item_update(it);
132 elm_exit(); //gonna be changed regarding freezer
136 static void _trauma_cb(void *data, Evas_Object *obj, void *event_info)
138 DBG("trauma_cb() is called.");
140 Elm_Object_Item* it = (Elm_Object_Item *)event_info;
141 elm_genlist_item_selected_set(it, EINA_FALSE);
146 DBG("%s", "_emergency_mode_cb - ad is null");
150 safety_data.is_enable_trauma = !safety_data.is_enable_trauma;
152 elm_genlist_item_update(it);
155 static void _no_activity_cb(void *data, Evas_Object *obj, void *event_info)
157 DBG("_no_activity_cb() is called.");
159 Elm_Object_Item* it = (Elm_Object_Item *)event_info;
160 elm_genlist_item_selected_set(it, EINA_FALSE);
165 DBG("%s", "_no_activity_cb - ad is null");
169 safety_data.is_enable_no_activity = !safety_data.is_enable_no_activity;
171 elm_genlist_item_update(it);
174 static void _set_interval_cb(void *data, Evas_Object *obj, void *event_info)
176 DBG("_set_interval_cb() is called.");
178 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
183 DBG("%s", "_set_interval_cb - ad is null");
187 show_interval_list(ad);
190 static void _help_cb(void *data, Evas_Object *obj, void *event_info)
192 DBG("_help_cb() is called.");
194 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
199 DBG("%s", "_help_cb - ad is null");
202 _help_popup_cb(data, obj, event_info);
205 static int _is_enable(int index)
207 int enable = DISABLE;
211 vconf_get_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, &safety_data.is_enable_emergency_mode);
212 enable = safety_data.is_enable_emergency_mode;
215 enable = safety_data.is_enable_trauma;
218 enable = safety_data.is_enable_no_activity;
228 static char * _gl_safety_title_get(void *data, Evas_Object *obj, const char *part)
231 Safety_Item_Data *id = data;
232 int index = id->index;
234 if( !strcmp(part, "elm.text.1") || !strcmp(part, "elm.text") )
236 snprintf(buf, sizeof(buf)-1, "%s", _(safety_menu_list[index].name));
238 else if( !strcmp(part, "elm.text.2") )
240 snprintf(buf, sizeof(buf)-1, "%s", _is_enable(index) ? _("IDS_EMAIL_BODY_ENABLED_M_STATUS") : _("IDS_ST_BODY_DISABLED_M_STATUS"));
245 Evas_Object * _gl_safety_check_get(void *data, Evas_Object *obj, const char *part)
247 Evas_Object *check = NULL;
250 Safety_Item_Data *id = data;
251 int index = id->index;
253 if( !strcmp(part, "elm.icon") )
255 check = elm_check_add(obj);
256 elm_check_state_set(check, _is_enable(index) ? EINA_TRUE : EINA_FALSE);
257 evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
258 evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
264 static void _gl_safety_del(void *data, Evas_Object *obj)
266 Safety_Item_Data *id = data;
273 Evas_Object *create_safety_list(void *data)
275 DBG("create_safety_list() is called.");
280 ERR("appdata is null!!");
284 Evas_Object *genlist = NULL;
285 Evas_Object *layout = NULL;
286 Elm_Object_Item *nf_it = NULL;
287 Elm_Genlist_Item_Class *itc_temp = NULL;
288 struct _safety_menu_item *menu_list = NULL;
291 Elm_Genlist_Item_Class *itc_1text_1check = elm_genlist_item_class_new();
292 itc_1text_1check->item_style = "1text.1icon.1";
293 itc_1text_1check->func.text_get = _gl_safety_title_get;
294 itc_1text_1check->func.content_get = _gl_safety_check_get;
295 itc_1text_1check->func.del = _gl_safety_del;
297 Elm_Genlist_Item_Class *itc_2text_1check = elm_genlist_item_class_new();
298 itc_2text_1check->item_style = "2text.1icon.1";
299 itc_2text_1check->func.text_get = _gl_safety_title_get;
300 itc_2text_1check->func.content_get = _gl_safety_check_get;
301 itc_2text_1check->func.del = _gl_safety_del;
303 Elm_Genlist_Item_Class *itc_1text = elm_genlist_item_class_new();
304 itc_1text->item_style = "1text";
305 itc_1text->func.text_get = _gl_safety_title_get;
306 itc_1text->func.del = _gl_safety_del;
308 layout = elm_layout_add(ad->nf);
309 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
310 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
312 genlist = elm_genlist_add(layout);
313 elm_genlist_block_count_set(genlist, 14);
314 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
316 menu_list = safety_menu_list;
319 count = sizeof(safety_menu_list) / sizeof(struct _safety_menu_item);
321 for (idx = 0; idx < count; idx++)
325 itc_temp = itc_2text_1check;
328 else if( idx > 0 && idx < 3 )
330 itc_temp = itc_1text_1check;
335 itc_temp = itc_1text;
338 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
340 id->item = elm_genlist_item_append(
341 genlist, // genlist object
342 itc_temp, // item class
345 ELM_GENLIST_ITEM_NONE,
346 menu_list[idx].func, // call back
349 vconf_get_bool("db/setting/support_emergency", &safety_data.is_support_emergency);
350 //not support list for emergency mode
351 if(!safety_data.is_support_emergency)
352 elm_object_item_disabled_set(id->item, EINA_TRUE);
356 elm_genlist_item_class_free(itc_2text_1check);
357 elm_genlist_item_class_free(itc_1text_1check);
358 elm_genlist_item_class_free(itc_1text);
360 elm_object_part_content_set(layout, "elm.genlist", genlist);
365 static void _trauma_interval_cb(void *data, Evas_Object *obj, void *event_info)
367 DBG("_trauma_interval_cb() is called.");
369 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
371 _show_interval_trauma_list(data);
374 static void _no_activity_interval_cb(void *data, Evas_Object *obj, void *event_info)
376 DBG("_no_activity_interval_cb() is called.");
378 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
380 _show_interval_no_activity_list(data);
383 static char * _gl_interval_title_get(void *data, Evas_Object *obj, const char *part)
385 DBG("_gl_interval_title_get() is called.");
388 Safety_Item_Data *id = data;
389 int index = id->index;
391 if( !strcmp(part, "elm.text.1") )
393 snprintf(buf, sizeof(buf)-1, "%s", interval_menu_list[index].title);
395 else if( !strcmp(part, "elm.text.2") )
397 snprintf(buf, sizeof(buf)-1, interval_menu_list[index].sub_title, "after 30 seconds");
402 static void show_interval_list(void *data)
404 DBG("show_interval_list() is called.");
408 ERR("appdata is null!!");
412 Evas_Object *genlist = NULL;
413 Evas_Object *layout = NULL;
414 Elm_Object_Item *nf_it = NULL;
415 struct _set_interval_menu_item *menu_list = NULL;
418 Elm_Genlist_Item_Class *itc_2text = elm_genlist_item_class_new();
419 itc_2text->item_style = "2text";
420 itc_2text->func.text_get = _gl_interval_title_get;
421 itc_2text->func.del = _gl_safety_del;
423 layout = elm_layout_add(ad->nf);
424 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
425 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
427 genlist = elm_genlist_add(layout);
428 elm_genlist_block_count_set(genlist, 14);
429 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
431 menu_list = interval_menu_list;
434 count = sizeof(interval_menu_list) / sizeof(struct _set_interval_menu_item);
436 for (idx = 0; idx < count; idx++)
438 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
440 id->item = elm_genlist_item_append(
441 genlist, // genlist object
442 itc_2text, // item class
445 ELM_GENLIST_ITEM_NONE,
446 menu_list[idx].func, // call back
450 elm_genlist_item_class_free(itc_2text);
452 elm_object_part_content_set(layout, "elm.genlist", genlist);
454 nf_it = elm_naviframe_item_push( ad->nf, NULL, NULL, NULL, layout, NULL );
455 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
459 static char * _gl_interval_trauma_title_get(void *data, Evas_Object *obj, const char *part)
461 DBG("_gl_interval_trauma_title_get() is called.");
464 Safety_Item_Data *id = data;
466 if( !strcmp(part, "elm.text") )
468 snprintf(buf, sizeof(buf)-1, interval_trauma_time_arr[id->index].str,
469 interval_trauma_time_arr[id->index].time);
474 static Evas_Object * _gl_interval_trauma_ridio_get(void *data, Evas_Object *obj, const char *part)
476 DBG("_gl_interval_trauma_ridio_get() is called.");
478 Evas_Object *radio = NULL;
479 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
480 Safety_Item_Data *id = data;
482 if( !strcmp(part, "elm.icon") )
484 radio = elm_radio_add(obj);
485 elm_radio_state_value_set(radio, id->index);
486 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
487 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
488 elm_radio_group_add(radio, radio_main);
490 if( safety_data.interval_trauma == id->index )
492 elm_radio_value_set(radio_main, safety_data.interval_trauma);
498 static void _trauma_interval_radio_cb(void *data, Evas_Object *obj, void *event_info)
500 DBG("_trauma_interval_radio_cb is called!");
502 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
504 DBG("selected trauma interval : %d", (int*)data);
506 if( safety_data.temp_ad )
508 elm_naviframe_item_pop(safety_data.temp_ad->nf);
512 static void _show_interval_trauma_list(void* data)
514 DBG("_show_interval_trauma_list() is called.");
519 ERR("%s", "_show_interval_trauma_list - appdata is null");
522 Evas_Object *genlist = NULL;
523 Elm_Object_Item *nf_it = NULL;
526 safety_data.temp_ad = ad;
528 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
529 itc->item_style = "1text.1icon.1";
530 itc->func.text_get = _gl_interval_trauma_title_get;
531 itc->func.content_get = _gl_interval_trauma_ridio_get;
532 itc->func.del = _gl_safety_del;
534 genlist = elm_genlist_add(ad->nf);
535 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
537 const int count = sizeof(interval_trauma_time_arr) / sizeof(interval_trauma_time_arr[0]);
538 for( idx = 0; idx < count; idx++ )
540 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
542 id->item = elm_genlist_item_append( genlist,
546 ELM_GENLIST_ITEM_NONE,
547 _trauma_interval_radio_cb,
551 ad->safety_interval_trauma_rdg = elm_radio_add(genlist);
552 elm_radio_state_value_set(ad->safety_interval_trauma_rdg, count);
553 elm_radio_value_set(ad->safety_interval_trauma_rdg, count);
555 evas_object_data_set(genlist, "radio_main", ad->safety_interval_trauma_rdg);
557 elm_genlist_item_class_free(itc);
559 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
560 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
563 static char * _gl_interval_no_activity_title_get(void *data, Evas_Object *obj, const char *part)
566 Safety_Item_Data *id = data;
568 if( !strcmp(part, "elm.text") )
570 snprintf(buf, sizeof(buf)-1, "After %s hours", interval_no_activity_hour_arr[id->index]);
575 static Evas_Object * _gl_interval_no_activity_ridio_get(void *data, Evas_Object *obj, const char *part)
577 Evas_Object *radio = NULL;
578 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
579 Safety_Item_Data *id = data;
581 if( !strcmp(part, "elm.icon") )
583 radio = elm_radio_add(obj);
584 elm_radio_state_value_set(radio, id->index);
585 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
586 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
587 elm_radio_group_add(radio, radio_main);
589 if( safety_data.interval_no_activity == id->index )
591 elm_radio_value_set(radio_main, safety_data.interval_no_activity);
597 static void _no_activity_interval_radio_cb(void *data, Evas_Object *obj, void *event_info)
599 DBG("_no_activity_interval_radio_cb is called!");
601 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
603 DBG("selected no activity interval : %d", (int*)data);
605 if( safety_data.temp_ad )
607 elm_naviframe_item_pop(safety_data.temp_ad->nf);
611 static void _show_interval_no_activity_list(void* data)
613 DBG("_show_interval_no_activity_list() is called.");
618 ERR("%s", "_show_interval_no_activity_list - appdata is null");
621 Evas_Object *genlist = NULL;
622 Elm_Object_Item *nf_it = NULL;
625 safety_data.temp_ad = ad;
627 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
628 itc->item_style = "1text.1icon.1";
629 itc->func.text_get = _gl_interval_no_activity_title_get;
630 itc->func.content_get = _gl_interval_no_activity_ridio_get;
631 itc->func.del = _gl_safety_del;
633 genlist = elm_genlist_add(ad->nf);
634 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
636 const int count = sizeof(interval_no_activity_hour_arr) / sizeof(interval_no_activity_hour_arr[0]);
637 for( idx = 0; idx < count; idx++ )
639 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
641 id->item = elm_genlist_item_append( genlist,
645 ELM_GENLIST_ITEM_NONE,
646 _no_activity_interval_radio_cb,
650 ad->safety_interval_no_activity_rdg = elm_radio_add(genlist);
651 elm_radio_state_value_set(ad->safety_interval_no_activity_rdg, count);
652 elm_radio_value_set(ad->safety_interval_no_activity_rdg, count);
654 evas_object_data_set(genlist, "radio_main", ad->safety_interval_no_activity_rdg);
656 elm_genlist_item_class_free(itc);
658 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
659 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
662 void _help_popup_cb(void *data, Evas_Object *obj, void *event_info)
664 Evas_Object *popup = NULL;
665 Evas_Object *btn = NULL;
666 Evas_Object *scroller = NULL;
667 Evas_Object *label = NULL;
669 appdata *ad = (appdata *) data;
673 popup = elm_popup_add(ad->nf);
674 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
675 elm_object_part_text_set(popup, "title,text", _("IDS_ST_MBODY_HELP"));
679 scroller = elm_scroller_add(popup);
680 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
681 elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
682 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
683 elm_object_content_set(popup, scroller);
684 evas_object_show(scroller);
686 label = elm_label_add(scroller);
687 elm_object_style_set(label, "popup/default");
688 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
689 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"));
690 elm_object_text_set(label, txt);
692 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
693 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
694 elm_object_content_set(scroller, label);
695 evas_object_show(label);
697 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, setting_popup_back_cb, ad);
699 evas_object_show(popup);
702 static void _disable_emergency_cancel_cb(void *data, Evas_Object *obj, void *event_info)
704 appdata *ad = (appdata *) data;
709 evas_object_del(data);
714 static void _disable_emergency_ok_cb(void *data, Evas_Object *obj, void *event_info)
720 DBG("%s", "_disable_emergency_ok_cb : appdata is null");
725 evas_object_del(data);
729 safety_data.is_enable_emergency_mode = EINA_FALSE;
730 vconf_set_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, safety_data.is_enable_emergency_mode);
731 vconf_set_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, VCONFKEY_SYSMAN_POWER_OFF_RESTART);
734 void _disable_emergency_popup_cb(void *data, Evas_Object *obj, void *event_info)
736 Evas_Object *popup = NULL;
737 Evas_Object *btn = NULL;
738 Evas_Object *scroller = NULL;
739 Evas_Object *label = NULL;
741 appdata *ad = (appdata *) data;
745 popup = elm_popup_add(ad->nf);
746 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
747 elm_object_part_text_set(popup, "title,text", _("Disable Ultra power saving mode"));
751 scroller = elm_scroller_add(popup);
752 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
753 elm_object_content_set(popup, scroller);
754 evas_object_show(scroller);
756 label = elm_label_add(scroller);
757 elm_object_style_set(label, "popup/default");
758 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
759 char *txt = elm_entry_utf8_to_markup(_("IDS_ST_POP_TO_DISABLE_ULTRA_POWER_SAVING_MODE_YOUR_DEVICE_WILL_RESTART"));
760 elm_object_text_set(label, txt);
762 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
763 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
764 elm_object_content_set(scroller, label);
765 evas_object_show(label);
767 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, setting_popup_back_cb, ad);
769 btn = elm_button_add(popup);
770 elm_object_style_set(btn, "popup");
771 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
772 elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
773 elm_object_part_content_set(popup, "button1", btn);
774 evas_object_smart_callback_add(btn, "clicked", _disable_emergency_cancel_cb, popup);
776 btn = elm_button_add(popup);
777 elm_object_style_set(btn, "popup");
778 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
779 elm_object_text_set(btn, _("IDS_WNOTI_BUTTON_OK_ABB2"));
780 elm_object_part_content_set(popup, "button2", btn);
781 evas_object_smart_callback_add(btn, "clicked", _disable_emergency_ok_cb, popup);
783 evas_object_show(popup);