6e3857ce4ca2b7a842f8121de133091aec225ded
[apps/home/settings.git] / setting-display / src / setting-display-main.c
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 #include <setting-display-main.h>
22 #include <Ecore_X.h>
23
24
25 static int setting_display_main_create(void *cb);
26 static int setting_display_main_destroy(void *cb);
27 static int setting_display_main_update(void *cb);
28 static int setting_display_main_cleanup(void *cb);
29
30 setting_view setting_view_display_main = {
31         .create = setting_display_main_create,
32         .destroy = setting_display_main_destroy,
33         .update = setting_display_main_update,
34         .cleanup = setting_display_main_cleanup,
35 };
36
37 static char* str_in_arr[] = {"Dynamic", "Standard", "Natural", "Movie"};
38 static char* str_out_arr[] = {Keystr_Dynamic, Keystr_Standard, Keystr_Natural, Keystr_Movie};
39
40 /* ***************************************************
41  *
42  *basic func
43  *
44  ***************************************************/
45 static void
46 __setting_display_main_exp_cb(void *data, Evas_Object *obj, void *event_info)
47 {
48         ret_if(NULL == data || NULL == event_info);
49         SETTING_TRACE_BEGIN;
50         SettingDisplayUG *ad = (SettingDisplayUG *) data;
51         Elm_Object_Item *parentItem = event_info;       /* parent item */
52         Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(parentItem);      /* parent data */
53         Evas_Object *scroller = elm_object_item_widget_get(parentItem);
54
55         Evas_Object *rgd;
56         if (data_parentItem == ad->data_back) {
57                 rgd = elm_radio_add(scroller);
58                 elm_radio_value_set(rgd, -1);
59
60                 if(isEmulBin())
61                 {
62                         setting_create_Gendial_exp_sub_field(scroller,
63                                                      &(ad->itc_1icon_1text_sub),
64                                                      NULL, NULL, parentItem,
65                                                      SWALLOW_Type_1RADIO, rgd,
66                                                      0,                         /* Always ON */
67                                                      "IDS_ST_BODY_ALWAYS_ON", NULL);
68                 }
69                 setting_create_Gendial_exp_sub_field(scroller,
70                                                      &(ad->itc_1icon_1text_sub),
71                                                      NULL, NULL, parentItem,
72                                                      SWALLOW_Type_1RADIO, rgd,
73                                                      15,                                /* 15 sec */
74                                                      SETTING_DISPLAY_TIME_15_SEC_STR, NULL);
75
76                 setting_create_Gendial_exp_sub_field(scroller,
77                                                      &(ad->itc_1icon_1text_sub),
78                                                      NULL, NULL, parentItem,
79                                                      SWALLOW_Type_1RADIO, rgd,
80                                                      30,                                /* 30 sec */
81                                                      SETTING_DISPLAY_TIME_30_SEC_STR, NULL);
82
83                 setting_create_Gendial_exp_sub_field(scroller,
84                                                      &(ad->itc_1icon_1text_sub),
85                                                      NULL, NULL, parentItem,
86                                                      SWALLOW_Type_1RADIO, rgd,
87                                                      60,                                /* 60 sec */
88                                                      SETTING_DISPLAY_TIME_1_MIN_STR, NULL);
89
90                 setting_create_Gendial_exp_sub_field(scroller,
91                                                      &(ad->itc_1icon_1text_sub),
92                                                      NULL, NULL, parentItem,
93                                                      SWALLOW_Type_1RADIO, rgd,
94                                                      120,                               /* 2min */
95                                                      SETTING_DISPLAY_TIME_2_MIN_STR, NULL);
96
97                 setting_create_Gendial_exp_sub_field(scroller,
98                                                      &(ad->itc_1icon_1text_sub),
99                                                      NULL, NULL, parentItem,
100                                                      SWALLOW_Type_1RADIO, rgd,
101                                                      300,                               /* 5min */
102                                                      SETTING_DISPLAY_TIME_5_MIN_STR, NULL);
103
104                 setting_create_Gendial_exp_sub_field(scroller,
105                                                      &(ad->itc_1icon_1text_sub),
106                                                      NULL, NULL, parentItem,
107                                                      SWALLOW_Type_1RADIO, rgd,
108                                                      600,                               /* 10min */
109                                                      SETTING_DISPLAY_TIME_10_MIN_STR, NULL);
110
111                 setting_update_chk_status(rgd,
112                                           data_parentItem->int_slp_setting_binded);
113
114         }
115 }
116 #if !SUPPOR_SEPARATE_BRIGHTNESS
117 // low battery
118 static void setting_display_main_lowbat_cb(keynode_t *key, void* data)
119 {
120         ret_if(data == NULL);
121         SettingDisplayUG *ad = (SettingDisplayUG *) data;
122         SETTING_TRACE_BEGIN;
123         ret_if(ad->data_br == NULL);
124
125         char* vconf_key = vconf_keynode_get_name(key);
126         SETTING_TRACE("the value of [ %s ] just changed", vconf_key);
127         // VCONFKEY_SYSMAN_BATTERY_STATUS_LOW
128
129         int battery_value;
130         vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
131         ad->low_bat = battery_value;
132
133         if (battery_value < VCONFKEY_SYSMAN_BAT_WARNING_LOW)
134         {
135                 elm_slider_value_set(ad->data_br->eo_check, 1);
136                 // disabled
137                 setting_disable_genlist_item(ad->data_br->item);
138         } else {
139                 setting_enable_genlist_item(ad->data_br->item);
140         }
141         return;
142 }
143 #endif
144
145 static int setting_display_main_create(void *cb)
146 {
147         SETTING_TRACE_BEGIN;
148         /* error check */
149         retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
150
151         SettingDisplayUG *ad = (SettingDisplayUG *) cb;
152
153         Evas_Object *scroller = NULL;
154
155         /* add basic layout */
156         char setBtnStr[MAX_DISPLAY_NAME_LEN_ON_UI];
157         snprintf(setBtnStr, sizeof(setBtnStr), "%s",
158                  (char *)dgettext("sys_string", "IDS_COM_BODY_BACK"));
159
160         ad->ly_main =
161             setting_create_layout_navi_bar_genlist(ad->win_main_layout,
162                                                    ad->win_get,
163                                                    _(KeyStr_Display), setBtnStr,
164                                                    NULL,
165                                                    setting_display_main_click_softkey_back_cb,
166                                                    NULL, ad, &scroller,
167                                                    &(ad->navi_bar));
168         setting_enable_expandable_genlist(scroller, ad,
169                                           __setting_display_main_exp_cb, NULL);
170
171         Elm_Object_Item *item = NULL;;
172
173         item =
174             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
175                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
176         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
177
178         char *curmode = vconf_get_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME);
179         SETTING_TRACE(">>> CUR SCREEN MODE : %s ", curmode);
180
181         int i = 0;
182         for (; i < sizeof(str_in_arr)/sizeof(str_in_arr[0]); i++) {
183                 if (0 == safeStrCmp(str_in_arr[i], curmode)) {
184                         ad->data_screen_mode = setting_create_Gendial_field_def(scroller, &(itc_2text_3),
185                                      setting_display_main_mouse_up_Gendial_list_cb,
186                                      ad, SWALLOW_Type_INVALID, NULL,
187                                      NULL, 0, Keystr_ScreenMode,
188                                      _(str_out_arr[i]), NULL);
189                         if (ad->data_screen_mode) {
190                                 ad->data_screen_mode->userdata = ad;
191                         } else {
192                                 SETTING_TRACE_ERROR("ad->data_screen_mode is NULL");
193                         }
194                         break;
195                 }
196         }
197
198         item =
199             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
200                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
201         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
202
203         #if !SUPPOR_SEPARATE_BRIGHTNESS
204         /* BRIGHTNESS */
205         ad->data_br =
206             setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2),
207                                              setting_display_main_mouse_up_Gendial_list_cb,
208                                              ad, SWALLOW_Type_INVALID, NULL,
209                                              NULL, 0, "IDS_COM_OPT_BRIGHTNESS",
210                                              get_brightness_mode_str(), NULL);
211         if (ad->data_br) {
212                 ad->data_br->userdata = ad;
213         } else {
214                 SETTING_TRACE_ERROR("ad->data_br is NULL");
215         }
216         #endif
217
218         int value = 0;
219         int ret = vconf_get_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, &value);
220         ad->data_auto_adjust_scrn_tone =
221             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
222                                              setting_display_main_mouse_up_Gendial_list_cb,
223                                              ad, SWALLOW_Type_1TOGGLE, NULL,
224                                              NULL, value, KeyStr_AdjustScreenTone,
225                                              NULL,
226                                              setting_display_main_auto_adjust_chk_btn_cb);
227         if (ad->data_auto_adjust_scrn_tone) {
228                 ad->data_auto_adjust_scrn_tone->userdata = ad;
229         } else {
230                 SETTING_TRACE_ERROR("ad->data_battery is NULL");
231         }
232
233         setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
234                                         ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
235                                         NULL, NULL, 0, KeyStr_AdjustScreenTone_Dsc, NULL, NULL);
236         
237         /* BACKLIGHTTIME */
238         char* pa_backlight_time = get_pa_backlight_time_str();
239         ad->data_back =
240             setting_create_Gendial_exp_parent_field(scroller,
241                                                     &(ad->itc_2text_3_parent),
242                                                     NULL, NULL,
243                                                     SWALLOW_Type_INVALID,
244                                                     "IDS_ST_LIGHTSETTINGS_BODY_BACKLIGHTTIME",
245                                                 pa_backlight_time);
246 #if SUPPORT_LCD_TIMEOUT_KEEPING
247         if (ad->data_back) {
248                 ad->data_back->int_slp_setting_binded =
249                         INT_SLP_SETTING_LCD_TIMEOUT_NORMAL_BACKUP;
250         } else {
251                 SETTING_TRACE_ERROR("ad->data_back is NULL");
252         }
253 #else
254         if (ad->data_back) {
255                 ad->data_back->int_slp_setting_binded =
256                         INT_SLP_SETTING_LCD_TIMEOUT_NORMAL;
257         } else {
258                 SETTING_TRACE_ERROR("ad->data_back is NULL");
259         }
260 #endif
261         G_FREE(pa_backlight_time);
262
263         /*  add separator */
264         item =
265             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
266                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
267         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
268
269
270         /* Smart screen */
271         setting_create_Gendial_field_def(scroller, &(itc_1text),
272                                              setting_display_main_mouse_up_Gendial_list_cb,
273                                              ad, SWALLOW_Type_INVALID, NULL,
274                                              NULL, 0, Keystr_SmartScreen,
275                                              NULL, NULL);
276
277         item =
278             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
279                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
280         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
281
282         /* setting_get_bool_slp_key(BOOL_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &auto_value, &err); */
283         value = 0;
284         vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &value);
285         ad->data_battery =
286             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
287                                              setting_display_main_mouse_up_Gendial_list_cb,
288                                              ad, SWALLOW_Type_1TOGGLE, NULL,
289                                              NULL, value, LAUNCH_BATTERY_STR,
290                                              NULL,
291                                              setting_display_main_battery_chk_btn_cb);
292         if (ad->data_battery) {
293                 ad->data_battery->userdata = ad;
294         } else {
295                 SETTING_TRACE_ERROR("ad->data_battery is NULL");
296         }
297
298         setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
299                                         ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
300                                         NULL, NULL, 0, LAUNCH_BATTERY_DESC, NULL, NULL);
301
302 #if OPENING_EFFECT
303         /*  add separator */
304         item =
305             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
306                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
307         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
308
309         /* Launch Effect - Opening Effect */
310         int launch_effect_value = 0;
311         Ecore_X_Window root = 0;
312         Ecore_X_Atom effect_enable_atom = 0;
313
314         root = setting_display_main_effect_get_root(ad->win_main_layout);
315         effect_enable_atom = ecore_x_atom_get("_NET_CM_EFFECT_ENABLE");
316
317         if (root) {
318                 ecore_x_window_prop_card32_get(root, effect_enable_atom,
319                                                (unsigned int *)
320                                                &launch_effect_value, 1);
321         }
322         ad->data_launch_effect =
323             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
324                                              setting_display_main_mouse_up_Gendial_list_cb,
325                                              ad, SWALLOW_Type_1TOGGLE, NULL,
326                                              NULL, launch_effect_value,
327                                              LAUNCH_EFFECT_STR, NULL,
328                                              setting_display_main_launch_effect_chk_btn_cb);
329         if (ad->data_launch_effect) {
330                 ad->data_launch_effect->userdata = ad;
331         } else {
332                 SETTING_TRACE_ERROR("ad->data_launch_effect is NULL");
333         }
334 #endif
335         /*  Launch Image on/off */
336         ret = SETTING_RETURN_FAIL;
337 #ifdef UNUSED_VCONFKEY
338         int launch_image_value;
339         int err;
340         /* value set */
341         ret = setting_get_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
342                                      &launch_image_value, &err);
343         ad->data_launch_image =
344             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
345                                              setting_display_main_mouse_up_Gendial_list_cb,
346                                              ad, SWALLOW_Type_1TOGGLE, NULL,
347                                              NULL, launch_image_value,
348                                              LAUNCH_IMAGE_STR, NULL,
349                                              setting_display_main_launch_image_chk_btn_cb);
350         if (ad->data_launch_image) {
351                 ad->data_launch_image->userdata = ad;
352         } else {
353                 SETTING_TRACE_ERROR("ad->data_launch_image is NULL");
354         }
355 #endif
356 #if !SUPPOR_SEPARATE_BRIGHTNESS
357         if (ad->data_br) {
358                 int battery_value;
359                 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
360                 ad->low_bat = battery_value;
361
362                 if ( battery_value < VCONFKEY_SYSMAN_BAT_WARNING_LOW )
363                 {
364                         elm_slider_value_set(ad->data_br->eo_check, 1);
365                         setting_disable_genlist_item(ad->data_br->item);
366                 }
367                 else
368                 {
369                         setting_enable_genlist_item(ad->data_br->item);
370                 }
371         }
372
373         vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_main_lowbat_cb, ad);
374 #endif
375         setting_view_display_main.is_create = 1;
376         return SETTING_RETURN_SUCCESS;
377 }
378
379 static int setting_display_main_destroy(void *cb)
380 {
381         SETTING_TRACE_BEGIN;
382         /* error check */
383         retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
384
385         SettingDisplayUG *ad = (SettingDisplayUG *) cb;
386 #if !SUPPOR_SEPARATE_BRIGHTNESS
387         // low battery handler - registration
388         vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_main_lowbat_cb);
389 #endif
390         if (ad->ly_main != NULL) {
391                 evas_object_del(ad->ly_main);
392                 /* if(ad->back_dialData) FREE(ad->back_dialData); */
393                 setting_view_display_main.is_create = 0;
394         }
395
396         return SETTING_RETURN_SUCCESS;
397 }
398
399 static int setting_display_main_update(void *cb)
400 {
401         SETTING_TRACE_BEGIN;
402         /* error check */
403         retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
404
405         SettingDisplayUG *ad = (SettingDisplayUG *) cb;
406
407         if (ad->ly_main != NULL) {
408                 evas_object_show(ad->ly_main);
409                 if (ad->data_br) {
410                         ad->data_br->sub_desc =
411                             (char *)g_strdup(get_brightness_mode_str());
412                         elm_object_item_data_set(ad->data_br->item, ad->data_br);
413                         elm_genlist_item_update(ad->data_br->item);
414
415                 }
416
417                 if (ad->data_screen_mode) {
418                         char *curmode = vconf_get_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME);
419                         SETTING_TRACE(">>> CUR SCREEN MODE : %s ", curmode);
420                         int i = 0;
421                         for (; i < sizeof(str_in_arr)/sizeof(str_in_arr[0]); i++) {
422                                 if (0 == safeStrCmp(str_in_arr[i], curmode)) {
423                                         ad->data_screen_mode->sub_desc = (char *)g_strdup(_(str_out_arr[i]));
424                                         break;
425                                 }
426                         }
427                         elm_object_item_data_set(ad->data_screen_mode->item, ad->data_screen_mode);
428                         elm_genlist_item_update(ad->data_screen_mode->item);
429                 }
430         }
431
432         return SETTING_RETURN_SUCCESS;
433 }
434
435 static int setting_display_main_cleanup(void *cb)
436 {
437         SETTING_TRACE_BEGIN;
438         return SETTING_RETURN_SUCCESS;
439 }
440
441 /* ***************************************************
442  *
443  *general func
444  *
445  ***************************************************/
446
447 static void
448 setting_display_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
449                                               void *event_info)
450 {
451         /* error check */
452         setting_retm_if(data == NULL, "Data parameter is NULL");
453
454         retm_if(event_info == NULL, "Invalid argument: event info is NULL");
455         Elm_Object_Item *item = (Elm_Object_Item *) event_info;
456         elm_genlist_item_selected_set(item, 0);
457         Setting_GenGroupItem_Data *list_item =
458             (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
459
460         SettingDisplayUG *ad = (SettingDisplayUG *) data;
461
462         SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
463
464         if (!safeStrCmp("IDS_COM_OPT_BRIGHTNESS", list_item->keyStr)) {
465                 setting_view_change(&setting_view_display_main,
466                                     &setting_view_display_brightness, ad);
467         }
468         else if (!safeStrCmp(KeyStr_AdjustScreenTone, list_item->keyStr)) {
469                 int old_status = elm_check_state_get(list_item->eo_check);
470                 /* new status */
471                 list_item->chk_status = !old_status;
472                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
473                 vconf_set_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, list_item->chk_status);
474         }
475 #if OPENING_EFFECT
476         else if (!safeStrCmp(LAUNCH_EFFECT_STR, list_item->keyStr)) {
477                 int old_status = elm_check_state_get(list_item->eo_check);
478                 /* new status  */
479                 list_item->chk_status = !old_status;
480                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
481
482                 setting_display_main_effect_set_value(list_item);
483         }
484 #endif
485 #ifdef UNUSED_VCONFKEY
486         else if (!safeStrCmp(LAUNCH_IMAGE_STR, list_item->keyStr)) {
487                 int old_status = elm_check_state_get(list_item->eo_check);
488                 /* new status  */
489                 list_item->chk_status = !old_status;
490                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
491
492                 int err;
493                 setting_set_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
494                                          list_item->chk_status, &err);
495         }
496 #endif
497         else if (!safeStrCmp(LAUNCH_BATTERY_STR, list_item->keyStr)) {
498                 int old_status = elm_check_state_get(list_item->eo_check);
499                 /* new status */
500                 list_item->chk_status = !old_status;
501                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
502                 vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
503         }
504         else if (!safeStrCmp(Keystr_ScreenMode, list_item->keyStr)) {
505                 setting_view_change(&setting_view_display_main, &setting_view_display_screen_mode, ad);
506         }
507         else if (!safeStrCmp(Keystr_SmartScreen, list_item->keyStr)) {
508                 setting_view_change(&setting_view_display_main, &setting_view_display_smart_screen, ad);
509         }
510 }
511
512 static void
513 setting_display_main_click_softkey_back_cb(void *data, Evas_Object *obj,
514                                            void *event_info)
515 {
516         SETTING_TRACE_BEGIN;
517         /* error check */
518         setting_retm_if(data == NULL,
519                         "[Setting > Display] Data parameter is NULL");
520
521         SettingDisplayUG *ad = (SettingDisplayUG *) data;
522
523         /* Send destroy request */
524         ug_destroy_me(ad->ug);
525         SETTING_TRACE_END;
526
527 }
528
529 static void setting_display_main_auto_adjust_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
530 {
531         SETTING_TRACE_BEGIN;
532         /* error check */
533         retm_if(data == NULL, "Data parameter is NULL");
534         Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
535
536         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
537         vconf_set_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, list_item->chk_status);
538 }
539
540
541 static void
542 setting_display_main_battery_chk_btn_cb(void *data, Evas_Object *obj,
543                                         void *event_info)
544 {
545         SETTING_TRACE_BEGIN;
546         /* error check */
547         retm_if(data == NULL, "Data parameter is NULL");
548         Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
549
550         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
551         vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
552 }
553
554 #if OPENING_EFFECT
555 static void
556 setting_display_main_launch_effect_chk_btn_cb(void *data, Evas_Object *obj,
557                                               void *event_info)
558 {
559         SETTING_TRACE_BEGIN;
560         /* error check */
561         retm_if(data == NULL, "Data parameter is NULL");
562         Setting_GenGroupItem_Data *list_item =
563             (Setting_GenGroupItem_Data *) data;
564
565         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
566         setting_display_main_effect_set_value(list_item);
567         return;
568 }
569 #endif
570
571 /*  setting_display_brightness_chk_btn_cb*/
572 #ifdef UNUSED_VCONFKEY
573 /*  Fake image - launch effect*/
574 static void
575 setting_display_main_launch_image_chk_btn_cb(void *data, Evas_Object *obj,
576                                              void *event_info)
577 {
578         SETTING_TRACE_BEGIN;
579         /* error check */
580         retm_if(data == NULL, "Data parameter is NULL");
581         Setting_GenGroupItem_Data *list_item =
582             (Setting_GenGroupItem_Data *) data;
583
584         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
585
586         int err;
587         setting_set_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
588                                  list_item->chk_status, &err);
589 }
590 #endif
591 #if OPENING_EFFECT
592 static Ecore_X_Window setting_display_main_effect_get_root(Evas_Object *
593                                                            win_main)
594 {
595         Ecore_X_Window xwin = 0;
596         Ecore_X_Window root = 0;
597
598         retv_if(!win_main, root);
599
600         xwin = elm_win_xwindow_get(win_main);
601         retv_if(!xwin, root);
602
603         root = ecore_x_window_root_get(xwin);
604         return root;
605 }
606
607 static void setting_display_main_effect_set_value(void *data)
608 {
609         Setting_GenGroupItem_Data *list_item =
610             (Setting_GenGroupItem_Data *) data;
611         SettingDisplayUG *ad = list_item->userdata;
612         Ecore_X_Window root = 0;
613         Ecore_X_Atom effect_enable_atom = 0;
614         unsigned int is_enable = 0;     /* 0: effect disable, 1: effect enable */
615
616         root = setting_display_main_effect_get_root(ad->win_main_layout);
617         ret_if(!root);
618         effect_enable_atom = ecore_x_atom_get("_NET_CM_EFFECT_ENABLE");
619         ret_if(!effect_enable_atom);
620
621         if (list_item->chk_status) {
622                 is_enable = 1;
623         }
624
625         ecore_x_window_prop_card32_set(root, effect_enable_atom, &is_enable, 1);
626         return;
627 }
628 #endif