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-display-screen-mode.h>
24 static int setting_display_screen_mode_create(void *cb);
25 static int setting_display_screen_mode_destroy(void *cb);
26 static int setting_display_screen_mode_update(void *cb);
27 static int setting_display_screen_mode_cleanup(void *cb);
29 static char* str_in_arr[] = {"Dynamic", "Standard", "Natural", "Movie"};
30 static char* str_out_arr[] = {Keystr_Dynamic, Keystr_Standard, Keystr_Natural, Keystr_Movie};
32 static void setting_display_screen_mode_mouse_up_Gendial_list_radio_cb(void *data, Evas_Object *obj, void *event_info);
34 setting_view setting_view_display_screen_mode = {
35 .create = setting_display_screen_mode_create,
36 .destroy = setting_display_screen_mode_destroy,
37 .update = setting_display_screen_mode_update,
38 .cleanup = setting_display_screen_mode_cleanup,
41 /* ***************************************************
45 ***************************************************/
46 static int setting_display_screen_mode_create(void *cb)
50 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
52 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
54 setting_call_back_func gl_sel_cb = NULL;
55 Evas_Object *scroller = NULL;
56 Setting_GenGroupItem_Data *item_data = NULL;
58 /* add basic layout */
59 Evas_Object *view_layout = elm_layout_add(ad->win_main_layout);
60 elm_layout_file_set(view_layout, SETTING_THEME_EDJ_NAME, "search_layout");
61 evas_object_size_hint_weight_set(view_layout, EVAS_HINT_EXPAND, 0.0);
62 evas_object_show(view_layout);
64 Evas_Object *sub_layout = elm_layout_add(view_layout);
65 elm_layout_file_set(sub_layout, SETTING_THEME_EDJ_NAME, "screen_mode");
66 evas_object_size_hint_weight_set(sub_layout, EVAS_HINT_EXPAND, 0.0);
67 evas_object_show(sub_layout);
69 Evas_Object *image = elm_image_add(view_layout);
70 elm_image_file_set(image, IMG_SCREEN_MODE, NULL);
71 elm_image_resizable_set(image, EINA_TRUE, EINA_TRUE);
72 evas_object_show(image);
74 elm_object_part_content_set(sub_layout, "content", image);
75 elm_object_part_content_set(view_layout, "search_bar", sub_layout);
79 elm_image_object_size_get(image, &w, &h);
80 SETTING_TRACE("w = %d, h = %d", w, h);
81 setting_resize_object(image, w * WIDGET_SCALE_FACTOR, h * WIDGET_SCALE_FACTOR);
83 setting_push_layout_navi_bar(_(Keystr_ScreenMode), _("IDS_COM_BODY_BACK"),
85 setting_display_screen_mode_click_softkey_back_cb,
86 NULL, NULL, ad, view_layout, ad->navi_bar, NULL);
88 scroller = elm_genlist_add(ad->navi_bar);
89 retvm_if(scroller == NULL, SETTING_RETURN_FAIL, "scroller == NULL");
90 elm_object_style_set(scroller, "dialogue");
91 elm_genlist_clear(scroller); /* first to clear list */
93 elm_object_part_content_set(view_layout, "search_list", scroller);
95 Elm_Object_Item *item = elm_genlist_item_append(scroller,
98 ELM_GENLIST_ITEM_NONE,
100 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
103 //gl_sel_cb = setting_mouse_up_Gendial_list_radio_cb;
104 gl_sel_cb = setting_display_screen_mode_mouse_up_Gendial_list_radio_cb;
106 Evas_Object *radio = elm_radio_add(scroller);
107 elm_radio_state_value_set(radio, -1);
109 char* curmode = vconf_get_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME);
110 SETTING_TRACE(">>> CUR SCREEN MODE : %s ", curmode);
114 for (i=0; i< sizeof(str_in_arr)/sizeof(str_in_arr[0]) ;i++)
116 item_data = setting_create_Gendial_field_1radio(scroller,
117 &(itc_1text_1icon_2),
119 radio, /* sel data */
122 str_out_arr[i], NULL);
124 item_data->userdata = ad;
126 SETTING_TRACE_ERROR("item_data is NULL");
132 for (j=0; j< sizeof(str_in_arr)/sizeof(str_in_arr[0]) ;j++) {
133 if (0 == strcmp(str_in_arr[j], curmode)) {
134 elm_radio_value_set(radio, j);
139 setting_view_display_screen_mode.is_create = 1;
140 return SETTING_RETURN_SUCCESS;
143 static int setting_display_screen_mode_destroy(void *cb)
147 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
149 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
151 elm_naviframe_item_pop(ad->navi_bar);
153 setting_view_display_screen_mode.is_create = 0;
155 return SETTING_RETURN_SUCCESS;
158 static int setting_display_screen_mode_update(void *cb)
162 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
164 return SETTING_RETURN_SUCCESS;
167 static int setting_display_screen_mode_cleanup(void *cb)
170 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
172 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
174 setting_display_screen_mode_destroy(ad);
176 return SETTING_RETURN_SUCCESS;
179 /* ***************************************************
183 ***************************************************/
186 setting_display_screen_mode_click_softkey_back_cb(void *data, Evas_Object *obj, void *event_info)
190 setting_retm_if(data == NULL,
191 "[Setting > Display] Data parameter is NULL");
193 SettingDisplayUG *ad = (SettingDisplayUG *) data;
195 setting_view_change(&setting_view_display_screen_mode, &setting_view_display_main, ad);
201 setting_display_screen_mode_mouse_up_Gendial_list_radio_cb(void *data, Evas_Object *obj, void *event_info)
205 setting_retm_if(data == NULL, "Data parameter is NULL");
206 setting_retm_if(event_info == NULL,
207 "Invalid argument: event info is NULL");
209 Evas_Object *radio = (Evas_Object *) data;
210 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
211 elm_genlist_item_selected_set(item, 0);
213 Setting_GenGroupItem_Data *list_item =
214 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
215 //SettingDisplayUG *ad = (SettingDisplayUG *) list_item->userdata;
217 elm_radio_value_set(radio, list_item->chk_status);
218 vconf_set_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME, str_in_arr[list_item->chk_status]);
219 /* Set status to device manager */
220 device_set_image_enhance_mode(list_item->chk_status);
221 SETTING_TRACE(">>> AFTER VCONF SET : %s ", str_in_arr[list_item->chk_status]);