apply FSL(Flora Software License)
[apps/core/preloaded/settings.git] / include / setting.h
1 /*
2   * Copyright 2012  Samsung Electronics Co., Ltd
3   *
4   * Licensed under the Flora License, Version 1.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *     http://www.tizenopensource.org/license
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16 /****
17  *@defgroup setting-app
18  *entry point of Setting application
19  */
20 #ifndef __SETTING_H__
21 #define __SETTING_H__
22
23 #include <appcore-efl.h>
24
25 #include <setting-common-draw-widget.h>
26 #include <setting-common-view.h>
27 #include <setting-cfg.h>
28
29
30 /*  TAPI*/
31 #include <TapiCommon.h>
32 #include <ITapiPower.h>
33
34 #include <bundle.h>
35 #include <ui-gadget.h>
36
37 #define EDIT_PREFERRED_STR "IDS_ST_BUTTON2_EDIT_PREFERRED"
38 #define PREFERRED_STR "IDS_ST_TAB_PREFERRED"
39 #define ALL_STR "IDS_ST_OPT_ALL"
40 #define SETTING_MAX_PID_LEN 128
41
42 /**
43 * @brief
44 */
45 typedef enum _setting_view_type {
46         SETTING_VIEW_MAIN = 0,
47         SETTING_VIEW_CONNECTIVE_MORE,
48         SETTING_VIEW_SYSTEM_MORE,
49         SETTING_VIEW_ALL_CHECK = 9,
50 } Setting_View_Type;
51
52 typedef void (*menu_list_load_fn) (void *data);
53 typedef void (*menu_list_load_fn2) (void *, Cfg_Item_Position, Evas_Object *);
54
55 typedef enum _List_Load_Func_Type {
56         Func_Type_Connectivity = 0,
57         Func_Type_System = 1,
58         Func_Type_Apps = 2,
59         Func_Type_DownApp = 3,
60         Func_Type_MAX
61 } List_Load_Func_Type;
62
63 typedef enum _MAIN_PROFILE_Type {
64         MAIN_PROFILE_PREFERRED = 0,
65         MAIN_PROFILE_ALL = 1,
66         MAIN_PROFILE_MAX
67 } MAIN_PROFILE_Type;
68
69 typedef enum _Update_GL_Item_Type {
70         GL_ITEM_WIFI = 0,
71         GL_ITEM_BT,
72         GL_ITEM_MAP,
73         GL_ITEM_USB,
74         GL_ITEM_THEME,
75
76         GL_ITEM_ROAMING,
77         GL_ITEM_ROTATION,
78
79         GL_ITEM_MAX
80 } Update_GL_Item_Type;
81
82 #define VCONF_KEY_EVENT_ARR_SIZE 11
83 typedef struct _vconf_key_change_event
84 {
85         // member data
86         char *in_key[VCONF_KEY_EVENT_ARR_SIZE];
87         vconf_callback_fn cb[VCONF_KEY_EVENT_ARR_SIZE];
88         // member functions
89         int (*listen)(struct _vconf_key_change_event* me, void* data);
90         int (*unlisten)(struct _vconf_key_change_event* me, void* data);
91 }vconf_key_change_event;
92
93 /**
94 * @brief main view context
95 */
96 typedef struct _setting_main_appdata {
97         struct ui_gadget *ug;
98         Eina_Bool bAppPause;
99         Eina_Bool updateItems[GL_ITEM_MAX];
100
101         Evas *evas;
102         Evas_Object *win_main;
103
104         Evas_Object *controllbar_all_check;
105         Evas_Object *gl_sel_all;
106
107         menu_list_load_fn load_fns[Func_Type_MAX];
108         MAIN_PROFILE_Type profile_type;
109
110         Evas_Object *navibar_main;
111
112         Evas_Object *ly_main;                   /**< seting view main */
113         Setting_View_Type view_load;
114         Evas_Object *genlist_load;
115
116         Elm_Object_Item *edit_item;
117         Elm_Object_Item *segment_all;
118         Elm_Object_Item *segment_preferred;
119
120         bool need_register;
121         bool isInUGMode;
122
123         /* special layout */
124         Setting_GenGroupItem_Data *data_wifi;
125         Setting_GenGroupItem_Data *data_bt;
126         Setting_GenGroupItem_Data *data_roaming;
127         Setting_GenGroupItem_Data *data_rotationMode;
128         Setting_GenGroupItem_Data *data_mobileApp;
129
130         Setting_GenGroupItem_Data *data_usbcon;
131         Setting_GenGroupItem_Data *data_theme;
132
133         Setting_GenGroupItem_Data *data_moreSystem;
134         Setting_GenGroupItem_Data *data_moreConnect;
135
136         Setting_View_Type view_type;
137
138         Evas_Object *main_genlist;                              /**< genlist in main page */
139         Evas_Object *all_check_genlist;
140
141         Elm_Genlist_Item_Class itc[GENDIAL_Type_MAX];
142
143         Eina_List *item_check_list;
144         Setting_GenGroupItem_Data *check_all_item;
145         /*  Animation effect for Ui-Gadget. */
146         Evas_Object *ly;
147
148         Evas_Object *data_roaming_popup;
149
150         // listen / unlisten code
151         vconf_key_change_event vk_events;
152
153 } setting_main_appdata;
154
155 /* launch view */
156 extern setting_view setting_view_main;
157 extern setting_view setting_view_more_menu;
158 extern void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
159 extern void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
160
161 void signal_hide_finished(void *data, Evas_Object *obj, const char *emission,
162                           const char *source);
163
164 #endif                          /* __SETTING_H__ */