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