apply FSL license
[apps/home/settings.git] / setting-network / include / setting-network.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
18 #ifndef __SETTING_NETWORK_H__
19 #define __SETTING_NETWORK_H__
20
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <glib.h>
24 #include <appcore-efl.h>
25 #include <Elementary.h>
26 #include <Ecore_IMF.h>
27 #include <string.h>
28
29 #include <glib-object.h>
30 #include <ui-gadget.h>
31 #include <ui-gadget-module.h>
32 #include <bundle.h>
33
34 #include <network-pm-config.h>
35 #include <network-cm-intf.h>
36 #include <network-pm-intf.h>
37
38
39 #include <setting-common-draw-widget.h>
40 #include <setting-common-view.h>
41
42 #ifdef Status
43 #undef Status
44 #endif
45
46 #include <TapiEvent.h>
47
48 #include <ITapiNetwork.h>
49 #include <ITapiSim.h>
50
51 #include <TelErr.h>
52
53 #include <Ecore_IMF.h>
54
55 #define SETTING_ADD_PROFILE_INDEX -1
56 #define Invoking_TAPI_Timeout  8
57 #define COUNTRY_CODE_LEN        3
58 #define NETWORK_CODE_LEN        3
59 #define PRE_NETWORK_NAME_MAX 256
60
61 #define SETTING_NETWORK_POP_RESPONSE_ACTION_CANCEL  10  /*  the popupresponse action ID */
62 #define SETTING_NETWORK_SUBS_ID_NET_LEN 7
63
64 typedef enum {
65         SETTING_NETWORK_PREFERRED_NETWORK_NONE,
66         SETTING_NETWORK_PREFERRED_NETWORK_NEW,
67         SETTING_NETWORK_PREFERRED_NETWORK_EDIT,
68         SETTING_NETWORK_PREFERRED_NETWORK_LIST,
69         SETTING_NETWORK_PREFERRED_NETWORK_DELETE,
70
71 } setting_network_preferred_network_operation_type_t;
72
73 typedef struct _SettingNetworkUG SettingNetworkUG;
74
75 struct gl_network_data {
76         int index;
77         char name[PRE_NETWORK_NAME_MAX];
78 };
79
80 /**
81  * Setting Network UG context
82  * all UG function has void* as an agument. this is casted back to SettingNetworkUG
83  * and the functions access app context.
84  */
85 struct _SettingNetworkUG {
86         struct ui_gadget *ug;
87
88         /* add more variables here (move your appdata to here) */
89         Evas *evas;
90         Evas_Object *win_main_layout;
91         Evas_Object *win_get;
92         Evas_Object *popup;
93         Evas_Object *navi_bar;
94         Elm_Object_Item *navi_it;
95         bool has_form_changed;
96         Evas_Object *genlist_sel_network;
97
98         Evas_Object *network_ug_pop;
99         Evas_Object *controllbar;
100
101         Evas_Object *ly_main;
102         unsigned int subs_id_net[SETTING_NETWORK_SUBS_ID_NET_LEN];
103
104         Setting_GenGroupItem_Data* data_selected_network_item;
105         Setting_GenGroupItem_Data* data_auto_network_item;
106         Setting_GenGroupItem_Data* data_search_network_item;
107         bool b_searching_network;
108         bool b_set_auto_network;
109         bool b_set_manul_network;
110
111         Setting_GenGroupItem_Data *data_sel_net;
112         Setting_GenGroupItem_Data *data_net_mode;
113         Setting_GenGroupItem_Data *data_use_packet;
114
115         unsigned int sel_net_plmn_id;
116
117         Evas_Object *chk_sel;
118         Evas_Object *chk_mode;
119         Evas_Object *pop_gsm;
120         Evas_Object *chk_3gcon;
121
122         int sel_net;            /* like vconf key */
123         int net_mode;           /* like vconf key */
124
125         Evas_Object *pop_sch;
126         TelNetworkPlmnList_t plmn_info;
127         Evas_Object *pop_reg;
128
129         int is_show_user;
130         net_service_type_t con_type;
131         net_profile_info_t *prof_list;
132         int prof_count;
133         int prof_sel_idx;
134
135         Evas_Object *chk_type;
136
137         const char *ed_acs_name_desc;
138         const char *ed_user_name_desc;
139         const char *ed_pwd_desc;
140         const char *ed_pxy_addr_desc;
141         const char *ed_pxy_port_desc;
142         const char *ed_hm_url_desc;
143         int chkType;
144         Elm_Object_Item *item_above_user_name;
145         Elm_Object_Item *item_above_proxy_add;
146         Setting_GenGroupItem_Data *data_user_name;
147         Setting_GenGroupItem_Data *data_pwd;
148         Setting_GenGroupItem_Data *data_acs_name;
149         Setting_GenGroupItem_Data *data_pxy_addr;
150         Setting_GenGroupItem_Data *data_pxy_port;
151         Setting_GenGroupItem_Data *data_hm_url;
152         Setting_GenGroupItem_Data *data_auth_type;
153         Setting_GenGroupItem_Data *data_type_nor;
154         Setting_GenGroupItem_Data *data_type_sec;
155         Setting_GenGroupItem_Data *data_type_none;
156
157         Evas_Object *scl_edit;
158
159         /* Preferred network common */
160         Evas_Object *pop_save;
161         Evas_Object *pop_del;
162         TelNetworkPrefferedPlmnList_t pref_list;
163         int sel_pref_idx;
164         setting_network_preferred_network_operation_type_t op_type;
165
166         Ecore_Idler *add_view_timer;
167         char search_text[MAX_SEARCH_STR_LEN + 1];
168         Evas_Object *nw_search_bar;
169
170         Evas_Object *scl_pref;
171         Evas_Object *chk_new_type;
172         Setting_GenGroupItem_Data *data_edit_mcc;
173         Setting_GenGroupItem_Data *data_edit_mnc;
174         Setting_GenGroupItem_Data *data_new_mcc;
175         Setting_GenGroupItem_Data *data_new_mnc;
176         Evas_Object *chk_edit_type;
177         Evas_Object *scl_pref_del;
178         Evas_Object *gl_sel_all;
179
180         Evas_Object *popup_label;
181         int deleted_number;
182         Eina_List *checked_data_list;
183         Eina_List *item_check_list;
184
185         /* Preferred network network list for genlist */
186         Evas_Object *gl_network;
187         Elm_Genlist_Item_Class itc;
188         struct gl_network_data *cur_sel_mem;
189         int cur_sel_index;
190         Elm_Genlist_Item_Class itc_1text_1icon_2;
191         Elm_Genlist_Item_Class itc_seperator;
192         Elm_Genlist_Item_Class itc_variable_height;
193         Elm_Genlist_Item_Class itc_bg_1icon;
194         Elm_Genlist_Item_Class itc_2text_3_parent;
195         Elm_Genlist_Item_Class itc_1icon_1text_sub;
196         Elm_Genlist_Item_Class itc_2text_2;
197         Elm_Genlist_Item_Class itc_1text;
198         Elm_Genlist_Item_Class itc_group_item;
199         Elm_Genlist_Item_Class itc_1text_1icon;
200         Elm_Genlist_Item_Class itc_sel_all;
201         Elm_Genlist_Item_Class itc_1icon_1text;
202         Elm_Genlist_Item_Class itc_1text_2icon;
203         Elm_Genlist_Item_Class itc_2text_2icon_3;
204
205         Setting_GenGroupItem_Data *data_cl_select_all;
206         Evas_Object *sub_clear_layout;
207         Evas_Object *selInfoPop;
208         Evas_Object *selInfoPop_layout;
209 };
210
211
212 extern setting_view setting_view_network_main;
213 extern setting_view setting_view_network_select_network;
214 extern setting_view setting_view_network_main_help;
215 extern setting_view setting_view_network_connection_create;
216 extern setting_view setting_view_network_3gcon;
217
218 extern setting_view setting_view_network_preferred_network;
219 extern setting_view setting_view_network_preferred_network_new;
220 extern setting_view setting_view_network_preferred_network_list;
221 extern setting_view setting_view_network_preferred_network_edit;
222 extern setting_view setting_view_network_preferred_network_delete;
223
224 void setting_network_tapi_event_callback(TelTapiEvent_t *event, void *data);
225 void setting_network_select_network_chk_changed(void *data, Evas_Object *obj,
226                                                 void *event_info);
227 void setting_network_Gendial_select_plmn_cb(void *data, Evas_Object *obj,
228                                             void *event_info);
229 void setting_network_register_network(Setting_GenGroupItem_Data *list_item);
230
231
232 void setting_network_popup_create(void *data, char *str_content, bool keep);
233 void setting_network_popup_update(void *data, char *str_content, bool keep);
234 void setting_network_popup_delete(void *data);
235 Evas_Object *setting_network_create_register_popup(void *data);
236 Evas_Object *setting_network_preferred_network_create_save_popup(void *data);
237 Evas_Object *setting_network_preferred_network_create_delete_popup(void *data);
238 void setting_network_preferred_network_create_isf(Evas_Object *entry);
239
240 #endif                          /* __SETTING_NETWORK_H__ */