466bd49762a2ee196fde627bb930c5cf03636cb8
[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         int value = 0;
179         int ret = 0;
180
181         if (!isEmulBin()) {
182                 char *curmode = vconf_get_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME);
183                 SETTING_TRACE(">>> CUR SCREEN MODE : %s ", curmode);
184
185                 int i = 0;
186                 for (; i < sizeof(str_in_arr)/sizeof(str_in_arr[0]); i++) {
187                         if (0 == safeStrCmp(str_in_arr[i], curmode)) {
188                                 ad->data_screen_mode = setting_create_Gendial_field_def(scroller, &(itc_2text_3),
189                                              setting_display_main_mouse_up_Gendial_list_cb,
190                                              ad, SWALLOW_Type_INVALID, NULL,
191                                              NULL, 0, Keystr_ScreenMode,
192                                              _(str_out_arr[i]), NULL);
193                                 if (ad->data_screen_mode) {
194                                         ad->data_screen_mode->userdata = ad;
195                                 } else {
196                                         SETTING_TRACE_ERROR("ad->data_screen_mode is NULL");
197                                 }
198                                 break;
199                         }
200                 }
201
202                 item =
203                     elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
204                                             ELM_GENLIST_ITEM_NONE, NULL, NULL);
205                 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
206
207                 #if !SUPPOR_SEPARATE_BRIGHTNESS
208                 /* BRIGHTNESS */
209                 ad->data_br =
210                     setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2),
211                                                      setting_display_main_mouse_up_Gendial_list_cb,
212                                                      ad, SWALLOW_Type_INVALID, NULL,
213                                                      NULL, 0, "IDS_COM_OPT_BRIGHTNESS",
214                                                      get_brightness_mode_str(), NULL);
215                 if (ad->data_br) {
216                         ad->data_br->userdata = ad;
217                 } else {
218                         SETTING_TRACE_ERROR("ad->data_br is NULL");
219                 }
220                 #endif
221
222                 ret = vconf_get_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, &value);
223                 ad->data_auto_adjust_scrn_tone =
224                     setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
225                                                      setting_display_main_mouse_up_Gendial_list_cb,
226                                                      ad, SWALLOW_Type_1TOGGLE, NULL,
227                                                      NULL, value, KeyStr_AdjustScreenTone,
228                                                      NULL,
229                                                      setting_display_main_auto_adjust_chk_btn_cb);
230                 if (ad->data_auto_adjust_scrn_tone) {
231                         ad->data_auto_adjust_scrn_tone->userdata = ad;
232                 } else {
233                         SETTING_TRACE_ERROR("ad->data_battery is NULL");
234                 }
235
236                 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
237                                                 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
238                                                 NULL, NULL, 0, KeyStr_AdjustScreenTone_Dsc, NULL, NULL);
239
240                 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
241                                                  ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
242         }
243         
244         /* BACKLIGHTTIME */
245         char* pa_backlight_time = get_pa_backlight_time_str();
246         ad->data_back =
247             setting_create_Gendial_exp_parent_field(scroller,
248                                                     &(ad->itc_2text_3_parent),
249                                                     NULL, NULL,
250                                                     SWALLOW_Type_INVALID,
251                                                     "IDS_ST_LIGHTSETTINGS_BODY_BACKLIGHTTIME",
252                                                 pa_backlight_time);
253 #if SUPPORT_LCD_TIMEOUT_KEEPING
254         if (ad->data_back) {
255                 ad->data_back->int_slp_setting_binded =
256                         INT_SLP_SETTING_LCD_TIMEOUT_NORMAL_BACKUP;
257         } else {
258                 SETTING_TRACE_ERROR("ad->data_back is NULL");
259         }
260 #else
261         if (ad->data_back) {
262                 ad->data_back->int_slp_setting_binded =
263                         INT_SLP_SETTING_LCD_TIMEOUT_NORMAL;
264         } else {
265                 SETTING_TRACE_ERROR("ad->data_back is NULL");
266         }
267 #endif
268         G_FREE(pa_backlight_time);
269
270         /*  add separator */
271         item =
272             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
273                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
274         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
275
276         /* setting_get_bool_slp_key(BOOL_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &auto_value, &err); */
277         value = 0;
278         vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &value);
279         ad->data_battery =
280             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
281                                              setting_display_main_mouse_up_Gendial_list_cb,
282                                              ad, SWALLOW_Type_1TOGGLE, NULL,
283                                              NULL, value, LAUNCH_BATTERY_STR,
284                                              NULL,
285                                              setting_display_main_battery_chk_btn_cb);
286         if (ad->data_battery) {
287                 ad->data_battery->userdata = ad;
288         } else {
289                 SETTING_TRACE_ERROR("ad->data_battery is NULL");
290         }
291
292         setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
293                                         ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
294                                         NULL, NULL, 0, LAUNCH_BATTERY_DESC, NULL, NULL);
295
296 #if OPENING_EFFECT
297         elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
298                                          ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
299
300         /*  add separator */
301         item =
302             elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
303                                     ELM_GENLIST_ITEM_NONE, NULL, NULL);
304         elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
305
306         /* Launch Effect - Opening Effect */
307         int launch_effect_value = 0;
308         Ecore_X_Window root = 0;
309         Ecore_X_Atom effect_enable_atom = 0;
310
311         root = setting_display_main_effect_get_root(ad->win_main_layout);
312         effect_enable_atom = ecore_x_atom_get("_NET_CM_EFFECT_ENABLE");
313
314         if (root) {
315                 ecore_x_window_prop_card32_get(root, effect_enable_atom,
316                                                (unsigned int *)
317                                                &launch_effect_value, 1);
318         }
319         ad->data_launch_effect =
320             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
321                                              setting_display_main_mouse_up_Gendial_list_cb,
322                                              ad, SWALLOW_Type_1TOGGLE, NULL,
323                                              NULL, launch_effect_value,
324                                              LAUNCH_EFFECT_STR, NULL,
325                                              setting_display_main_launch_effect_chk_btn_cb);
326         if (ad->data_launch_effect) {
327                 ad->data_launch_effect->userdata = ad;
328         } else {
329                 SETTING_TRACE_ERROR("ad->data_launch_effect is NULL");
330         }
331 #endif
332         /*  Launch Image on/off */
333         ret = SETTING_RETURN_FAIL;
334 #ifdef UNUSED_VCONFKEY
335         int launch_image_value;
336         int err;
337         /* value set */
338         ret = setting_get_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
339                                      &launch_image_value, &err);
340         ad->data_launch_image =
341             setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
342                                              setting_display_main_mouse_up_Gendial_list_cb,
343                                              ad, SWALLOW_Type_1TOGGLE, NULL,
344                                              NULL, launch_image_value,
345                                              LAUNCH_IMAGE_STR, NULL,
346                                              setting_display_main_launch_image_chk_btn_cb);
347         if (ad->data_launch_image) {
348                 ad->data_launch_image->userdata = ad;
349         } else {
350                 SETTING_TRACE_ERROR("ad->data_launch_image is NULL");
351         }
352 #endif
353 #if !SUPPOR_SEPARATE_BRIGHTNESS
354         if (ad->data_br) {
355                 int battery_value;
356                 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
357                 ad->low_bat = battery_value;
358
359                 if ( battery_value < VCONFKEY_SYSMAN_BAT_WARNING_LOW )
360                 {
361                         elm_slider_value_set(ad->data_br->eo_check, 1);
362                         setting_disable_genlist_item(ad->data_br->item);
363                 }
364                 else
365                 {
366                         setting_enable_genlist_item(ad->data_br->item);
367                 }
368         }
369
370         vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_main_lowbat_cb, ad);
371 #endif
372         setting_view_display_main.is_create = 1;
373         return SETTING_RETURN_SUCCESS;
374 }
375
376 static int setting_display_main_destroy(void *cb)
377 {
378         SETTING_TRACE_BEGIN;
379         /* error check */
380         retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
381
382         SettingDisplayUG *ad = (SettingDisplayUG *) cb;
383 #if !SUPPOR_SEPARATE_BRIGHTNESS
384         // low battery handler - registration
385         vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_main_lowbat_cb);
386 #endif
387         if (ad->ly_main != NULL) {
388                 evas_object_del(ad->ly_main);
389                 /* if(ad->back_dialData) FREE(ad->back_dialData); */
390                 setting_view_display_main.is_create = 0;
391         }
392
393         return SETTING_RETURN_SUCCESS;
394 }
395
396 static int setting_display_main_update(void *cb)
397 {
398         SETTING_TRACE_BEGIN;
399         /* error check */
400         retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
401
402         SettingDisplayUG *ad = (SettingDisplayUG *) cb;
403
404         if (ad->ly_main != NULL) {
405                 evas_object_show(ad->ly_main);
406                 if (ad->data_br) {
407                         ad->data_br->sub_desc =
408                             (char *)g_strdup(get_brightness_mode_str());
409                         elm_object_item_data_set(ad->data_br->item, ad->data_br);
410                         elm_genlist_item_update(ad->data_br->item);
411
412                 }
413
414                 if (ad->data_screen_mode) {
415                         char *curmode = vconf_get_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME);
416                         SETTING_TRACE(">>> CUR SCREEN MODE : %s ", curmode);
417                         int i = 0;
418                         for (; i < sizeof(str_in_arr)/sizeof(str_in_arr[0]); i++) {
419                                 if (0 == safeStrCmp(str_in_arr[i], curmode)) {
420                                         ad->data_screen_mode->sub_desc = (char *)g_strdup(_(str_out_arr[i]));
421                                         break;
422                                 }
423                         }
424                         elm_object_item_data_set(ad->data_screen_mode->item, ad->data_screen_mode);
425                         elm_genlist_item_update(ad->data_screen_mode->item);
426                 }
427         }
428
429         return SETTING_RETURN_SUCCESS;
430 }
431
432 static int setting_display_main_cleanup(void *cb)
433 {
434         SETTING_TRACE_BEGIN;
435         return SETTING_RETURN_SUCCESS;
436 }
437
438 /* ***************************************************
439  *
440  *general func
441  *
442  ***************************************************/
443
444 static void
445 setting_display_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
446                                               void *event_info)
447 {
448         /* error check */
449         setting_retm_if(data == NULL, "Data parameter is NULL");
450
451         retm_if(event_info == NULL, "Invalid argument: event info is NULL");
452         Elm_Object_Item *item = (Elm_Object_Item *) event_info;
453         elm_genlist_item_selected_set(item, 0);
454         Setting_GenGroupItem_Data *list_item =
455             (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
456
457         SettingDisplayUG *ad = (SettingDisplayUG *) data;
458
459         SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
460
461         if (!safeStrCmp("IDS_COM_OPT_BRIGHTNESS", list_item->keyStr)) {
462                 setting_view_change(&setting_view_display_main,
463                                     &setting_view_display_brightness, ad);
464         }
465         else if (!safeStrCmp(KeyStr_AdjustScreenTone, list_item->keyStr)) {
466                 int old_status = elm_check_state_get(list_item->eo_check);
467                 /* new status */
468                 list_item->chk_status = !old_status;
469                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
470                 vconf_set_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, list_item->chk_status);
471         }
472 #if OPENING_EFFECT
473         else if (!safeStrCmp(LAUNCH_EFFECT_STR, list_item->keyStr)) {
474                 int old_status = elm_check_state_get(list_item->eo_check);
475                 /* new status  */
476                 list_item->chk_status = !old_status;
477                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
478
479                 setting_display_main_effect_set_value(list_item);
480         }
481 #endif
482 #ifdef UNUSED_VCONFKEY
483         else if (!safeStrCmp(LAUNCH_IMAGE_STR, list_item->keyStr)) {
484                 int old_status = elm_check_state_get(list_item->eo_check);
485                 /* new status  */
486                 list_item->chk_status = !old_status;
487                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
488
489                 int err;
490                 setting_set_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
491                                          list_item->chk_status, &err);
492         }
493 #endif
494         else if (!safeStrCmp(LAUNCH_BATTERY_STR, list_item->keyStr)) {
495                 int old_status = elm_check_state_get(list_item->eo_check);
496                 /* new status */
497                 list_item->chk_status = !old_status;
498                 elm_check_state_set(list_item->eo_check, list_item->chk_status);
499                 vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
500         }
501         else if (!safeStrCmp(Keystr_ScreenMode, list_item->keyStr)) {
502                 setting_view_change(&setting_view_display_main, &setting_view_display_screen_mode, ad);
503         }
504 }
505
506 static void
507 setting_display_main_click_softkey_back_cb(void *data, Evas_Object *obj,
508                                            void *event_info)
509 {
510         SETTING_TRACE_BEGIN;
511         /* error check */
512         setting_retm_if(data == NULL,
513                         "[Setting > Display] Data parameter is NULL");
514
515         SettingDisplayUG *ad = (SettingDisplayUG *) data;
516
517         /* Send destroy request */
518         ug_destroy_me(ad->ug);
519         SETTING_TRACE_END;
520
521 }
522
523 static void setting_display_main_auto_adjust_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
524 {
525         SETTING_TRACE_BEGIN;
526         /* error check */
527         retm_if(data == NULL, "Data parameter is NULL");
528         Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
529
530         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
531         vconf_set_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, list_item->chk_status);
532 }
533
534
535 static void
536 setting_display_main_battery_chk_btn_cb(void *data, Evas_Object *obj,
537                                         void *event_info)
538 {
539         SETTING_TRACE_BEGIN;
540         /* error check */
541         retm_if(data == NULL, "Data parameter is NULL");
542         Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
543
544         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
545         vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
546 }
547
548 #if OPENING_EFFECT
549 static void
550 setting_display_main_launch_effect_chk_btn_cb(void *data, Evas_Object *obj,
551                                               void *event_info)
552 {
553         SETTING_TRACE_BEGIN;
554         /* error check */
555         retm_if(data == NULL, "Data parameter is NULL");
556         Setting_GenGroupItem_Data *list_item =
557             (Setting_GenGroupItem_Data *) data;
558
559         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
560         setting_display_main_effect_set_value(list_item);
561         return;
562 }
563 #endif
564
565 /*  setting_display_brightness_chk_btn_cb*/
566 #ifdef UNUSED_VCONFKEY
567 /*  Fake image - launch effect*/
568 static void
569 setting_display_main_launch_image_chk_btn_cb(void *data, Evas_Object *obj,
570                                              void *event_info)
571 {
572         SETTING_TRACE_BEGIN;
573         /* error check */
574         retm_if(data == NULL, "Data parameter is NULL");
575         Setting_GenGroupItem_Data *list_item =
576             (Setting_GenGroupItem_Data *) data;
577
578         list_item->chk_status = elm_check_state_get(obj);       /*  for genlist update status */
579
580         int err;
581         setting_set_bool_slp_key(BOOL_SLP_SETTING_LAUNCH_IMAGE,
582                                  list_item->chk_status, &err);
583 }
584 #endif
585 #if OPENING_EFFECT
586 static Ecore_X_Window setting_display_main_effect_get_root(Evas_Object *
587                                                            win_main)
588 {
589         Ecore_X_Window xwin = 0;
590         Ecore_X_Window root = 0;
591
592         retv_if(!win_main, root);
593
594         xwin = elm_win_xwindow_get(win_main);
595         retv_if(!xwin, root);
596
597         root = ecore_x_window_root_get(xwin);
598         return root;
599 }
600
601 static void setting_display_main_effect_set_value(void *data)
602 {
603         Setting_GenGroupItem_Data *list_item =
604             (Setting_GenGroupItem_Data *) data;
605         SettingDisplayUG *ad = list_item->userdata;
606         Ecore_X_Window root = 0;
607         Ecore_X_Atom effect_enable_atom = 0;
608         unsigned int is_enable = 0;     /* 0: effect disable, 1: effect enable */
609
610         root = setting_display_main_effect_get_root(ad->win_main_layout);
611         ret_if(!root);
612         effect_enable_atom = ecore_x_atom_get("_NET_CM_EFFECT_ENABLE");
613         ret_if(!effect_enable_atom);
614
615         if (list_item->chk_status) {
616                 is_enable = 1;
617         }
618
619         ecore_x_window_prop_card32_set(root, effect_enable_atom, &is_enable, 1);
620         return;
621 }
622 #endif