Create sub-text of 'More connectivity' and 'More system' menu.
[apps/core/preloaded/settings.git] / include / setting.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
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
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
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.
19  *
20  */
21 /**
22  *@defgroup setting-app
23  *entry point of Setting application
24  */
25 #ifndef __SETTING_H__
26 #define __SETTING_H__
27
28 #include <setting-cfg.h>
29
30 #include <setting-common-draw-widget.h>
31 #include <setting-common-view.h>
32
33 /*  TAPI*/
34 #include <tapi_common.h>
35 #include <ITapiModem.h>
36
37 #include <sensors.h>
38
39 #define EDIT_PREFERRED_STR "IDS_ST_BUTTON2_EDIT_PREFERRED"
40 //#define PREFERRED_STR "IDS_ST_TAB_PREFERRED"
41 #define PREFERRED_STR "IDS_ST_BODY_FREQUENTLY_USED"
42 #define ALL_STR "IDS_ST_OPT_ALL"
43 #define SETTING_MAX_PID_LEN 128
44
45 #define NO_UG_FOUND_MSG                         _("Unsupported menu")
46 #define USB_NEED_OFF "Please turn USB tethering off first in Mobile hotspot"
47
48 #define SETTING_NFC_DESC "IDS_ST_BODY_ALLOW_DATA_EXCHANGE_WHEN_DEVICE_TOUCHES_ANOTHER_DEVICE"
49 #define SETTING_WIFI_DIRECT_DESC "IDS_ST_BODY_SET_UP_PEER_TO_PEER_CONNECTIVITY_ABB"
50 #define SETTING_KIES_VIA_WIFI_DESC "IDS_ST_BODY_CONNECT_TO_KIES_VIA_WI_FI"
51
52 /**
53 * @brief
54 */
55 typedef enum _setting_view_type {
56         SETTING_VIEW_MAIN = 0,
57         SETTING_VIEW_CONNECTIVE_MORE,
58         SETTING_VIEW_SYSTEM_MORE,
59         SETTING_VIEW_ALL_CHECK = 9,
60 } Setting_View_Type;
61
62 typedef void (*menu_list_load_fn) (void *data);
63 typedef void (*menu_list_load_fn2) (void *, Cfg_Item_Position, Evas_Object *);
64
65 typedef enum _List_Load_Func_Type {
66         Func_Type_Connectivity = 0,
67         Func_Type_System = 1,
68         Func_Type_Apps = 2,
69         Func_Type_DownApp = 3,
70         Func_Type_MAX
71 } List_Load_Func_Type;
72
73 typedef enum _MAIN_PROFILE_Type {
74         MAIN_PROFILE_PREFERRED = 0,
75         MAIN_PROFILE_ALL = 1,
76         MAIN_PROFILE_MAX
77 } MAIN_PROFILE_Type;
78
79 /**
80  * enum for genlist item to be updated
81  * @see setting_update_gl_item
82  */
83 typedef enum _Update_GL_Item_Type {
84         GL_ITEM_WIFI = 0,
85         GL_ITEM_BT,
86         GL_ITEM_NFC,
87         GL_ITEM_MAP,
88         GL_ITEM_USB,
89
90         GL_ITEM_ROTATION,
91         GL_ITEM_FLIGHT,
92
93         GL_ITEM_MAX
94 } Update_GL_Item_Type;
95
96 typedef enum _FLIGHT_MODE_OPEARTION{
97         FM_INVALID = 0,//There is no request waiting for processing
98         FM_ENTER = 1,//Some "flightmode enter" request is waiting for processing
99         FM_LEAVE,//Some "flightmode leave" request is waiting for processing
100 } FLIGHT_MODE_OPEARTION;
101
102
103 #define MAX_MORE_MENU_NUM       6
104 /**
105 * @brief main view context
106 */
107 typedef struct _setting_main_appdata {
108
109         ui_gadget_h ug;
110         TapiHandle *handle;
111                 
112         Eina_Bool bAppPause;
113         Eina_Bool updateItems[GL_ITEM_MAX];
114
115         Evas *evas;
116         Evas_Object *win_main;
117         Evas_Object *controlbar;
118
119         Evas_Object *controllbar_all_check;
120         Evas_Object *gl_sel_all;
121
122         menu_list_load_fn load_fns[Func_Type_MAX];
123         MAIN_PROFILE_Type profile_type;
124
125         Evas_Object *navibar_main;
126
127         Evas_Object *ly_main;                   /**< seting view main */
128         Setting_View_Type view_load;
129         Evas_Object *genlist_load;
130
131         Elm_Object_Item *edit_item;
132         Elm_Object_Item *segment_all;
133         Elm_Object_Item *segment_preferred;
134
135         bool isInUGMode;
136
137         /* vars for flightmode */
138         bool b_fm_requesting;//whether some request is processing. 1:yes, 0:no
139         FLIGHT_MODE_OPEARTION fm_waiting_op;
140
141
142         /* special layout */
143         Setting_GenGroupItem_Data *data_flight;
144         Setting_GenGroupItem_Data *data_wifi;
145         Setting_GenGroupItem_Data *data_bt;
146         Setting_GenGroupItem_Data *data_rotationMode;
147         Setting_GenGroupItem_Data *data_mobileApp;
148
149         Setting_GenGroupItem_Data *data_bright;
150
151         Setting_GenGroupItem_Data *data_moreSystem;
152         Setting_GenGroupItem_Data *data_moreConnect;
153         Setting_GenGroupItem_Data *data_nfc;
154
155         Setting_View_Type view_type;
156
157         Evas_Object *main_genlist;                              /**< 'Setting main' in main page */
158         Evas_Object *edit_preferred_genlist;    /**< 'Edit preferred' page */
159
160         Elm_Genlist_Item_Class itc[GENDIAL_Type_MAX];
161
162         Eina_List *item_check_list;                                /**< in preferred view, store the selected items in the list.  */
163         Setting_GenGroupItem_Data *check_all_item; /**< genlist node for "Select all" */
164
165         Evas_Object *flight_popup;
166         Evas_Object *data_roaming_popup;
167
168         // listen / unlisten code
169         Eina_List *listened_list;
170         sensor_h sf_handle;
171
172         const char *more_connective_menus[MAX_MORE_MENU_NUM];
173         const char *more_system_menus[MAX_MORE_MENU_NUM];
174         
175
176 } setting_main_appdata;
177
178 /* launch view */
179 extern setting_view setting_view_main;
180 extern setting_view setting_view_more_menu;
181 extern void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
182 extern void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
183
184 #endif                          /* __SETTING_H__ */