2 * Copyright 2012 Samsung Electronics Co., Ltd
\r
4 * Licensed under the Flora License, Version 1.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://floralicense.org/license/
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
18 #include "cst-common.h"
\r
19 #include "cst-common-string.h"
\r
20 #include "cst-more-call-setting.h"
\r
21 #include "cst-widget.h"
\r
22 #include "cst-util.h"
\r
23 #include "cst-barring.h"
\r
24 #include "cst-waiting.h"
\r
25 #include "cst-status-tone.h"
\r
26 #include "cst-prefix-dial.h"
\r
28 static Elm_Genlist_Item_Class *itc_1text = NULL;
\r
29 static Elm_Genlist_Item_Class *itc_2text_expand = NULL;
\r
30 static Elm_Genlist_Item_Class *itc_sub_expand = NULL;
\r
31 static Elm_Genlist_Item_Class *itc_help = NULL;
\r
32 static Elm_Genlist_Item_Class *itc_2text_1icon = NULL;
\r
34 static Evas_Object *morecallsetting_gl = NULL;
\r
36 static void __cst_set_genlist_item_styles_more_cst(void);
\r
37 static void __cst_destroy_genlist_item_styles(void);
\r
38 static void __cst_on_click_expanded(void *data, Evas *evas, Evas_Object *obj, void *event_info);
\r
39 static void __cst_on_click_more_call_setting_back_button(void *data, Evas_Object *obj, void *event_info);
\r
41 #ifdef _CALL_SET_NOISE_REDUCTION
\r
42 static Elm_Genlist_Item_Class *itc_1text_1icon = NULL;
\r
43 static void __cst_on_click_noise_reduction(void *data, Evas *evas, Evas_Object *obj, void *event_info);
\r
44 #endif /* _CALL_SET_NOISE_REDUCTION */
\r
46 static CstGlItemDisplayInfo_t list_more_call_setting[] = {
\r
47 {1, CST_STR_SHOW_MY_CALLER_ID, ELM_GENLIST_ITEM_TREE, CST_GL_ITEM_EXPANDABLE, __cst_on_click_expanded},
\r
48 #ifdef _CALL_SET_BARRING_SUPPORT
\r
49 {1, CST_STR_CALL_BARRING, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_TEXT, _cst_on_click_call_barring},
\r
50 #endif /* _CALL_SET_BARRING_SUPPORT */
\r
51 {1, CST_STR_CALL_WAITING, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_TEXT, _cst_on_click_call_waiting},
\r
52 {1, CST_STR_DURING_CALL_NOTIFY_ME, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_HELP_TEXT, NULL},
\r
53 {1, CST_STR_CALL_STATUS_TONES, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_TEXT, _cst_on_click_call_status_tone},
\r
54 {1, CST_STR_EDIT_SOUND_SETTINGS_DURING_CALL, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_HELP_TEXT, NULL},
\r
55 {1, CST_STR_ALERTS_ON_CALL, ELM_GENLIST_ITEM_TREE, CST_GL_ITEM_EXPANDABLE, __cst_on_click_expanded},
\r
56 #ifdef _CALL_SET_AUTO_AREA_CODE_SUPPORT
\r
57 {1, CST_STR_AUTO_AREA_CODE, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_2TEXT_ONOFF, _cst_on_click_prefix_dialling},
\r
58 {1, CST_STR_AUTOMATICALLY_ADD_AREA_CODE_TO_NUMBER_DISPLAY_PANEL, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_HELP_TEXT, NULL},
\r
59 #endif /* _CALL_SET_AUTO_AREA_CODE_SUPPORT */
\r
60 {1, -1, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_NONE, NULL},
\r
63 static CstGlItemDisplayInfo_t list_dep2_show_my_number[] = {
\r
64 {2, CST_STR_BY_NETWORK, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_RADIO_1TEXT, (void *)CST_CLI_BY_NETWORK},
\r
65 {2, CST_STR_SHOW, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_RADIO_1TEXT, (void *)CST_CLI_SHOW},
\r
66 {2, CST_STR_HIDE, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_RADIO_1TEXT, (void *)CST_CLI_HIDE},
\r
67 {2, -1, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_NONE, NULL},
\r
70 static CstGlItemDisplayInfo_t list_dep2_alerts_on_call[] = {
\r
71 {2, CST_STR_OFF, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_RADIO_1TEXT, (void *)CST_ALERTS_ON_CALL_OFF},
\r
72 {2, CST_STR_SOUND, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_RADIO_1TEXT, (void *)CST_ALERTS_ON_CALL_SOUND},
\r
73 {2, CST_STR_VIBRATION, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_RADIO_1TEXT, (void *)CST_ALERTS_ON_CALL_VIBRATION},
\r
74 {2, -1, ELM_GENLIST_ITEM_NONE, CST_GL_ITEM_NONE, NULL},
\r
77 static void __cst_destroy_genlist_item_styles(void)
\r
79 ENTER(__cst_destroy_genlist_item_styles);
\r
82 elm_genlist_item_class_free(itc_1text);
\r
85 if (itc_2text_expand) {
\r
86 elm_genlist_item_class_free(itc_2text_expand);
\r
87 itc_2text_expand = NULL;
\r
89 if (itc_sub_expand) {
\r
90 elm_genlist_item_class_free(itc_sub_expand);
\r
91 itc_sub_expand = NULL;
\r
94 elm_genlist_item_class_free(itc_help);
\r
97 if (itc_2text_1icon) {
\r
98 elm_genlist_item_class_free(itc_2text_1icon);
\r
99 itc_2text_1icon = NULL;
\r
101 #ifdef _CALL_SET_NOISE_REDUCTION
\r
102 if (itc_1text_1icon) {
\r
103 elm_genlist_item_class_free(itc_1text_1icon);
\r
104 itc_1text_1icon = NULL;
\r
106 #endif /* _CALL_SET_NOISE_REDUCTION */
\r
109 static void __cst_on_click_more_call_setting_back_button(void *data, Evas_Object *obj, void *event_info)
\r
111 ENTER(__cst_on_click_more_call_setting_back_button);
\r
113 _cst_destroy_more_call_setting();
\r
116 #ifdef _CALL_SET_AUTO_AREA_CODE_SUPPORT
\r
117 static void __cst_on_changed_auto_area_code_check(void *data, Evas_Object *obj, void *event_info)
\r
119 ret_if(NULL == data);
\r
120 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
122 Eina_Bool check_state = elm_check_state_get(obj);
\r
123 DBG("check_state = %d, text = %s", check_state, _cst_get_prefix_dialling_list(CST_ITEM_1));
\r
125 if (EINA_TRUE == check_state && 0 == strcmp(_cst_get_prefix_dialling_list(CST_ITEM_1),"")) {
\r
127 elm_check_state_set(obj, !check_state);
\r
128 _cst_on_click_prefix_dialling(item_data->ugd, NULL, NULL, NULL);
\r
130 _cst_vconf_set_bool(VCONFKEY_CISSAPPL_PREFIX_DIAL_BOOL, check_state);
\r
134 #endif /* _CALL_SET_AUTO_AREA_CODE_SUPPORT */
\r
136 #ifdef _CALL_SET_NOISE_REDUCTION
\r
137 static void __cst_on_changed_noise_reduction_check(void *data, Evas_Object *obj, void *event_info)
\r
139 Eina_Bool check_state = elm_check_state_get(obj);
\r
141 _cst_vconf_set_bool(VCONFKEY_CISSAPPL_NOISE_REDUCTION_BOOL, check_state);
\r
144 static void __cst_on_click_noise_reduction(void *data, Evas *evas, Evas_Object *obj, void *event_info)
\r
146 ret_if(NULL == data);
\r
147 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
148 Eina_Bool check_state = elm_check_state_get(item_data->eo_check);
\r
149 _cst_vconf_set_bool(VCONFKEY_CISSAPPL_NOISE_REDUCTION_BOOL, !check_state);
\r
150 elm_genlist_item_update(item_data->gl_item);
\r
152 #endif /* _CALL_SET_NOISE_REDUCTION */
\r
154 static char *__cst_gl_label_get_more_cst(void *data, Evas_Object *obj, const char *part)
\r
156 retv_if(NULL == data, NULL);
\r
157 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
159 if ((strcmp(part, "elm.text") == 0) ||
\r
160 (strcmp(part, "elm.text.1") == 0)) {
\r
161 if (list_more_call_setting[item_data->index].str_id != -1) {
\r
162 return strdup(T_(list_more_call_setting[item_data->index].str_id));
\r
166 #ifdef _CALL_SET_AUTO_AREA_CODE_SUPPORT
\r
167 else if (!strcmp(part, "elm.text.2")) {
\r
168 if (list_more_call_setting[item_data->index].str_id == CST_STR_AUTO_AREA_CODE) {
\r
169 if (0 != strcmp(_cst_get_prefix_dialling_list(CST_ITEM_1),"")) {
\r
170 return strdup(_cst_get_prefix_dialling_list(CST_ITEM_1));
\r
172 return strdup(T_(CST_STR_NOT_ASSIGNED));
\r
176 #endif /* _CALL_SET_AUTO_AREA_CODE_SUPPORT */
\r
181 static Evas_Object *__cst_gl_icon_get_more_cst(void *data, Evas_Object *obj, const char *part)
\r
183 retv_if(NULL == data, NULL);
\r
184 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
186 if (!strcmp(part, "elm.icon")) {
\r
187 #ifdef _CALL_SET_AUTO_AREA_CODE_SUPPORT
\r
188 if (list_more_call_setting[item_data->index].style == CST_GL_ITEM_2TEXT_ONOFF) {
\r
189 if (CST_STR_AUTO_AREA_CODE == list_more_call_setting[item_data->index].str_id) {
\r
191 _cst_vconf_get_bool(VCONFKEY_CISSAPPL_PREFIX_DIAL_BOOL, &value);
\r
192 item_data->eo_check = _cst_create_onoff_button(obj, value,
\r
193 __cst_on_changed_auto_area_code_check, item_data);
\r
196 #endif /* _CALL_SET_AUTO_AREA_CODE_SUPPORT */
\r
197 return item_data->eo_check;
\r
202 static void __cst_gl_del_more_cst(void *data, Evas_Object *obj)
\r
204 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
211 static void __cst_gl_sel_more_cst(void *data, Evas_Object *obj, void *event_info)
\r
213 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
\r
214 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
\r
215 CstGlItemData_t *item_data = (CstGlItemData_t *)elm_object_item_data_get(it);
\r
216 CstUgData_t *ugd = (CstUgData_t *)item_data->ugd;
\r
218 if (list_more_call_setting[item_data->index].func) {
\r
219 if (list_more_call_setting[item_data->index].style == CST_GL_ITEM_1TEXT_ONOFF) {
\r
220 list_more_call_setting[item_data->index].func((void *)item_data, NULL, obj, event_info);
\r
222 list_more_call_setting[item_data->index].func((void *)ugd, NULL, obj, event_info);
\r
228 static char *__cst_gl_label_get_expandable(void *data, Evas_Object *obj, const char *part)
\r
230 retv_if(NULL == data, NULL);
\r
231 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
232 if (!strcmp(part, "elm.text.1")) {
\r
233 if (list_more_call_setting[item_data->index].str_id != -1) {
\r
234 return strdup(T_(list_more_call_setting[item_data->index].str_id));
\r
236 } else if (!strcmp(part, "elm.text.2")) {
\r
238 if (CST_STR_SHOW_MY_CALLER_ID == list_more_call_setting[item_data->index].str_id) {
\r
239 _cst_vconf_get_int(VCONFKEY_CISSAPPL_SHOW_MY_NUMBER_INT, &value);
\r
240 if (list_dep2_show_my_number[value].str_id != -1) {
\r
241 return strdup(T_(list_dep2_show_my_number[value].str_id));
\r
244 _cst_vconf_get_int(VCONFKEY_CISSAPPL_ALERT_ON_CALL_INT, &value);
\r
245 if (list_dep2_alerts_on_call[value].str_id != -1) {
\r
246 return strdup(T_(list_dep2_alerts_on_call[value].str_id));
\r
253 static void __cst_gl_sel_show_my_number(void *data, Evas_Object *obj, void *event_info)
\r
255 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
\r
256 ret_if(NULL == data);
\r
257 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
258 CstUgData_t *ugd = (CstUgData_t *)item_data->ugd;
\r
259 _cst_vconf_set_int(VCONFKEY_CISSAPPL_SHOW_MY_NUMBER_INT,
\r
260 (int)list_dep2_show_my_number[item_data->index].func);
\r
261 if (ugd->rdg_show_my_number) {
\r
262 elm_radio_value_set(ugd->rdg_show_my_number,
\r
263 (int)list_dep2_show_my_number[item_data->index].func);
\r
264 elm_genlist_item_update(item_data->parent_gl_item);
\r
269 static char *__cst_gl_label_get_sub_exp(void *data, Evas_Object *obj, const char *part)
\r
271 retv_if(NULL == data, NULL);
\r
272 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
273 CstGlItemData_t *parent_item_data = (CstGlItemData_t *)elm_object_item_data_get(item_data->parent_gl_item);
\r
274 if (strcmp(part, "elm.text") == 0) {
\r
275 if (CST_STR_SHOW_MY_CALLER_ID == list_more_call_setting[parent_item_data->index].str_id) {
\r
276 return strdup(T_(list_dep2_show_my_number[item_data->index].str_id));
\r
277 } else if (CST_STR_ALERTS_ON_CALL == list_more_call_setting[parent_item_data->index].str_id) {
\r
278 return strdup(T_(list_dep2_alerts_on_call[item_data->index].str_id));
\r
280 DBG("Unknown parent");
\r
287 static Evas_Object *__cst_gl_icon_get_sub_exp(void *data, Evas_Object *obj, const char *part)
\r
289 retv_if(NULL == data, NULL);
\r
290 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
291 CstUgData_t *ugd = (CstUgData_t *)item_data->ugd;
\r
292 retv_if(NULL == ugd, NULL);
\r
293 CstGlItemData_t *parent_item_data = (CstGlItemData_t *)elm_object_item_data_get(item_data->parent_gl_item);
\r
295 if (!strcmp(part, "elm.icon")) {
\r
296 Evas_Object *radio;
\r
297 if (CST_STR_SHOW_MY_CALLER_ID == list_more_call_setting[parent_item_data->index].str_id) {
\r
298 if (NULL == ugd->rdg_show_my_number) {
\r
299 ugd->rdg_show_my_number = elm_radio_add(obj);
\r
300 elm_radio_value_set(ugd->rdg_show_my_number, -1);
\r
303 radio = _cst_create_radio_icon(obj, ugd->rdg_show_my_number,
\r
304 (int)list_dep2_show_my_number[item_data->index].func, 0,
\r
305 VCONFKEY_CISSAPPL_SHOW_MY_NUMBER_INT);
\r
306 } else if (CST_STR_ALERTS_ON_CALL == list_more_call_setting[parent_item_data->index].str_id) {
\r
307 if (NULL == ugd->rdg_alerts_on_call) {
\r
308 ugd->rdg_alerts_on_call = elm_radio_add(obj);
\r
309 elm_radio_value_set(ugd->rdg_alerts_on_call, -1);
\r
312 radio = _cst_create_radio_icon(obj, ugd->rdg_alerts_on_call,
\r
313 (int)list_dep2_alerts_on_call[item_data->index].func, 0,
\r
314 VCONFKEY_CISSAPPL_ALERT_ON_CALL_INT);
\r
316 DBG("Unknown parent");
\r
324 static void __cst_gl_sel_alerts_on_call(void *data, Evas_Object *obj, void *event_info)
\r
326 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
\r
327 ret_if(NULL == data);
\r
328 CstGlItemData_t *item_data = (CstGlItemData_t *)data;
\r
329 CstUgData_t *ugd = (CstUgData_t *)item_data->ugd;
\r
330 ret_if(NULL == ugd);
\r
331 _cst_vconf_set_int(VCONFKEY_CISSAPPL_ALERT_ON_CALL_INT,
\r
332 (int)list_dep2_alerts_on_call[item_data->index].func);
\r
333 if (ugd->rdg_alerts_on_call) {
\r
334 elm_radio_value_set(ugd->rdg_alerts_on_call,
\r
335 (int)list_dep2_alerts_on_call[item_data->index].func);
\r
336 elm_genlist_item_update(item_data->parent_gl_item);
\r
341 static void __cst_gl_con(void *data, Evas_Object *obj, void *event_info)
\r
343 ENTER(__cst_gl_con);
\r
344 Elm_Object_Item *item = event_info;
\r
345 elm_genlist_item_subitems_clear(item);
\r
348 static void __cst_gl_exp_req(void *data, Evas_Object *obj, void *event_info)
\r
350 ENTER(__cst_gl_exp_req);
\r
352 ret_if(NULL == data);
\r
354 Elm_Object_Item *item = event_info;
\r
355 elm_genlist_item_expanded_set(item, 1);
\r
358 static void __cst_gl_con_req(void *data, Evas_Object *obj, void *event_info)
\r
360 ENTER(__cst_gl_con_req);
\r
361 Elm_Object_Item *item = (Elm_Object_Item *)event_info;
\r
362 elm_genlist_item_expanded_set(item, 0);
\r
365 static void __cst_gl_exp(void *data, Evas_Object *obj, void *event_info)
\r
367 ENTER(__cst_gl_exp);
\r
368 ret_if(NULL == data);
\r
369 CstUgData_t *ugd = (CstUgData_t *)data;
\r
370 Elm_Object_Item *it = (Elm_Object_Item *)event_info;
\r
371 ret_if(NULL == it);
\r
372 CstGlItemData_t *parent_item_data1 = (CstGlItemData_t *)elm_object_item_data_get(it);
\r
373 Evas_Object *genlist = elm_object_item_widget_get(it);
\r
374 ret_if(NULL == parent_item_data1);
\r
375 ret_if(NULL == genlist);
\r
377 CstGlItemData_t *sub_item_data;
\r
381 if (CST_STR_SHOW_MY_CALLER_ID == list_more_call_setting[parent_item_data1->index].str_id) {
\r
382 ugd->rdg_show_my_number = NULL;
\r
383 ugd->rdg_show_my_number = elm_radio_add(genlist);
\r
384 elm_radio_value_set(ugd->rdg_show_my_number, -1);
\r
385 for (i = 0; list_dep2_show_my_number[i].style != CST_GL_ITEM_NONE; ++i) {
\r
386 sub_item_data = (CstGlItemData_t *)calloc(1, sizeof(CstGlItemData_t));
\r
387 ret_if(sub_item_data == NULL);
\r
388 sub_item_data->index = i;
\r
389 sub_item_data->ugd = ugd;
\r
390 sub_item_data->parent_gl_item = it;
\r
391 elm_genlist_item_append(genlist, itc_sub_expand,
\r
392 (void *)sub_item_data, it,
\r
393 list_dep2_show_my_number[i].flags,
\r
394 __cst_gl_sel_show_my_number, sub_item_data);
\r
396 } else if (CST_STR_ALERTS_ON_CALL == list_more_call_setting[parent_item_data1->index].str_id) {
\r
397 ugd->rdg_alerts_on_call = NULL;
\r
398 ugd->rdg_alerts_on_call = elm_radio_add(genlist);
\r
399 elm_radio_value_set(ugd->rdg_alerts_on_call, -1);
\r
400 for (i = 0; list_dep2_alerts_on_call[i].style != CST_GL_ITEM_NONE; ++i) {
\r
401 sub_item_data = (CstGlItemData_t *)calloc(1, sizeof(CstGlItemData_t));
\r
402 ret_if(sub_item_data == NULL);
\r
403 sub_item_data->index = i;
\r
404 sub_item_data->ugd = ugd;
\r
405 sub_item_data->parent_gl_item = it;
\r
406 elm_genlist_item_append(genlist, itc_sub_expand,
\r
407 (void *)sub_item_data, it, list_dep2_alerts_on_call[i].flags,
\r
408 __cst_gl_sel_alerts_on_call, sub_item_data);
\r
413 static void __cst_on_click_expanded(void *data, Evas *evas, Evas_Object *obj, void *event_info)
\r
415 ENTER(__cst_on_click_expanded);
\r
416 ret_if(NULL == data);
\r
417 Elm_Object_Item *item = (Elm_Object_Item *)event_info;
\r
418 if (elm_genlist_item_expanded_get(item)) {
\r
419 __cst_gl_con_req(data, obj, event_info);
\r
420 __cst_gl_con(data, obj, event_info);
\r
422 __cst_gl_exp_req(data, obj, event_info);
\r
423 __cst_gl_exp(data, obj, event_info);
\r
427 static void __cst_navifr_updated_cb(void *data, Evas_Object *obj, void *event_info)
\r
429 ret_if(NULL == data);
\r
430 Elm_Object_Item *item = (Elm_Object_Item *)data;
\r
431 elm_genlist_item_expanded_set(item, 0);
\r
432 elm_genlist_item_subitems_clear(item);
\r
435 static void __cst_set_genlist_item_styles_more_cst(void)
\r
437 ENTER(__cst_set_genlist_item_styles_more_cst);
\r
439 itc_1text = elm_genlist_item_class_new();
\r
441 if (!itc_2text_expand) {
\r
442 itc_2text_expand = elm_genlist_item_class_new();
\r
444 if (!itc_sub_expand) {
\r
445 itc_sub_expand = elm_genlist_item_class_new();
\r
448 itc_help = elm_genlist_item_class_new();
\r
451 if (!itc_2text_1icon) {
\r
452 itc_2text_1icon = elm_genlist_item_class_new();
\r
455 itc_1text->item_style = "dialogue/1text";
\r
456 itc_1text->func.text_get = __cst_gl_label_get_more_cst;
\r
457 itc_1text->func.content_get = NULL;
\r
458 itc_1text->func.state_get = NULL;
\r
459 itc_1text->func.del = __cst_gl_del_more_cst;
\r
460 itc_2text_expand->item_style = "dialogue/2text.3/expandable";
\r
461 itc_2text_expand->func.text_get = __cst_gl_label_get_expandable;
\r
462 itc_2text_expand->func.content_get = NULL;
\r
463 itc_2text_expand->func.state_get = NULL;
\r
464 itc_2text_expand->func.del = __cst_gl_del_more_cst;
\r
466 itc_help->item_style = "multiline/1text";
\r
467 itc_help->func.text_get = __cst_gl_label_get_more_cst;
\r
468 itc_help->func.content_get = NULL;
\r
469 itc_help->func.state_get = NULL;
\r
470 itc_help->func.del = __cst_gl_del_more_cst;
\r
472 itc_sub_expand->item_style = "dialogue/1text.1icon/expandable2";
\r
473 itc_sub_expand->func.text_get = __cst_gl_label_get_sub_exp;
\r
474 itc_sub_expand->func.content_get = __cst_gl_icon_get_sub_exp;
\r
475 itc_sub_expand->func.state_get = NULL;
\r
476 itc_sub_expand->func.del = __cst_gl_del_more_cst;
\r
478 #ifdef _CALL_SET_AUTO_AREA_CODE_SUPPORT
\r
479 itc_2text_1icon->item_style = "dialogue/2text.1icon.6";
\r
480 itc_2text_1icon->func.text_get = __cst_gl_label_get_more_cst;
\r
481 itc_2text_1icon->func.content_get = __cst_gl_icon_get_more_cst;
\r
482 itc_2text_1icon->func.state_get = NULL;
\r
483 itc_2text_1icon->func.del = __cst_gl_del_more_cst;
\r
484 #endif /* _CALL_SET_AUTO_AREA_CODE_SUPPORT */
\r
487 static Evas_Object *__cst_create_genlist_more_cst(void *data)
\r
489 ENTER(__cst_create_genlist_more_cst);
\r
490 retv_if(NULL == data, NULL);
\r
491 CstUgData_t *ugd = (CstUgData_t *)data;
\r
492 CstGlItemData_t *item_data;
\r
493 Evas_Object *genlist;
\r
496 genlist = elm_genlist_add(ugd->nf);
\r
497 retv_if(NULL == genlist, NULL);
\r
498 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
\r
500 _cst_create_genlist_separator(genlist, EINA_FALSE);
\r
501 for (i = 0; list_more_call_setting[i].style != CST_GL_ITEM_NONE; ++i) {
\r
502 item_data = (CstGlItemData_t *)calloc(1, sizeof(CstGlItemData_t));
\r
503 retv_if(NULL == item_data, NULL);
\r
505 item_data->index = i;
\r
506 item_data->ugd = ugd;
\r
507 if (list_more_call_setting[i].style == CST_GL_ITEM_TEXT) {
\r
508 item_data->gl_item = elm_genlist_item_append(genlist, itc_1text,
\r
509 (void *)item_data, NULL, list_more_call_setting[i].flags,
\r
510 __cst_gl_sel_more_cst, ugd);
\r
511 } else if (list_more_call_setting[i].style == CST_GL_ITEM_EXPANDABLE) {
\r
512 item_data->gl_item = elm_genlist_item_append(genlist, itc_2text_expand,
\r
513 (void *)item_data, NULL, list_more_call_setting[i].flags,
\r
514 __cst_gl_sel_more_cst, ugd);
\r
515 evas_object_smart_callback_add(ugd->nf, "transition,finished",
\r
516 __cst_navifr_updated_cb, item_data->gl_item);
\r
517 } else if (list_more_call_setting[i].style == CST_GL_ITEM_HELP_TEXT) {
\r
518 item_data->gl_item = elm_genlist_item_append(genlist, itc_help,
\r
519 (void *)item_data, NULL, list_more_call_setting[i].flags,
\r
521 elm_genlist_item_select_mode_set(item_data->gl_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
\r
522 if (list_more_call_setting[i+1].style != CST_GL_ITEM_NONE) {
\r
523 _cst_create_genlist_separator(genlist, EINA_FALSE);
\r
527 #ifdef _CALL_SET_AUTO_AREA_CODE_SUPPORT
\r
528 else if (list_more_call_setting[i].style == CST_GL_ITEM_2TEXT_ONOFF) {
\r
529 item_data->gl_item = elm_genlist_item_append(genlist, itc_2text_1icon,
\r
530 (void *)item_data, NULL, list_more_call_setting[i].flags,
\r
531 __cst_gl_sel_more_cst, ugd);
\r
532 ugd->vm_gl_item = item_data->gl_item;
534 #endif /* _CALL_SET_AUTO_AREA_CODE_SUPPORT */
\r
543 _cst_create_genlist_separator_no_line(genlist);
\r
548 void _cst_on_click_more_call_setting(void *data, Evas *evas, Evas_Object *obj, void *event_info)
\r
550 ENTER(_cst_on_click_more_call_setting);
\r
551 ret_if(NULL == data);
\r
552 CstUgData_t *ugd = (CstUgData_t *)data;
\r
553 Evas_Object *back_btn = NULL;
\r
554 Elm_Object_Item *navi_it;
\r
556 __cst_set_genlist_item_styles_more_cst();
\r
557 morecallsetting_gl = __cst_create_genlist_more_cst(ugd);
\r
559 navi_it = elm_naviframe_item_push(ugd->nf, T_(CST_STR_MORE_CALL_SETTINGS),
\r
560 NULL, NULL, morecallsetting_gl, NULL);
\r
562 back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
\r
563 evas_object_smart_callback_add(back_btn, "clicked", __cst_on_click_more_call_setting_back_button, ugd);
\r
568 void _cst_destroy_more_call_setting(void)
\r
570 ENTER(_cst_destroy_more_call_setting);
\r
572 __cst_destroy_genlist_item_styles();
\r
574 if (morecallsetting_gl != NULL) {
\r
575 elm_genlist_clear(morecallsetting_gl);
\r
576 evas_object_del(morecallsetting_gl);
\r
577 morecallsetting_gl = NULL;
\r