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-more-menu.h>
23 static int setting_more_menu_create(void *cb);
24 static int setting_more_menu_destroy(void *cb);
25 static int setting_more_menu_update(void *cb);
26 static int setting_more_menu_cleanup(void *cb);
28 setting_view setting_view_more_menu = {
29 .create = setting_more_menu_create,
30 .destroy = setting_more_menu_destroy,
31 .update = setting_more_menu_update,
32 .cleanup = setting_more_menu_cleanup,
35 /* ***************************************************
39 ***************************************************/
40 const static Elm_Genlist_Item_Class itc_sep = {
41 .item_style = "dialogue/separator",
42 .func.text_get = NULL,
43 .func.content_get = NULL,
44 .func.state_get = NULL,
48 static int setting_more_menu_create(void *cb)
51 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
53 setting_main_appdata *ad = (setting_main_appdata *) cb;
55 Evas_Object *scroller = NULL;
57 menu_list_load_fn2 load_fn = NULL;
58 if (SETTING_VIEW_CONNECTIVE_MORE == ad->view_load)
60 title = _(KeyStr_MoreConnect);
61 load_fn = __load_connectivity_menu_list;
63 else if (SETTING_VIEW_SYSTEM_MORE == ad->view_load)
65 title = _(KeyStr_MoreSystem);
66 load_fn = __load_system_menu_list;
70 SETTING_TRACE_ERROR("Invalid view");
71 return SETTING_RETURN_FAIL;
73 setting_push_layout_navi_bar_genlist(ad->win_main, ad->win_main,
74 title, _("IDS_COM_BODY_BACK"),
76 setting_more_menu_click_softkey_cancel_cb,
77 NULL, ad, &scroller, ad->navibar_main);
79 evas_object_smart_callback_add(scroller, "realized", __gl_realized, ad);
81 Elm_Object_Item *item = elm_genlist_item_append(scroller, &(itc_sep),
83 ELM_GENLIST_ITEM_NONE, NULL, NULL);
84 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
86 load_fn(ad, Cfg_Item_Pos_Level1, scroller);
88 item = elm_genlist_item_append(scroller, &itc_bottom_seperator, NULL, NULL,
89 ELM_GENLIST_ITEM_NONE, NULL, NULL);
90 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
92 ad->genlist_load = scroller;
93 setting_view_more_menu.is_create = 1;
94 return SETTING_RETURN_SUCCESS;
97 static int setting_more_menu_destroy(void *cb)
101 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
103 setting_main_appdata *ad = (setting_main_appdata *) cb;
104 if (0 == setting_view_more_menu.is_create)
107 return SETTING_RETURN_SUCCESS;
110 evas_object_smart_callback_del(ad->genlist_load, "realized", __gl_realized);
112 elm_naviframe_item_pop(ad->navibar_main);
113 ad->view_load = SETTING_VIEW_MAIN;
114 ad->genlist_load = ad->main_genlist;
115 setting_view_more_menu.is_create = 0;
116 return SETTING_RETURN_SUCCESS;
119 static int setting_more_menu_update(void *cb)
121 return SETTING_RETURN_SUCCESS;
125 static int setting_more_menu_cleanup(void *cb)
129 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
130 setting_more_menu_destroy(cb);
132 return SETTING_RETURN_SUCCESS;
135 /* ***************************************************
139 ***************************************************/
141 /* ***************************************************
145 ***************************************************/
148 setting_more_menu_click_softkey_cancel_cb(void *data,
154 retm_if(data == NULL, "Data parameter is NULL");
155 setting_main_appdata *ad = (setting_main_appdata *) data;
157 setting_view_change(&setting_view_more_menu,
158 &setting_view_main, ad);