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_COM_BODY_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 /*ad->data_backlight_always_on->group_style = SETTING_GROUP_STYLE_CENTER; */
89 setting_genlist_item_groupstyle_set(ad->data_backlight_always_on, SETTING_GROUP_STYLE_TOP);
90 __BACK_POINTER_SET(ad->data_backlight_always_on);
92 SETTING_TRACE_ERROR("ad->data_backlight_always_on is NULL");
96 ad->data_backlight_15sec = setting_create_Gendial_field_1radio(scroller,
98 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
99 SWALLOW_Type_1RADIO, rgd,
101 SETTING_DISPLAY_TIME_15_SEC_STR, NULL);
102 if (ad->data_backlight_15sec) {
103 ad->data_backlight_15sec->userdata = ad;
104 setting_genlist_item_groupstyle_set(ad->data_backlight_15sec, (is_emul_bin ? SETTING_GROUP_STYLE_CENTER : SETTING_GROUP_STYLE_TOP));
105 __BACK_POINTER_SET(ad->data_backlight_15sec);
107 SETTING_TRACE_ERROR("ad->data_backlight_15sec is NULL");
110 ad->data_backlight_30sec = setting_create_Gendial_field_1radio(scroller,
112 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
113 SWALLOW_Type_1RADIO, rgd,
115 SETTING_DISPLAY_TIME_30_SEC_STR, NULL);
116 if (ad->data_backlight_30sec) {
117 ad->data_backlight_30sec->userdata = ad;
118 setting_genlist_item_groupstyle_set(ad->data_backlight_30sec, SETTING_GROUP_STYLE_CENTER);
119 __BACK_POINTER_SET(ad->data_backlight_30sec);
121 SETTING_TRACE_ERROR("ad->data_backlight_30sec is NULL");
124 ad->data_backlight_1min = setting_create_Gendial_field_1radio(scroller,
126 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
127 SWALLOW_Type_1RADIO, rgd,
129 SETTING_DISPLAY_TIME_1_MIN_STR, NULL);
130 if (ad->data_backlight_1min) {
131 ad->data_backlight_1min->userdata = ad;
132 setting_genlist_item_groupstyle_set(ad->data_backlight_1min, SETTING_GROUP_STYLE_CENTER);
133 __BACK_POINTER_SET(ad->data_backlight_1min);
135 SETTING_TRACE_ERROR("ad->data_backlight_1min is NULL");
138 ad->data_backlight_2min = setting_create_Gendial_field_1radio(scroller,
140 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
141 SWALLOW_Type_1RADIO, rgd,
143 SETTING_DISPLAY_TIME_2_MIN_STR, NULL);
144 if (ad->data_backlight_2min) {
145 ad->data_backlight_2min->userdata = ad;
146 setting_genlist_item_groupstyle_set(ad->data_backlight_2min, SETTING_GROUP_STYLE_CENTER);
147 __BACK_POINTER_SET(ad->data_backlight_2min);
149 SETTING_TRACE_ERROR("ad->data_backlight_2min is NULL");
152 ad->data_backlight_5min = setting_create_Gendial_field_1radio(scroller,
154 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
155 SWALLOW_Type_1RADIO, rgd,
157 SETTING_DISPLAY_TIME_5_MIN_STR, NULL);
158 if (ad->data_backlight_5min) {
159 ad->data_backlight_5min->userdata = ad;
160 setting_genlist_item_groupstyle_set(ad->data_backlight_5min, SETTING_GROUP_STYLE_CENTER);
161 __BACK_POINTER_SET(ad->data_backlight_5min);
163 SETTING_TRACE_ERROR("ad->data_backlight_5min is NULL");
166 ad->data_backlight_10min = setting_create_Gendial_field_1radio(scroller,
168 setting_display_backlight_mouse_up_Gendial_list_cb, ad,
169 SWALLOW_Type_1RADIO, rgd,
171 SETTING_DISPLAY_TIME_10_MIN_STR, NULL);
172 if (ad->data_backlight_10min) {
173 ad->data_backlight_10min->userdata = ad;
174 setting_genlist_item_groupstyle_set(ad->data_backlight_10min, SETTING_GROUP_STYLE_BOTTOM);
175 __BACK_POINTER_SET(ad->data_backlight_10min);
177 SETTING_TRACE_ERROR("ad->data_backlight_10min is NULL");
180 setting_update_chk_status(rgd, INT_SLP_SETTING_LCD_TIMEOUT_NORMAL);
182 setting_view_display_backlight.is_create = 1;
183 return SETTING_RETURN_SUCCESS;
186 static int setting_display_backlight_destroy(void *cb)
190 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
191 retv_if(!(setting_view_display_backlight.is_create), SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
192 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
193 if (ad->ly_main != NULL) {
194 evas_object_del(ad->ly_main);
197 setting_view_display_backlight.is_create = 0;
198 return SETTING_RETURN_SUCCESS;
201 static int setting_display_backlight_update(void *cb)
205 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
206 return SETTING_RETURN_SUCCESS;
209 static int setting_display_backlight_cleanup(void *cb)
213 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
215 return SETTING_RETURN_SUCCESS;
218 /* ***************************************************
222 ****************************************************/
224 setting_display_backlight_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
229 setting_retm_if(data == NULL, "Data parameter is NULL");
231 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
232 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
233 elm_genlist_item_selected_set(item, 0);
234 Setting_GenGroupItem_Data *list_item =
235 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
237 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
238 SETTING_TRACE("chk_status[%d]", list_item->chk_status);
240 int list_val = list_item->chk_status;
241 int old_val = elm_radio_value_get(list_item->eo_check);
244 setting_get_int_slp_key(INT_SLP_SETTING_LCD_TIMEOUT_NORMAL, &val, &err);
245 if (list_val == old_val && list_val == val) {
246 SETTING_TRACE_DEBUG("Selected same type");
250 int ret = setting_set_int_slp_key(INT_SLP_SETTING_LCD_TIMEOUT_NORMAL, list_item->chk_status, &err);
252 SETTING_TRACE_ERROR("set vconf failed");
253 elm_radio_value_set(list_item->eo_check, val);
256 elm_radio_value_set(list_item->eo_check, list_item->chk_status);
262 setting_display_backlight_click_softkey_back_cb(void *data, Evas_Object *obj,
267 retm_if(data == NULL, "[Setting > Security] Data parameter is NULL");
269 SettingDisplayUG *ad = (SettingDisplayUG *) data;
270 /* Send destroy request */
271 ug_destroy_me(ad->ug);