3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.1 (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-more-menu.h>
19 static int setting_more_menu_create(void *cb);
20 static int setting_more_menu_destroy(void *cb);
21 static int setting_more_menu_update(void *cb);
22 static int setting_more_menu_cleanup(void *cb);
24 setting_view setting_view_more_menu = {
25 .create = setting_more_menu_create,
26 .destroy = setting_more_menu_destroy,
27 .update = setting_more_menu_update,
28 .cleanup = setting_more_menu_cleanup,
31 /* ***************************************************
35 ***************************************************/
36 const static Elm_Genlist_Item_Class itc_sep = {
37 .item_style = "dialogue/separator",
38 .func.text_get = NULL,
39 .func.content_get = NULL,
40 .func.state_get = NULL,
44 static int setting_more_menu_create(void *cb)
47 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
49 setting_main_appdata *ad = (setting_main_appdata *) cb;
51 Evas_Object *scroller = NULL;
53 menu_list_load_fn2 load_fn = NULL;
54 if (SETTING_VIEW_CONNECTIVE_MORE == ad->view_load)
56 title = _(KeyStr_MoreConnect);
57 load_fn = __load_connectivity_menu_list;
59 else if (SETTING_VIEW_SYSTEM_MORE == ad->view_load)
61 title = _(KeyStr_MoreSystem);
62 load_fn = __load_system_menu_list;
66 SETTING_TRACE_ERROR("Invalid view");
67 return SETTING_RETURN_FAIL;
69 setting_push_layout_navi_bar_genlist(ad->win_main, ad->win_main,
70 title, _("IDS_COM_BODY_BACK"),
72 setting_more_menu_click_softkey_cancel_cb,
73 NULL, ad, &scroller, ad->navibar_main);
75 evas_object_smart_callback_add(scroller, "realized", __gl_realized, ad);
77 Elm_Object_Item *item = elm_genlist_item_append(scroller, &(itc_sep),
79 ELM_GENLIST_ITEM_NONE, NULL, NULL);
80 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
82 load_fn(ad, Cfg_Item_Pos_Level1, scroller);
84 item = elm_genlist_item_append(scroller, &itc_bottom_seperator, NULL, NULL,
85 ELM_GENLIST_ITEM_NONE, NULL, NULL);
86 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
88 ad->genlist_load = scroller;
89 setting_view_more_menu.is_create = 1;
90 return SETTING_RETURN_SUCCESS;
93 static int setting_more_menu_destroy(void *cb)
97 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
99 setting_main_appdata *ad = (setting_main_appdata *) cb;
100 if (0 == setting_view_more_menu.is_create)
103 return SETTING_RETURN_SUCCESS;
106 evas_object_smart_callback_del(ad->genlist_load, "realized", __gl_realized);
108 elm_naviframe_item_pop(ad->navibar_main);
109 ad->view_load = SETTING_VIEW_MAIN;
110 ad->genlist_load = ad->main_genlist;
111 setting_view_more_menu.is_create = 0;
112 return SETTING_RETURN_SUCCESS;
115 static int setting_more_menu_update(void *cb)
117 return SETTING_RETURN_SUCCESS;
121 static int setting_more_menu_cleanup(void *cb)
125 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
126 setting_more_menu_destroy(cb);
128 return SETTING_RETURN_SUCCESS;
131 /* ***************************************************
135 ***************************************************/
137 /* ***************************************************
141 ***************************************************/
144 setting_more_menu_click_softkey_cancel_cb(void *data,
150 retm_if(data == NULL, "Data parameter is NULL");
151 setting_main_appdata *ad = (setting_main_appdata *) data;
153 setting_view_change(&setting_view_more_menu,
154 &setting_view_main, ad);