Merge "Change default value of brightness as 60 when reset."
[apps/core/preloaded/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  *
43  *basic func
44  *
45  ***************************************************/
46 static void
47 __setting_display_main_exp_cb(void *data, Evas_Object *obj, void *event_info)
48 {
49         ret_if(NULL == data || NULL == event_info);
50         SETTING_TRACE_BEGIN;
51         SettingDisplayUG *ad = (SettingDisplayUG *) data;
52         Elm_Object_Item *parentItem = event_info;       /* parent item */
53         Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(parentItem);      /* parent data */
54         Evas_Object *scroller = elm_object_item_widget_get(parentItem);
55
56         Evas_Object *rgd;
57         if (data_parentItem == ad->data_back) {
58                 rgd = elm_radio_add(scroller);
59                 elm_radio_value_set(rgd, -1);
60
61                 if(isEmulBin())
62                 {
63                         setting_create_Gendial_exp_sub_field(scroller,
64                                                      &(ad->itc_1icon_1text_sub),
65                                                      NULL, NULL, parentItem,
66                                                      SWALLOW_Type_1RADIO, rgd,
67                                                      0,                         /* Always ON */
68                                                      "IDS_ST_BODY_ALWAYS_ON", NULL);
69                 }
70                 setting_create_Gendial_exp_sub_field(scroller,
71                                                      &(ad->itc_1icon_1text_sub),
72                                                      NULL, NULL, parentItem,
73                                                      SWALLOW_Type_1RADIO, rgd,
74                                                      15,                                /* 15 sec */
75                                                      SETTING_DISPLAY_TIME_15_SEC_STR, NULL);
76
77                 setting_create_Gendial_exp_sub_field(scroller,
78                                                      &(ad->itc_1icon_1text_sub),
79                                                      NULL, NULL, parentItem,
80                                                      SWALLOW_Type_1RADIO, rgd,
81                                                      30,                                /* 30 sec */
82                                                      SETTING_DISPLAY_TIME_30_SEC_STR, NULL);
83
84                 ad->data_backlight_1min = setting_create_Gendial_exp_sub_field(scroller,
85                                                      &(ad->itc_1icon_1text_sub),
86                                                      NULL, NULL, parentItem,
87                                                      SWALLOW_Type_1RADIO, rgd,
88                                                      60,                                /* 60 sec */
89                                                      SETTING_DISPLAY_TIME_1_MIN_STR, NULL);
90
91                 ad->data_backlight_2min = setting_create_Gendial_exp_sub_field(scroller,
92                                                      &(ad->itc_1icon_1text_sub),
93                                                      NULL, NULL, parentItem,
94                                                      SWALLOW_Type_1RADIO, rgd,
95                                                      120,                               /* 2min */
96                                                      SETTING_DISPLAY_TIME_2_MIN_STR, NULL);
97
98                 ad->data_backlight_5min = setting_create_Gendial_exp_sub_field(scroller,
99                                                      &(ad->itc_1icon_1text_sub),
100                                                      NULL, NULL, parentItem,
101                                                      SWALLOW_Type_1RADIO, rgd,
102                                                      300,                               /* 5min */
103                                                      SETTING_DISPLAY_TIME_5_MIN_STR, NULL);
104
105                 ad->data_backlight_10min = setting_create_Gendial_exp_sub_field(scroller,
106                                                      &(ad->itc_1icon_1text_sub),
107                                                      NULL, NULL, parentItem,
108                                                      SWALLOW_Type_1RADIO, rgd,
109                                                      600,                               /* 10min */
110                                                      SETTING_DISPLAY_TIME_10_MIN_STR, NULL);
111
112                 setting_update_chk_status(rgd,
113                                           data_parentItem->int_slp_setting_binded);
114
115         }
116 }
117 #if !SUPPOR_SEPARATE_BRIGHTNESS
118 // low battery
119 static void setting_display_main_lowbat_cb(keynode_t *key, void* data)
120 {
121         ret_if(data == NULL);
122         SettingDisplayUG *ad = (SettingDisplayUG *) data;
123         SETTING_TRACE_BEGIN;
124         ret_if(ad->data_br == NULL);
125
126         char* vconf_key = vconf_keynode_get_name(key);
127         SETTING_TRACE("the value of [ %s ] just changed", vconf_key);
128         // VCONFKEY_SYSMAN_BATTERY_STATUS_LOW
129
130         int battery_value;
131         vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
132         ad->low_bat = battery_value;
133
134         if (battery_value < VCONFKEY_SYSMAN_BAT_WARNING_LOW)
135         {
136                 elm_slider_value_set(ad->data_br->eo_check, 1);
137                 // disabled
138                 setting_disable_genlist_item(ad->data_br->item);
139         } else {
140                 setting_enable_genlist_item(ad->data_br->item);
141         }
142         return;
143 }
144 #endif
145
146 static int setting_display_main_create(void *cb)
147 {
148         SETTING_TRACE_BEGIN;
149         /* error check */
150         retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
151
152         SettingDisplayUG *ad = (SettingDisplayUG *) cb;
153
154         Evas_Object *scroller = NULL;
155
156         /* add basic layout */
157         char setBtnStr[MAX_DISPLAY_NAME_LEN_ON_UI];
158         snprintf(setBtnStr, sizeof(setBtnStr), "%s",
159                  (char *)dgettext("sys_string", "IDS_COM_BODY_BACK"));
160
161         ad->ly_main =
162             setting_create_layout_navi_bar_genlist(ad->win_main_layout,
163                                                    ad->win_get,
164                                                    _(KeyStr_Display), setBtnStr,
165                                                    NULL,
166                                                    setting_display_main_click_softkey_back_cb,
167                                                    NULL, ad, &scroller,
168                                                    &(ad->navi_bar));
169         setting_enable_expandable_genlist(scroller, ad,
170                                           __setting_display_main_exp_cb, NULL);
171
172         Elm_Object_Item *item = NULL;;
173
174         item =
175             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
176                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
177         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
178
179         int value = 0;
180         int ret = 0;
181
182         if (!isEmulBin()) {
183                 char *curmode = vconf_get_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME);
184                 SETTING_TRACE(">>> CUR SCREEN MODE : %s ", curmode);
185
186                 int i = 0;
187                 for (; i < sizeof(str_in_arr)/sizeof(str_in_arr[0]); i++) {
188                         if (0 == safeStrCmp(str_in_arr[i], curmode)) {
189                                 ad->data_screen_mode = setting_create_Gendial_field_def(scroller, &(itc_2text_3),
190                                              setting_display_main_mouse_up_Gendial_list_cb,
191                                              ad, SWALLOW_Type_INVALID, NULL,
192                                              NULL, 0, Keystr_ScreenMode,
193                                              _(str_out_arr[i]), NULL);
194                                 if (ad->data_screen_mode) {
195                                         ad->data_screen_mode->userdata = ad;
196                                 } else {
197                                         SETTING_TRACE_ERROR("ad->data_screen_mode is NULL");
198                                 }
199                                 break;
200                         }
201                 }
202
203                 item =
204                     elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
205                                             ELM_GENLIST_ITEM_NONE, NULL, NULL);
206                 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
207
208                 #if !SUPPOR_SEPARATE_BRIGHTNESS
209                 /* BRIGHTNESS */
210                 ad->data_br =
211                     setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2),
212                                                      setting_display_main_mouse_up_Gendial_list_cb,
213                                                      ad, SWALLOW_Type_INVALID, NULL,
214                                                      NULL, 0, "IDS_COM_OPT_BRIGHTNESS",
215                                                      get_brightness_mode_str(), NULL);
216                 if (ad->data_br) {
217                         ad->data_br->userdata = ad;
218                 } else {
219                         SETTING_TRACE_ERROR("ad->data_br is NULL");
220                 }
221                 #endif
222
223                 ret = vconf_get_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, &value);
224                 ad->data_auto_adjust_scrn_tone =
225                     setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
226                                                      setting_display_main_mouse_up_Gendial_list_cb,
227                                                      ad, SWALLOW_Type_1TOGGLE, NULL,
228                                                      NULL, value, KeyStr_AdjustScreenTone,
229                                                      NULL,
230                                                      setting_display_main_auto_adjust_chk_btn_cb);
231                 if (ad->data_auto_adjust_scrn_tone) {
232                         ad->data_auto_adjust_scrn_tone->userdata = ad;
233                 } else {
234                         SETTING_TRACE_ERROR("ad->data_battery is NULL");
235                 }
236
237                 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
238                                                 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
239                                                 NULL, NULL, 0, KeyStr_AdjustScreenTone_Dsc, NULL, NULL);
240
241                 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
242                                                  ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
243         }
244
245         /* BACKLIGHTTIME */
246         char* pa_backlight_time = get_pa_backlight_time_str();
247         ad->data_back =
248             setting_create_Gendial_exp_parent_field(scroller,
249                                                     &(ad->itc_2text_3_parent),
250                                                     NULL, NULL,
251                                                     SWALLOW_Type_INVALID,
252                                                     KeyStr_BacklightTime,
253                                                 pa_backlight_time);
254
255 #if SUPPORT_LCD_TIMEOUT_KEEPING
256         if (ad->data_back) {
257                 ad->data_back->int_slp_setting_binded =
258                         INT_SLP_SETTING_LCD_TIMEOUT_NORMAL_BACKUP;
259         } else {
260                 SETTING_TRACE_ERROR("ad->data_back is NULL");
261         }
262 #else
263         if (ad->data_back) {
264                 ad->data_back->int_slp_setting_binded =
265                         INT_SLP_SETTING_LCD_TIMEOUT_NORMAL;
266         } else {
267                 SETTING_TRACE_ERROR("ad->data_back is NULL");
268         }
269 #endif
270         G_FREE(pa_backlight_time);
271
272         /*  add separator */
273         item =
274             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
275                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
276         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
277
278         /* setting_get_bool_slp_key(BOOL_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &auto_value, &err); */
279         value = 0;
280         vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &value);
281         ad->data_battery =
282             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
283                                              setting_display_main_mouse_up_Gendial_list_cb,
284                                              ad, SWALLOW_Type_1TOGGLE, NULL,
285                                              NULL, value, LAUNCH_BATTERY_STR,
286                                              NULL,
287                                              setting_display_main_battery_chk_btn_cb);
288         if (ad->data_battery) {
289                 ad->data_battery->userdata = ad;
290         } else {
291                 SETTING_TRACE_ERROR("ad->data_battery is NULL");
292         }
293
294         setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
295                                         ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
296                                         NULL, NULL, 0, LAUNCH_BATTERY_DESC, NULL, NULL);
297
298 #if OPENING_EFFECT
299         elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL), 
300                                          ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
301
302         /*  add separator */
303         item =
304             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
305                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
306         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
307
308         /* Launch Effect - Opening Effect */
309         int launch_effect_value = 0;
310         Ecore_X_Window root = 0;
311         Ecore_X_Atom effect_enable_atom = 0;
312
313         root = setting_display_main_effect_get_root(ad->win_main_layout);
314         effect_enable_atom = ecore_x_atom_get("_NET_CM_EFFECT_ENABLE");
315
316         if (root) {
317                 ecore_x_window_prop_card32_get(root, effect_enable_atom,
318                                                (unsigned int *)
319                                                &launch_effect_value, 1);
320         }
321         ad->data_launch_effect =
322             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
323                                              setting_display_main_mouse_up_Gendial_list_cb,
324                                              ad, SWALLOW_Type_1TOGGLE, NULL,
325                                              NULL, launch_effect_value,
326                                              LAUNCH_EFFECT_STR, NULL,
327                                              setting_display_main_launch_effect_chk_btn_cb);
328         if (ad->data_launch_effect) {
329                 ad->data_launch_effect->userdata = ad;
330         } else {
331                 SETTING_TRACE_ERROR("ad->data_launch_effect is NULL");
332         }
333 #endif
334         /*  Launch Image on/off */
335         ret = SETTING_RETURN_FAIL;
336 #ifdef UNUSED_VCONFKEY
337         int launch_image_value;
338         int err;
339         /* value set */
340         ret = setting_get_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
341                                      &launch_image_value, &err);
342         ad->data_launch_image =
343             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
344                                              setting_display_main_mouse_up_Gendial_list_cb,
345                                              ad, SWALLOW_Type_1TOGGLE, NULL,
346                                              NULL, launch_image_value,
347                                              LAUNCH_IMAGE_STR, NULL,
348                                              setting_display_main_launch_image_chk_btn_cb);
349         if (ad->data_launch_image) {
350                 ad->data_launch_image->userdata = ad;
351         } else {
352                 SETTING_TRACE_ERROR("ad->data_launch_image is NULL");
353         }
354 #endif
355 #if !SUPPOR_SEPARATE_BRIGHTNESS
356         if (ad->data_br) {
357                 int battery_value;
358                 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
359                 ad->low_bat = battery_value;
360
361                 if ( battery_value < VCONFKEY_SYSMAN_BAT_WARNING_LOW )
362                 {
363                         elm_slider_value_set(ad->data_br->eo_check, 1);
364                         setting_disable_genlist_item(ad->data_br->item);
365                 }
366                 else
367                 {
368                         setting_enable_genlist_item(ad->data_br->item);
369                 }
370         }
371
372         vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_main_lowbat_cb, ad);
373 #endif
374
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 }
508
509 static void
510 setting_display_main_click_softkey_back_cb(void *data, Evas_Object *obj,
511                                            void *event_info)
512 {
513         SETTING_TRACE_BEGIN;
514         /* error check */
515         setting_retm_if(data == NULL,
516                         "[Setting > Display] Data parameter is NULL");
517
518         SettingDisplayUG *ad = (SettingDisplayUG *) data;
519
520         /* Send destroy request */
521         ug_destroy_me(ad->ug);
522         SETTING_TRACE_END;
523
524 }
525
526 static void setting_display_main_auto_adjust_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
527 {
528         SETTING_TRACE_BEGIN;
529         /* error check */
530         retm_if(data == NULL, "Data parameter is NULL");
531         Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
532
533         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
534         vconf_set_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, list_item->chk_status);
535 }
536
537
538 static void
539 setting_display_main_battery_chk_btn_cb(void *data, Evas_Object *obj,
540                                         void *event_info)
541 {
542         SETTING_TRACE_BEGIN;
543         /* error check */
544         retm_if(data == NULL, "Data parameter is NULL");
545         Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
546
547         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
548         vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
549 }
550
551 #if OPENING_EFFECT
552 static void
553 setting_display_main_launch_effect_chk_btn_cb(void *data, Evas_Object *obj,
554                                               void *event_info)
555 {
556         SETTING_TRACE_BEGIN;
557         /* error check */
558         retm_if(data == NULL, "Data parameter is NULL");
559         Setting_GenGroupItem_Data *list_item =
560             (Setting_GenGroupItem_Data *) data;
561
562         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
563         setting_display_main_effect_set_value(list_item);
564         return;
565 }
566 #endif
567
568 /*  setting_display_brightness_chk_btn_cb*/
569 #ifdef UNUSED_VCONFKEY
570 /*  Fake image - launch effect*/
571 static void
572 setting_display_main_launch_image_chk_btn_cb(void *data, Evas_Object *obj,
573                                              void *event_info)
574 {
575         SETTING_TRACE_BEGIN;
576         /* error check */
577         retm_if(data == NULL, "Data parameter is NULL");
578         Setting_GenGroupItem_Data *list_item =
579             (Setting_GenGroupItem_Data *) data;
580
581         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
582
583         int err;
584         setting_set_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
585                                  list_item->chk_status, &err);
586 }
587 #endif
588 #if OPENING_EFFECT
589 static Ecore_X_Window setting_display_main_effect_get_root(Evas_Object *
590                                                            win_main)
591 {
592         Ecore_X_Window xwin = 0;
593         Ecore_X_Window root = 0;
594
595         retv_if(!win_main, root);
596
597         xwin = elm_win_xwindow_get(win_main);
598         retv_if(!xwin, root);
599
600         root = ecore_x_window_root_get(xwin);
601         return root;
602 }
603
604 static void setting_display_main_effect_set_value(void *data)
605 {
606         Setting_GenGroupItem_Data *list_item =
607             (Setting_GenGroupItem_Data *) data;
608         SettingDisplayUG *ad = list_item->userdata;
609         Ecore_X_Window root = 0;
610         Ecore_X_Atom effect_enable_atom = 0;
611         unsigned int is_enable = 0;     /* 0: effect disable, 1: effect enable */
612
613         root = setting_display_main_effect_get_root(ad->win_main_layout);
614         ret_if(!root);
615         effect_enable_atom = ecore_x_atom_get("_NET_CM_EFFECT_ENABLE");
616         ret_if(!effect_enable_atom);
617
618         if (list_item->chk_status) {
619                 is_enable = 1;
620         }
621
622         ecore_x_window_prop_card32_set(root, effect_enable_atom, &is_enable, 1);
623         return;
624 }
625 #endif