2 * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
4 * Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0
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 )
97 DBG("Setting - this value was set from Setting!!");
102 DBG("Setting - this value is set from WMS");
104 safety_data.is_enable_emergency_mode = enable;
105 if( g_safety_genlist )
107 elm_genlist_realized_items_update(g_safety_genlist);
112 static void _emergency_mode_cb(void *data, Evas_Object *obj, void *event_info)
114 DBG("emergency_mode_cb() is called.");
116 Elm_Object_Item* it = (Elm_Object_Item *)event_info;
117 elm_genlist_item_selected_set(it, EINA_FALSE);
122 DBG("%s", "_emergency_mode_cb - ad is null");
126 if(safety_data.is_enable_emergency_mode)
128 //confirm popup ok to off to device restart
129 _disable_emergency_popup_cb(data, obj, event_info);
133 safety_data.is_enable_emergency_mode = !safety_data.is_enable_emergency_mode;
134 vconf_set_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, safety_data.is_enable_emergency_mode);
136 //DBG("Setting - Emergency mode is %d", safety_data.is_enable_emergency_mode);
137 //elm_genlist_item_update(it);
138 elm_exit(); //gonna be changed regarding freezer
142 static void _trauma_cb(void *data, Evas_Object *obj, void *event_info)
144 DBG("trauma_cb() is called.");
146 Elm_Object_Item* it = (Elm_Object_Item *)event_info;
147 elm_genlist_item_selected_set(it, EINA_FALSE);
152 DBG("%s", "_emergency_mode_cb - ad is null");
156 safety_data.is_enable_trauma = !safety_data.is_enable_trauma;
158 elm_genlist_item_update(it);
161 static void _no_activity_cb(void *data, Evas_Object *obj, void *event_info)
163 DBG("_no_activity_cb() is called.");
165 Elm_Object_Item* it = (Elm_Object_Item *)event_info;
166 elm_genlist_item_selected_set(it, EINA_FALSE);
171 DBG("%s", "_no_activity_cb - ad is null");
175 safety_data.is_enable_no_activity = !safety_data.is_enable_no_activity;
177 elm_genlist_item_update(it);
180 static void _set_interval_cb(void *data, Evas_Object *obj, void *event_info)
182 DBG("_set_interval_cb() is called.");
184 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
189 DBG("%s", "_set_interval_cb - ad is null");
193 show_interval_list(ad);
196 static void _help_cb(void *data, Evas_Object *obj, void *event_info)
198 DBG("_help_cb() is called.");
200 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
205 DBG("%s", "_help_cb - ad is null");
208 _help_popup_cb(data, obj, event_info);
211 static int _is_enable(int index)
213 int enable = DISABLE;
217 vconf_get_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, &safety_data.is_enable_emergency_mode);
218 enable = safety_data.is_enable_emergency_mode;
221 enable = safety_data.is_enable_trauma;
224 enable = safety_data.is_enable_no_activity;
234 static char * _gl_safety_title_get(void *data, Evas_Object *obj, const char *part)
237 Safety_Item_Data *id = data;
238 int index = id->index;
240 if( !strcmp(part, "elm.text.1") || !strcmp(part, "elm.text") )
242 snprintf(buf, sizeof(buf)-1, "%s", _(safety_menu_list[index].name));
244 else if( !strcmp(part, "elm.text.2") )
246 snprintf(buf, sizeof(buf)-1, "%s", _is_enable(index) ? _("IDS_EMAIL_BODY_ENABLED_M_STATUS") : _("IDS_ST_BODY_DISABLED_M_STATUS"));
251 Evas_Object * _gl_safety_check_get(void *data, Evas_Object *obj, const char *part)
253 Evas_Object *check = NULL;
256 Safety_Item_Data *id = data;
257 int index = id->index;
259 if( !strcmp(part, "elm.icon") )
261 check = elm_check_add(obj);
262 elm_check_state_set(check, _is_enable(index) ? EINA_TRUE : EINA_FALSE);
263 evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
264 evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
270 static void _gl_safety_del(void *data, Evas_Object *obj)
272 Safety_Item_Data *id = data;
279 Evas_Object *create_safety_list(void *data)
281 DBG("create_safety_list() is called.");
286 ERR("appdata is null!!");
290 Evas_Object *genlist = NULL;
291 Evas_Object *layout = NULL;
292 Elm_Object_Item *nf_it = NULL;
293 Elm_Genlist_Item_Class *itc_temp = NULL;
294 struct _safety_menu_item *menu_list = NULL;
297 Elm_Genlist_Item_Class *itc_1text_1check = elm_genlist_item_class_new();
298 itc_1text_1check->item_style = "1text.1icon.1";
299 itc_1text_1check->func.text_get = _gl_safety_title_get;
300 itc_1text_1check->func.content_get = _gl_safety_check_get;
301 itc_1text_1check->func.del = _gl_safety_del;
303 Elm_Genlist_Item_Class *itc_2text_1check = elm_genlist_item_class_new();
304 itc_2text_1check->item_style = "2text.1icon.1";
305 itc_2text_1check->func.text_get = _gl_safety_title_get;
306 itc_2text_1check->func.content_get = _gl_safety_check_get;
307 itc_2text_1check->func.del = _gl_safety_del;
309 Elm_Genlist_Item_Class *itc_1text = elm_genlist_item_class_new();
310 itc_1text->item_style = "1text";
311 itc_1text->func.text_get = _gl_safety_title_get;
312 itc_1text->func.del = _gl_safety_del;
314 layout = elm_layout_add(ad->nf);
315 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
316 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
318 genlist = elm_genlist_add(layout);
319 elm_genlist_block_count_set(genlist, 14);
320 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
322 menu_list = safety_menu_list;
325 count = sizeof(safety_menu_list) / sizeof(struct _safety_menu_item);
327 for (idx = 0; idx < count; idx++)
331 itc_temp = itc_2text_1check;
334 else if( idx > 0 && idx < 3 )
336 itc_temp = itc_1text_1check;
341 itc_temp = itc_1text;
344 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
346 id->item = elm_genlist_item_append(
347 genlist, // genlist object
348 itc_temp, // item class
351 ELM_GENLIST_ITEM_NONE,
352 menu_list[idx].func, // call back
355 vconf_get_bool("db/setting/support_emergency", &safety_data.is_support_emergency);
356 //not support list for emergency mode
357 if(!safety_data.is_support_emergency)
358 elm_object_item_disabled_set(id->item, EINA_TRUE);
362 elm_genlist_item_class_free(itc_2text_1check);
363 elm_genlist_item_class_free(itc_1text_1check);
364 elm_genlist_item_class_free(itc_1text);
366 elm_object_part_content_set(layout, "elm.genlist", genlist);
371 static void _trauma_interval_cb(void *data, Evas_Object *obj, void *event_info)
373 DBG("_trauma_interval_cb() is called.");
375 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
377 _show_interval_trauma_list(data);
380 static void _no_activity_interval_cb(void *data, Evas_Object *obj, void *event_info)
382 DBG("_no_activity_interval_cb() is called.");
384 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
386 _show_interval_no_activity_list(data);
389 static char * _gl_interval_title_get(void *data, Evas_Object *obj, const char *part)
391 DBG("_gl_interval_title_get() is called.");
394 Safety_Item_Data *id = data;
395 int index = id->index;
397 if( !strcmp(part, "elm.text.1") )
399 snprintf(buf, sizeof(buf)-1, "%s", interval_menu_list[index].title);
401 else if( !strcmp(part, "elm.text.2") )
403 snprintf(buf, sizeof(buf)-1, interval_menu_list[index].sub_title, "after 30 seconds");
408 static void show_interval_list(void *data)
410 DBG("show_interval_list() is called.");
414 ERR("appdata is null!!");
418 Evas_Object *genlist = NULL;
419 Evas_Object *layout = NULL;
420 Elm_Object_Item *nf_it = NULL;
421 struct _set_interval_menu_item *menu_list = NULL;
424 Elm_Genlist_Item_Class *itc_2text = elm_genlist_item_class_new();
425 itc_2text->item_style = "2text";
426 itc_2text->func.text_get = _gl_interval_title_get;
427 itc_2text->func.del = _gl_safety_del;
429 layout = elm_layout_add(ad->nf);
430 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
431 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
433 genlist = elm_genlist_add(layout);
434 elm_genlist_block_count_set(genlist, 14);
435 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
437 menu_list = interval_menu_list;
440 count = sizeof(interval_menu_list) / sizeof(struct _set_interval_menu_item);
442 for (idx = 0; idx < count; idx++)
444 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
446 id->item = elm_genlist_item_append(
447 genlist, // genlist object
448 itc_2text, // item class
451 ELM_GENLIST_ITEM_NONE,
452 menu_list[idx].func, // call back
456 elm_genlist_item_class_free(itc_2text);
458 elm_object_part_content_set(layout, "elm.genlist", genlist);
460 nf_it = elm_naviframe_item_push( ad->nf, NULL, NULL, NULL, layout, NULL );
461 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
465 static char * _gl_interval_trauma_title_get(void *data, Evas_Object *obj, const char *part)
467 DBG("_gl_interval_trauma_title_get() is called.");
470 Safety_Item_Data *id = data;
472 if( !strcmp(part, "elm.text") )
474 snprintf(buf, sizeof(buf)-1, interval_trauma_time_arr[id->index].str,
475 interval_trauma_time_arr[id->index].time);
480 static Evas_Object * _gl_interval_trauma_ridio_get(void *data, Evas_Object *obj, const char *part)
482 DBG("_gl_interval_trauma_ridio_get() is called.");
484 Evas_Object *radio = NULL;
485 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
486 Safety_Item_Data *id = data;
488 if( !strcmp(part, "elm.icon") )
490 radio = elm_radio_add(obj);
491 elm_radio_state_value_set(radio, id->index);
492 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
493 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
494 elm_radio_group_add(radio, radio_main);
496 if( safety_data.interval_trauma == id->index )
498 elm_radio_value_set(radio_main, safety_data.interval_trauma);
504 static void _trauma_interval_radio_cb(void *data, Evas_Object *obj, void *event_info)
506 DBG("_trauma_interval_radio_cb is called!");
508 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
510 DBG("selected trauma interval : %d", (int*)data);
512 if( safety_data.temp_ad )
514 elm_naviframe_item_pop(safety_data.temp_ad->nf);
518 static void _show_interval_trauma_list(void* data)
520 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++ )
546 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,
557 ad->safety_interval_trauma_rdg = elm_radio_add(genlist);
558 elm_radio_state_value_set(ad->safety_interval_trauma_rdg, count);
559 elm_radio_value_set(ad->safety_interval_trauma_rdg, count);
561 evas_object_data_set(genlist, "radio_main", ad->safety_interval_trauma_rdg);
563 elm_genlist_item_class_free(itc);
565 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
566 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
569 static char * _gl_interval_no_activity_title_get(void *data, Evas_Object *obj, const char *part)
572 Safety_Item_Data *id = data;
574 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") )
589 radio = elm_radio_add(obj);
590 elm_radio_state_value_set(radio, id->index);
591 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
592 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
593 elm_radio_group_add(radio, radio_main);
595 if( safety_data.interval_no_activity == id->index )
597 elm_radio_value_set(radio_main, safety_data.interval_no_activity);
603 static void _no_activity_interval_radio_cb(void *data, Evas_Object *obj, void *event_info)
605 DBG("_no_activity_interval_radio_cb is called!");
607 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
609 DBG("selected no activity interval : %d", (int*)data);
611 if( safety_data.temp_ad )
613 elm_naviframe_item_pop(safety_data.temp_ad->nf);
617 static void _show_interval_no_activity_list(void* data)
619 DBG("_show_interval_no_activity_list() is called.");
624 ERR("%s", "_show_interval_no_activity_list - appdata is null");
627 Evas_Object *genlist = NULL;
628 Elm_Object_Item *nf_it = NULL;
631 safety_data.temp_ad = ad;
633 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
634 itc->item_style = "1text.1icon.1";
635 itc->func.text_get = _gl_interval_no_activity_title_get;
636 itc->func.content_get = _gl_interval_no_activity_ridio_get;
637 itc->func.del = _gl_safety_del;
639 genlist = elm_genlist_add(ad->nf);
640 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
642 const int count = sizeof(interval_no_activity_hour_arr) / sizeof(interval_no_activity_hour_arr[0]);
643 for( idx = 0; idx < count; idx++ )
645 Safety_Item_Data *id = calloc(sizeof(Safety_Item_Data), 1);
647 id->item = elm_genlist_item_append( genlist,
651 ELM_GENLIST_ITEM_NONE,
652 _no_activity_interval_radio_cb,
656 ad->safety_interval_no_activity_rdg = elm_radio_add(genlist);
657 elm_radio_state_value_set(ad->safety_interval_no_activity_rdg, count);
658 elm_radio_value_set(ad->safety_interval_no_activity_rdg, count);
660 evas_object_data_set(genlist, "radio_main", ad->safety_interval_no_activity_rdg);
662 elm_genlist_item_class_free(itc);
664 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, NULL);
665 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
668 void _help_popup_cb(void *data, Evas_Object *obj, void *event_info)
670 Evas_Object *popup = NULL;
671 Evas_Object *btn = NULL;
672 Evas_Object *scroller = NULL;
673 Evas_Object *label = NULL;
675 appdata *ad = (appdata *) data;
679 popup = elm_popup_add(ad->nf);
680 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
681 elm_object_part_text_set(popup, "title,text", _("IDS_ST_MBODY_HELP"));
685 scroller = elm_scroller_add(popup);
686 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
687 elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
688 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
689 elm_object_content_set(popup, scroller);
690 evas_object_show(scroller);
692 label = elm_label_add(scroller);
693 elm_object_style_set(label, "popup/default");
694 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
695 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"));
696 elm_object_text_set(label, txt);
698 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
699 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
700 elm_object_content_set(scroller, label);
701 evas_object_show(label);
703 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, setting_popup_back_cb, ad);
705 evas_object_show(popup);
708 static void _disable_emergency_cancel_cb(void *data, Evas_Object *obj, void *event_info)
710 appdata *ad = (appdata *) data;
715 evas_object_del(data);
720 static void _disable_emergency_ok_cb(void *data, Evas_Object *obj, void *event_info)
726 DBG("%s", "_disable_emergency_ok_cb : appdata is null");
731 evas_object_del(data);
735 safety_data.is_enable_emergency_mode = EINA_FALSE;
736 vconf_set_bool(VCONFKEY_SETAPPL_EMERGENCY_STATUS_BOOL, safety_data.is_enable_emergency_mode);
737 vconf_set_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, VCONFKEY_SYSMAN_POWER_OFF_RESTART);
740 void _disable_emergency_popup_cb(void *data, Evas_Object *obj, void *event_info)
742 Evas_Object *popup = NULL;
743 Evas_Object *btn = NULL;
744 Evas_Object *scroller = NULL;
745 Evas_Object *label = NULL;
747 appdata *ad = (appdata *) data;
751 popup = elm_popup_add(ad->nf);
752 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
753 elm_object_part_text_set(popup, "title,text", _("Disable Ultra power saving mode"));
757 scroller = elm_scroller_add(popup);
758 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
759 elm_object_content_set(popup, scroller);
760 evas_object_show(scroller);
762 label = elm_label_add(scroller);
763 elm_object_style_set(label, "popup/default");
764 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
765 char *txt = elm_entry_utf8_to_markup(_("IDS_ST_POP_TO_DISABLE_ULTRA_POWER_SAVING_MODE_YOUR_DEVICE_WILL_RESTART"));
766 elm_object_text_set(label, txt);
768 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
769 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
770 elm_object_content_set(scroller, label);
771 evas_object_show(label);
773 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, setting_popup_back_cb, ad);
775 btn = elm_button_add(popup);
776 elm_object_style_set(btn, "popup");
777 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
778 elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL_ABB2"));
779 elm_object_part_content_set(popup, "button1", btn);
780 evas_object_smart_callback_add(btn, "clicked", _disable_emergency_cancel_cb, popup);
782 btn = elm_button_add(popup);
783 elm_object_style_set(btn, "popup");
784 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
785 elm_object_text_set(btn, _("IDS_WNOTI_BUTTON_OK_ABB2"));
786 elm_object_part_content_set(popup, "button2", btn);
787 evas_object_smart_callback_add(btn, "clicked", _disable_emergency_ok_cb, popup);
789 evas_object_show(popup);