3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 * http://floralicense.org/license/
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.
18 #include <setting-powersaving-brightness.h>
20 #define Left_Bright_Icon IMG_BRIGTHNESS_LEFT
21 #define Right_Bright_Icon IMG_BRIGHTNESS_RIGHT
23 static int setting_powersaving_brightness_create(void *cb);
24 static int setting_powersaving_brightness_destroy(void *cb);
25 static int setting_powersaving_brightness_update(void *cb);
26 static int setting_powersaving_brightness_cleanup(void *cb);
28 setting_view setting_view_powersaving_brightness = {
29 .create = setting_powersaving_brightness_create,
30 .destroy = setting_powersaving_brightness_destroy,
31 .update = setting_powersaving_brightness_update,
32 .cleanup = setting_powersaving_brightness_cleanup,
35 /* ***************************************************
39 ***************************************************/
41 static int setting_powersaving_brightness_create(void *cb)
44 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
46 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
48 Evas_Object *navi_bar = ad->navi_bar;
49 Evas_Object *sub_layout = elm_layout_add(navi_bar);
50 elm_layout_file_set(sub_layout, SETTING_THEME_EDJ_NAME,
53 Evas_Object *genlist = elm_genlist_add(ad->win_main_layout);
54 elm_object_style_set(genlist, "dialogue");
55 retvm_if(genlist == NULL, SETTING_RETURN_FAIL,
56 "Cannot set scroller object as contento of layout");
57 elm_genlist_clear(genlist); /* first to clear list */
59 setting_push_layout_navi_bar(_(KeyStr_Brightness),
60 _("IDS_COM_BODY_BACK"), NULL, NULL,
61 setting_powersaving_brightness_click_softkey_cancel_cb,
63 NULL, ad, sub_layout, navi_bar, NULL);;
64 elm_object_part_content_set(sub_layout, "search_list2", genlist);
69 Elm_Object_Item *item = NULL;;
72 elm_genlist_item_append(genlist, &itc_seperator, NULL, NULL,
73 ELM_GENLIST_ITEM_NONE, NULL, NULL);
74 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
76 // [control] AUTOMATIC - boolean - vconf
77 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_AUTO_STATUS, &auto_value); //if failed, keep intial value
78 SETTING_TRACE("auto_value:%d", auto_value);
80 // [UI] AUTOMATIC - boolean
82 setting_create_Gendial_field_def(genlist, &itc_1text_1icon,
83 setting_powersaving_brightness_mouse_up_Gendial_list_cb,
84 ad, SWALLOW_Type_1TOGGLE, NULL,
86 "IDS_COM_BODY_AUTOMATIC", NULL,
87 setting_powersaving_brightness_chk_btn_cb);
88 if (ad->data_br_auto) {
89 __BACK_POINTER_SET(ad->data_br_auto);
90 ad->data_br_auto->userdata = ad;
92 SETTING_TRACE_ERROR("ad->data_br_auto is NULL");
96 vconf_get_int(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_VALUE, &value); //if failed, keep intial value
97 SETTING_TRACE("auto_value:%d", value);
99 setting_create_Gendial_field_def(genlist, &itc_1icon, NULL,
100 NULL, SWALLOW_Type_LAYOUT_SLIDER,
102 Right_Bright_Icon, value, NULL,
104 setting_powersaving_birghtness_bright_slider_value_change_cb);
106 if (ad->data_br_sli) {
107 __BACK_POINTER_SET(ad->data_br_sli);
109 ad->data_br_sli->win_main = ad->win_main_layout;
110 ad->data_br_sli->evas = ad->evas;
111 ad->data_br_sli->isIndicatorVisible = true;
112 ad->data_br_sli->slider_min = 1;
113 ad->data_br_sli->slider_max = 100;
114 ad->data_br_sli->userdata = ad;
117 SETTING_TRACE_ERROR("ad->data_br_sli is NULL");
120 if (auto_value && ad->data_br_sli) {
121 setting_disable_genlist_item(ad->data_br_sli->item);
124 setting_view_powersaving_brightness.is_create = 1;
125 return SETTING_RETURN_SUCCESS;
128 static int setting_powersaving_brightness_destroy(void *cb)
132 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
134 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
135 elm_naviframe_item_pop(ad->navi_bar);
137 setting_view_powersaving_brightness.is_create = 0;
138 return SETTING_RETURN_SUCCESS;
141 static int setting_powersaving_brightness_update(void *cb)
144 return SETTING_RETURN_SUCCESS;
148 static int setting_powersaving_brightness_cleanup(void *cb)
152 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
153 setting_powersaving_brightness_destroy(cb);
155 return SETTING_RETURN_SUCCESS;
158 /* ***************************************************
162 ***************************************************/
164 /* ***************************************************
168 ***************************************************/
171 setting_powersaving_brightness_click_softkey_cancel_cb(void *data,
177 retm_if(data == NULL, "Data parameter is NULL");
178 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
180 setting_view_change(&setting_view_powersaving_brightness,
181 &setting_view_powersaving_customed, ad);
185 setting_powersaving_brightness_chk_btn_cb(void *data, Evas_Object *obj,
190 retm_if(data == NULL, "Data parameter is NULL");
191 Setting_GenGroupItem_Data *list_item =
192 (Setting_GenGroupItem_Data *) data;
193 SettingPowersavingUG *ad = list_item->userdata;
194 list_item->chk_status = elm_check_state_get(obj);/* for genlist update status */
197 // enable /disable toggle button
198 if (list_item->chk_status) {
199 setting_disable_genlist_item(ad->data_br_sli->item);
201 setting_enable_genlist_item(ad->data_br_sli->item);
204 err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_AUTO_STATUS,
205 list_item->chk_status);
211 *[UI] 'Automatic' toggle
213 static void setting_powersaving_brightness_mouse_up_Gendial_list_cb(void *data,
220 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
221 retm_if(data == NULL, "Invalid argument: data is NULL");
222 SettingPowersavingUG *ad = data;
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);
229 int old_status = elm_check_state_get(list_item->eo_check);
231 list_item->chk_status = !old_status;
232 elm_check_state_set(list_item->eo_check, list_item->chk_status);
235 if (0 == safeStrCmp("IDS_COM_BODY_AUTOMATIC", list_item->keyStr)) {
238 (VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_AUTO_STATUS,
239 list_item->chk_status);
241 list_item->chk_status = !list_item->chk_status;
242 elm_check_state_set(obj, list_item->chk_status);
246 if (list_item->chk_status) {
247 setting_disable_genlist_item(ad->data_br_sli->item);
249 setting_enable_genlist_item(ad->data_br_sli->item);
255 setting_powersaving_birghtness_bright_slider_value_change_cb(void *data,
260 retm_if(data == NULL, "Data parameter is NULL");
262 SettingPowersavingUG *ad = NULL;
263 Setting_GenGroupItem_Data *list_item =
264 (Setting_GenGroupItem_Data *) data;
265 ad = list_item->userdata;
267 value = elm_check_state_get(ad->data_br_auto->eo_check);
268 if (value == 1) { /* it is automatic setting mode, */
273 double val = elm_slider_value_get(obj);
274 value = (int)(val + 0.5);
275 SETTING_TRACE("value:%d", value);
278 vconf_set_int(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BRT_VALUE, value);
279 if (ret < 0) //rollback
281 elm_check_state_set(ad->data_br_auto->eo_check,
282 ad->data_br_sli->chk_status);
285 ad->data_br_sli->chk_status = value;