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.
17 #include <setting-phone-language-region.h>
19 static int setting_phone_language_region_create(void *cb);
20 static int setting_phone_language_region_destroy(void *cb);
21 static int setting_phone_language_region_update(void *cb);
22 static int setting_phone_language_region_cleanup(void *cb);
24 setting_view setting_view_phone_language_region = {
25 .create = setting_phone_language_region_create,
26 .destroy = setting_phone_language_region_destroy,
27 .update = setting_phone_language_region_update,
28 .cleanup = setting_phone_language_region_cleanup,
31 static void setting_phone_lang_click_softkey_cancel_cb(void *data,
34 static void setting_phone_lang_item_Gendial_mouse_up_cb(void *data,
39 /* ***************************************************
43 ***************************************************/
45 static int setting_phone_language_region_create(void *cb)
49 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
51 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
52 Evas_Object *scroller = NULL;
54 char *title = _(KeyStr_LanguageRegion);
56 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
58 _("IDS_COM_BODY_BACK"),
60 setting_phone_lang_click_softkey_cancel_cb,
63 retv_if(ad->ly_language == NULL, SETTING_RETURN_FAIL);
64 ad->gl_lang_region = scroller;
66 Elm_Object_Item *item = NULL;
68 elm_genlist_item_append(scroller, &(ad->itc_seperator),
69 NULL, NULL, ELM_GENLIST_ITEM_NONE,
71 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
73 char* pa_display_lang = get_pa_display_language_str();
74 ad->data_display_language =
75 setting_create_Gendial_field_def(scroller,
77 setting_phone_lang_item_Gendial_mouse_up_cb,
78 ad, SWALLOW_Type_INVALID,
80 "IDS_ST_HEADER_DISPLAY_LANGUAGE",
83 if (ad->data_display_language) {
84 ad->data_display_language->userdata = ad;
86 SETTING_TRACE_ERROR("ad->data_display_language is NULL");
88 G_FREE(pa_display_lang);
90 char *pa_region = vconf_get_str(VCONFKEY_REGIONFORMAT);
91 if (pa_region == NULL) {
93 ("[Error] get value of VCONFKEY_REGIONFORMAT fail.");
95 ad->prev_locale = (char *)g_strdup(pa_region);
97 setting_create_Gendial_field_def(scroller,
99 setting_phone_lang_item_Gendial_mouse_up_cb,
100 ad, SWALLOW_Type_INVALID,
102 "IDS_ST_BODY_REGION",
103 setting_phone_lang_get_region_str
105 if (ad->data_region_fmt) {
106 ad->data_region_fmt->userdata = ad;
108 SETTING_TRACE_ERROR("ad->data_region_fmt is NULL");
112 setting_phone_lang_get_example_desc(pa_region, ad);
113 ad->data_region_fmt_example =
114 setting_create_Gendial_field_def(scroller,
115 &(ad->itc_bg_1icon), NULL,
117 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
119 example_desc, NULL, NULL);
127 setting_view_phone_language_region.is_create = 1;
128 return SETTING_RETURN_SUCCESS;
131 static int setting_phone_language_region_destroy(void *cb)
135 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
137 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
139 if (ad->ly_language != NULL) {
140 evas_object_del(ad->ly_language);
141 ad->ly_language = NULL;
143 if (ad->pattern_generator) {
144 udatpg_close(ad->pattern_generator);
145 ad->pattern_generator = NULL;
147 setting_view_phone_language_region.is_create = 0;
150 return SETTING_RETURN_SUCCESS;
153 static int setting_phone_language_region_update(void *cb)
157 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
159 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
161 if (ad->ly_language != NULL) {
162 evas_object_show(ad->ly_language);
164 /* setting_update_chk_status(ad->chk_lang, INT_SLP_SETTING_LANG); */
167 return SETTING_RETURN_SUCCESS;
170 static int setting_phone_language_region_cleanup(void *cb)
173 return SETTING_RETURN_SUCCESS;
176 /* ***************************************************
180 ***************************************************/
182 /* ***************************************************
186 ***************************************************/
189 setting_phone_lang_click_softkey_cancel_cb(void *data, Evas_Object *obj,
194 retm_if(data == NULL, "Data parameter is NULL");
196 SettingPhoneUG *ad = (SettingPhoneUG *) data;
198 ug_destroy_me(ad->ug);
202 void setting_phone_lang_change_lang_value(int ichk)
207 /** @todo ASSERT ( SCOPE CHECK ) */
209 Eina_List* list = setting_get_language_list();
210 Eina_List* elist = NULL;
211 setting_lang_entry* pnode;
213 char locale[128] = {0,};
215 EINA_LIST_FOREACH( list, elist, pnode)
217 if (pnode->number == ichk) {
218 snprintf(locale, 128, "%s", pnode->locale);
222 SETTING_TRACE("table . locale >>>>>> :: %s ", locale); //en_US.UTF8
226 ret = setting_set_int_slp_key(INT_SLP_SETTING_LANG, ichk, &err);
229 ret = vconf_set_str(VCONFKEY_LANGSET, locale);
232 static void setting_phone_lang_item_Gendial_mouse_up_cb(void *data,
238 setting_retm_if(data == NULL, "Data parameter is NULL");
239 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
240 elm_genlist_item_selected_set(item, 0);
241 Setting_GenGroupItem_Data *list_item =
242 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
243 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
245 SettingPhoneUG *ad = (SettingPhoneUG *) data;
247 int ret = SETTING_RETURN_SUCCESS;
248 if(!safeStrCmp("IDS_ST_HEADER_DISPLAY_LANGUAGE", list_item->keyStr))
251 setting_view_change(&setting_view_phone_language_region,
252 &setting_view_phone_display_language,
255 else if(!safeStrCmp("IDS_ST_BODY_REGION", list_item->keyStr))
258 setting_view_change(&setting_view_phone_language_region,
259 &setting_view_phone_region_format, ad);