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.
22 #include <setting-powersaving-brightness.h>
24 #define Left_Bright_Icon IMG_BRIGTHNESS_LEFT
25 #define Right_Bright_Icon IMG_BRIGHTNESS_RIGHT
27 static int setting_powersaving_brightness_create(void *cb);
28 static int setting_powersaving_brightness_destroy(void *cb);
29 static int setting_powersaving_brightness_update(void *cb);
30 static int setting_powersaving_brightness_cleanup(void *cb);
32 setting_view setting_view_powersaving_brightness = {
33 .create = setting_powersaving_brightness_create,
34 .destroy = setting_powersaving_brightness_destroy,
35 .update = setting_powersaving_brightness_update,
36 .cleanup = setting_powersaving_brightness_cleanup,
39 /* ***************************************************
43 ***************************************************/
45 static int setting_powersaving_brightness_create(void *cb)
48 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
50 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
52 Evas_Object *navi_bar = ad->navi_bar;
53 Evas_Object *sub_layout = elm_layout_add(navi_bar);
54 elm_layout_file_set(sub_layout, SETTING_THEME_EDJ_NAME,
57 Evas_Object *genlist = elm_genlist_add(ad->win_main_layout);
58 elm_object_style_set(genlist, "dialogue");
59 retvm_if(genlist == NULL, SETTING_RETURN_FAIL,
60 "Cannot set scroller object as contento of layout");
61 elm_genlist_clear(genlist); /* first to clear list */
63 setting_push_layout_navi_bar(_(KeyStr_Brightness),
64 _("IDS_COM_BODY_BACK"), NULL, NULL,
65 setting_powersaving_brightness_click_softkey_cancel_cb,
67 NULL, ad, sub_layout, navi_bar, NULL);;
68 elm_object_part_content_set(sub_layout, "search_list2", genlist);
73 Elm_Object_Item *item = NULL;;
76 elm_genlist_item_append(genlist, &itc_seperator, NULL, NULL,
77 ELM_GENLIST_ITEM_NONE, NULL, NULL);
78 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
80 // [control] AUTOMATIC - boolean - vconf
81 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_AUTO_STATUS, &auto_value); //if failed, keep intial value
82 SETTING_TRACE("auto_value:%d", auto_value);
84 // [UI] AUTOMATIC - boolean
86 setting_create_Gendial_field_def(genlist, &itc_1text_1icon,
87 setting_powersaving_brightness_mouse_up_Gendial_list_cb,
88 ad, SWALLOW_Type_1TOGGLE, NULL,
90 "IDS_COM_BODY_AUTOMATIC", NULL,
91 setting_powersaving_brightness_chk_btn_cb);
92 if (ad->data_br_auto) {
93 __BACK_POINTER_SET(ad->data_br_auto);
94 ad->data_br_auto->userdata = ad;
96 SETTING_TRACE_ERROR("ad->data_br_auto is NULL");
100 vconf_get_int(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_VALUE, &value); //if failed, keep intial value
101 SETTING_TRACE("auto_value:%d", value);
103 setting_create_Gendial_field_def(genlist, &itc_1icon, NULL,
104 NULL, SWALLOW_Type_LAYOUT_SLIDER,
106 Right_Bright_Icon, value, NULL,
108 setting_powersaving_birghtness_bright_slider_value_change_cb);
110 if (ad->data_br_sli) {
111 __BACK_POINTER_SET(ad->data_br_sli);
113 ad->data_br_sli->win_main = ad->win_main_layout;
114 ad->data_br_sli->evas = ad->evas;
115 ad->data_br_sli->isIndicatorVisible = true;
116 ad->data_br_sli->slider_min = 1;
117 ad->data_br_sli->slider_max = 100;
118 ad->data_br_sli->userdata = ad;
121 SETTING_TRACE_ERROR("ad->data_br_sli is NULL");
124 if (auto_value && ad->data_br_sli) {
125 setting_disable_genlist_item(ad->data_br_sli->item);
128 setting_view_powersaving_brightness.is_create = 1;
129 return SETTING_RETURN_SUCCESS;
132 static int setting_powersaving_brightness_destroy(void *cb)
136 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
138 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
139 elm_naviframe_item_pop(ad->navi_bar);
141 setting_view_powersaving_brightness.is_create = 0;
142 return SETTING_RETURN_SUCCESS;
145 static int setting_powersaving_brightness_update(void *cb)
148 return SETTING_RETURN_SUCCESS;
152 static int setting_powersaving_brightness_cleanup(void *cb)
156 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
157 setting_powersaving_brightness_destroy(cb);
159 return SETTING_RETURN_SUCCESS;
162 /* ***************************************************
166 ***************************************************/
168 /* ***************************************************
172 ***************************************************/
175 setting_powersaving_brightness_click_softkey_cancel_cb(void *data,
181 retm_if(data == NULL, "Data parameter is NULL");
182 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
184 setting_view_change(&setting_view_powersaving_brightness,
185 &setting_view_powersaving_customed, ad);
189 setting_powersaving_brightness_chk_btn_cb(void *data, Evas_Object *obj,
194 retm_if(data == NULL, "Data parameter is NULL");
195 Setting_GenGroupItem_Data *list_item =
196 (Setting_GenGroupItem_Data *) data;
197 SettingPowersavingUG *ad = list_item->userdata;
198 list_item->chk_status = elm_check_state_get(obj);/* for genlist update status */
201 // enable /disable toggle button
202 if (list_item->chk_status) {
203 setting_disable_genlist_item(ad->data_br_sli->item);
205 setting_enable_genlist_item(ad->data_br_sli->item);
208 err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_AUTO_STATUS,
209 list_item->chk_status);
215 *[UI] 'Automatic' toggle
217 static void setting_powersaving_brightness_mouse_up_Gendial_list_cb(void *data,
224 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
225 retm_if(data == NULL, "Invalid argument: data is NULL");
226 SettingPowersavingUG *ad = data;
228 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
229 elm_genlist_item_selected_set(item, 0);
230 Setting_GenGroupItem_Data *list_item =
231 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
233 int old_status = elm_check_state_get(list_item->eo_check);
235 list_item->chk_status = !old_status;
236 elm_check_state_set(list_item->eo_check, list_item->chk_status);
239 if (0 == safeStrCmp("IDS_COM_BODY_AUTOMATIC", list_item->keyStr)) {
242 (VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_AUTO_STATUS,
243 list_item->chk_status);
245 list_item->chk_status = !list_item->chk_status;
246 elm_check_state_set(obj, list_item->chk_status);
250 if (list_item->chk_status) {
251 setting_disable_genlist_item(ad->data_br_sli->item);
253 setting_enable_genlist_item(ad->data_br_sli->item);
259 setting_powersaving_birghtness_bright_slider_value_change_cb(void *data,
264 retm_if(data == NULL, "Data parameter is NULL");
266 SettingPowersavingUG *ad = NULL;
267 Setting_GenGroupItem_Data *list_item =
268 (Setting_GenGroupItem_Data *) data;
269 ad = list_item->userdata;
271 value = elm_check_state_get(ad->data_br_auto->eo_check);
272 if (value == 1) { /* it is automatic setting mode, */
277 double val = elm_slider_value_get(obj);
278 value = (int)(val + 0.5);
279 SETTING_TRACE("value:%d", value);
282 vconf_set_int(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_VALUE, value);
283 if (ret < 0) //rollback
285 elm_check_state_set(ad->data_br_auto->eo_check,
286 ad->data_br_sli->chk_status);
289 ad->data_br_sli->chk_status = value;