4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <setting-common-data-type.h>
22 #include <setting-common-data-slp-setting.h>
23 #include <setting-common-draw-widget.h>
24 #include <setting-common-view.h>
26 #include <setting-display-backlight.h>
28 static int setting_display_backlight_create(void *cb);
29 static int setting_display_backlight_destroy(void *cb);
30 static int setting_display_backlight_update(void *cb);
31 static int setting_display_backlight_cleanup(void *cb);
33 setting_view setting_view_display_backlight = {
34 .create = setting_display_backlight_create,
35 .destroy = setting_display_backlight_destroy,
36 .update = setting_display_backlight_update,
37 .cleanup = setting_display_backlight_cleanup,
40 /* ***************************************************
44 ****************************************************/
45 static int setting_display_backlight_create(void *cb)
48 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
50 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
52 /* add basic layout */
54 Evas_Object *scroller = NULL;
56 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
58 _(KeyStr_BacklightTime),
59 _("IDS_ST_BUTTON_BACK"),
61 setting_display_backlight_click_softkey_back_cb,
65 Evas_Object *rgd = elm_radio_add(scroller);
66 /*elm_radio_state_value_set(rgd, -1); */
67 elm_radio_value_set(rgd, -1);
70 Elm_Object_Item *item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
71 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
73 evas_object_smart_callback_add(scroller, "realized", __gl_realized_cb, NULL);
75 /* to do : radio menu */
76 int is_emul_bin = FALSE;
79 ad->data_backlight_always_on = setting_create_Gendial_field_1radio(scroller,
81 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
82 SWALLOW_Type_1RADIO, rgd,
84 "IDS_ST_BODY_ALWAYS_ON", NULL);
86 if (ad->data_backlight_always_on) {
87 ad->data_backlight_always_on->userdata = ad;
88 __BACK_POINTER_SET(ad->data_backlight_always_on);
90 SETTING_TRACE_ERROR("ad->data_backlight_always_on is NULL");
94 ad->data_backlight_15sec = setting_create_Gendial_field_1radio(scroller,
96 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
97 SWALLOW_Type_1RADIO, rgd,
99 SETTING_DISPLAY_TIME_15_SEC_STR, NULL);
100 if (ad->data_backlight_15sec) {
101 ad->data_backlight_15sec->userdata = ad;
102 __BACK_POINTER_SET(ad->data_backlight_15sec);
104 SETTING_TRACE_ERROR("ad->data_backlight_15sec is NULL");
107 ad->data_backlight_30sec = setting_create_Gendial_field_1radio(scroller,
109 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
110 SWALLOW_Type_1RADIO, rgd,
112 SETTING_DISPLAY_TIME_30_SEC_STR, NULL);
113 if (ad->data_backlight_30sec) {
114 ad->data_backlight_30sec->userdata = ad;
115 __BACK_POINTER_SET(ad->data_backlight_30sec);
117 SETTING_TRACE_ERROR("ad->data_backlight_30sec is NULL");
120 ad->data_backlight_1min = setting_create_Gendial_field_1radio(scroller,
122 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
123 SWALLOW_Type_1RADIO, rgd,
125 SETTING_DISPLAY_TIME_1_MIN_STR, NULL);
126 if (ad->data_backlight_1min) {
127 ad->data_backlight_1min->userdata = ad;
128 __BACK_POINTER_SET(ad->data_backlight_1min);
130 SETTING_TRACE_ERROR("ad->data_backlight_1min is NULL");
133 ad->data_backlight_2min = setting_create_Gendial_field_1radio(scroller,
135 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
136 SWALLOW_Type_1RADIO, rgd,
138 SETTING_DISPLAY_TIME_2_MIN_STR, NULL);
139 if (ad->data_backlight_2min) {
140 ad->data_backlight_2min->userdata = ad;
141 __BACK_POINTER_SET(ad->data_backlight_2min);
143 SETTING_TRACE_ERROR("ad->data_backlight_2min is NULL");
146 ad->data_backlight_5min = setting_create_Gendial_field_1radio(scroller,
148 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
149 SWALLOW_Type_1RADIO, rgd,
151 SETTING_DISPLAY_TIME_5_MIN_STR, NULL);
152 if (ad->data_backlight_5min) {
153 ad->data_backlight_5min->userdata = ad;
154 __BACK_POINTER_SET(ad->data_backlight_5min);
156 SETTING_TRACE_ERROR("ad->data_backlight_5min is NULL");
159 ad->data_backlight_10min = setting_create_Gendial_field_1radio(scroller,
161 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
162 SWALLOW_Type_1RADIO, rgd,
164 SETTING_DISPLAY_TIME_10_MIN_STR, NULL);
165 if (ad->data_backlight_10min) {
166 ad->data_backlight_10min->userdata = ad;
167 __BACK_POINTER_SET(ad->data_backlight_10min);
169 SETTING_TRACE_ERROR("ad->data_backlight_10min is NULL");
172 setting_update_chk_status(rgd, INT_SLP_SETTING_LCD_TIMEOUT_NORMAL);
174 setting_view_display_backlight.is_create = 1;
175 return SETTING_RETURN_SUCCESS;
178 static int setting_display_backlight_destroy(void *cb)
182 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
183 retv_if(!(setting_view_display_backlight.is_create), SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
184 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
185 if (ad->ly_main != NULL) {
186 evas_object_del(ad->ly_main);
189 setting_view_display_backlight.is_create = 0;
190 return SETTING_RETURN_SUCCESS;
193 static int setting_display_backlight_update(void *cb)
197 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
198 return SETTING_RETURN_SUCCESS;
201 static int setting_display_backlight_cleanup(void *cb)
205 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
207 return SETTING_RETURN_SUCCESS;
210 /* ***************************************************
214 ****************************************************/
216 setting_display_backlight_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
221 setting_retm_if(data == NULL, "Data parameter is NULL");
223 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
224 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
225 elm_genlist_item_selected_set(item, 0);
226 Setting_GenGroupItem_Data *list_item =
227 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
228 setting_retm_if(NULL == list_item, "list_item is NULL");
230 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
231 SETTING_TRACE("chk_status[%d]", list_item->chk_status);
233 int list_val = list_item->chk_status;
234 int old_val = elm_radio_value_get(list_item->eo_check);
237 setting_get_int_slp_key(INT_SLP_SETTING_LCD_TIMEOUT_NORMAL, &val, &err);
238 if (list_val == old_val && list_val == val) {
239 SETTING_TRACE_DEBUG("Selected same type");
243 int ret = setting_set_int_slp_key(INT_SLP_SETTING_LCD_TIMEOUT_NORMAL, list_item->chk_status, &err);
245 SETTING_TRACE_ERROR("set vconf failed");
246 elm_radio_value_set(list_item->eo_check, val);
249 elm_radio_value_set(list_item->eo_check, list_item->chk_status);
255 setting_display_backlight_click_softkey_back_cb(void *data, Evas_Object *obj,
260 retm_if(data == NULL, "[Setting > Security] Data parameter is NULL");
262 SettingDisplayUG *ad = (SettingDisplayUG *) data;
263 /* Send destroy request */
264 ug_destroy_me(ad->ug);