Implement tizen 2.0 beta.
[apps/core/preloaded/message-app.git] / setting / include / msg-ui-setting-types.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 __DEF_MSG_UI_SETTING_TYPES_H__
19 #define __DEF_MSG_UI_SETTING_TYPES_H__
20
21
22 #include "message.h"
23 #include <msg.h>
24
25
26 #define MSG_SETTING_THEME       EDJDIR"/setting_theme.edj"
27 #define MSG_SETTING_THEME_BLACK EDJDIR"/setting_theme_black.edj"
28
29 #define MAX_SETTING_CTRLBAR_BUTTON      4
30 #define MAX_FILTER_LIST 100
31 #define MAX_SMSC_LIST   SMSC_LIST_MAX
32 #define MAX_SMSC_NAME_LEN       SMSC_NAME_MAX
33 #define MAX_SMSC_ADDR_LEN       SMSC_ADDR_MAX
34 #define MAX_MY_CH_LIST  CB_CHANNEL_MAX
35 #define MAX_CH_NAME_LEN CB_CHANNEL_NAME_MAX
36 #define MAX_CBLANG_COUNT        MSG_CBLANG_TYPE_MAX
37
38 /*============================================================================
39                                 TYPES
40 =============================================================================*/
41
42 /**
43  *      The values for this type SHOULD be in _MSG_UI_SETTING_TYPE_E.
44  */
45
46 typedef unsigned int MSG_UI_SETTING_TYPE_T;
47
48 /**
49  *      The values for this type SHOULD be in _MSG_UI_GENERAL_TYPE_E.
50  */
51 typedef unsigned int MSG_UI_GENERAL_TYPE_T;
52
53
54 /*============================================================================
55                                 ENUMS
56 =============================================================================*/
57
58 /**
59  *      This enum is used as the value of MSG_UI_SETTING_TYPE_T.
60  */
61 enum _MSG_UI_SETTING_TYPE_E {
62         MSG_UI_SETTING_TYPE_GENERAL = MSG_GENERAL_OPT,
63         MSG_UI_SETTING_TYPE_SMS_SEND = MSG_SMS_SENDOPT,
64         MSG_UI_SETTING_TYPE_SMSC_LIST = MSG_SMSC_LIST,
65         MSG_UI_SETTING_TYPE_MMS_SEND = MSG_MMS_SENDOPT,
66         MSG_UI_SETTING_TYPE_MMS_RECEIVE = MSG_MMS_RECVOPT,
67         MSG_UI_SETTING_TYPE_MMS_CLASS = MSG_MMS_CLASSOPT,
68         MSG_UI_SETTING_TYPE_CBMSG = MSG_CBMSG_OPT,
69 };
70
71 typedef enum {
72         MSG_UI_SETTING_BLOCK_FILTER_VIEW,
73         MSG_UI_SETTING_BLOCK_FILTER_DELETE_VIEW,
74         MSG_UI_SETTING_BLOCK_FILTER_DETAIL_VIEW,
75         MSG_UI_SETTING_BLOCK_LIST_VIEW,
76         MSG_UI_SETTING_BLOCK_LIST_DELETE_VIEW,
77
78 } MSG_UI_SETTING_BLOCK_VIEW_MODE_E;
79
80
81 /*============================================================================
82                                 STRUCT DEFINE
83 =============================================================================*/
84
85 typedef struct {
86         Evas_Object *general_genlist;
87         Elm_Genlist_Item_Class general_itc;
88
89 } MSG_UI_SETTING_GENERAL_S;
90
91 typedef struct {
92         Evas_Object *text_genlist;
93         Elm_Genlist_Item_Class text_2line_itc;
94         Elm_Genlist_Item_Class text_1line_1icon_itc;
95
96         Evas_Object *req_delivery_rep_check;
97
98         Elm_Object_Item *service_centre_item;
99         Evas_Object *smsc_all_genlist;
100         Elm_Genlist_Item_Class text_1line_2icon_itc;
101         Evas_Object *service_centre_radio_group;
102         Evas_Object *service_centre_btn_reveal;
103
104         Evas_Object *smsc_genlist;
105         Elm_Genlist_Item_Class smsc_title_itc;
106         Elm_Genlist_Item_Class smsc_1icon_itc;
107
108         /* Service Center */
109         int center_index;
110         Evas_Object *smsc_addr_entry;
111
112 } MSG_UI_SETTING_TEXT_S;
113
114 typedef struct {
115         Evas_Object *mm_genlist;
116         Elm_Genlist_Item_Class mm_itc;
117         Elm_Genlist_Item_Class mm_1line_1icon_itc;
118         Elm_Genlist_Item_Class mm_2line_1icon_itc;
119         Evas_Object *mm_delivery_report_check;
120
121         /* Creation mode */
122         Elm_Genlist_Item_Class mm_creation_mode_itc;
123         Elm_Object_Item *creation_mode_item;
124         Evas_Object *creation_radio_group;
125
126         /* Receiving Option */
127         Evas_Object *mm_recv_genlist;
128         Elm_Genlist_Item_Class mm_recv_2line_expand_itc;
129
130         Elm_Genlist_Item_Class mm_recv_home_network_itc;
131         Elm_Genlist_Item_Class mm_recv_foreign_network_itc;
132
133         Elm_Object_Item *mm_recv_home_network_item;
134         Evas_Object *mm_recv_home_network_radio_group;
135
136         Elm_Object_Item *mm_recv_foreign_network_item;
137         Evas_Object *mm_recv_foreign_network_radio_group;
138
139         /* Read report Menu */
140         Evas_Object *mm_read_rep_genlist;
141         Elm_Genlist_Item_Class mm_read_rep_1line_1icon_itc;
142         Evas_Object *mm_read_rep_request_check;
143         Evas_Object *mm_read_rep_send_check;
144
145 } MSG_UI_SETTING_MM_S;
146
147 typedef struct _MSG_UI_SETTING_S {
148         MSG_UI_SETTING_TYPE_T type;
149
150         msg_struct_t setting_opt;
151         msg_struct_list_s *smsc_list;
152
153 } MSG_UI_SETTING_S;
154
155 typedef struct _MSG_UI_SETTING_FILTER_S {
156         Evas_Object *block_layout;
157
158         msg_struct_list_s filterList;
159
160         Evas_Object *block_filter_nocontents;
161         Evas_Object *block_filter_box;
162
163         Elm_Object_Item *ctrl_btn[MAX_SETTING_CTRLBAR_BUTTON];
164         Elm_Object_Item *block_left_btn;
165         Elm_Object_Item *block_right_btn;
166
167         Evas_Object *block_ctrl_bar;
168
169         /* Filter list */
170         Evas_Object *block_filter_genlist;
171         Elm_Genlist_Item_Class block_filter_itc;
172
173         Evas_Object *block_filter_sel_all_layout;
174         Evas_Object *block_filter_chk_sel_all;
175         Eina_Bool block_filter_chk_sel_all_state;
176         Evas_Object *block_filter_chk[MAX_FILTER_LIST];
177         Eina_Bool block_filter_chk_state[MAX_FILTER_LIST];
178
179         /* Filter detail view. */
180         int block_filter_sel_index;
181         Evas_Object *block_filter_detail_layout;
182         Evas_Object *block_filter_detail_genlist;
183         Elm_Genlist_Item_Class block_filter_detail_title_itc;
184         Elm_Genlist_Item_Class block_filter_detail_1icon_itc;
185         Evas_Object *block_filter_detail_done_btn;
186         Evas_Object *block_filter_detail_entry_ly;
187         Evas_Object *block_filter_detail_entry;
188
189 } MSG_UI_SETTING_FILTER_S;
190
191 typedef struct _MSG_SETTING_DATA {
192         ui_gadget_h ug;
193         struct ug_cbs cbs;
194         ui_gadget_h loaded_ug;
195
196         Evas_Object *layout_main;
197         Evas_Object *bg;
198         Evas_Object *navi_frame;
199         Evas_Object *popup;
200         Evas_Object *selectioninfo;
201         Evas_Object *selectioninfo_layout;
202
203         msg_handle_t msgHandle;
204         MSG_UI_SETTING_S msg_setting;
205
206         Elm_Genlist_Item_Class grp_sep_itc;
207
208         Evas_Object *main_genlist;
209         Evas_Object *cb_activate_check;
210         Elm_Genlist_Item_Class main_itc;
211         Elm_Genlist_Item_Class cb_msg_itc;
212         Elm_Genlist_Item_Class sub_title_itc;
213
214         MSG_UI_SETTING_FILTER_S block_msg;
215
216         Evas_Object *font_size_genlist;
217         Elm_Genlist_Item_Class font_size_itc;
218         Evas_Object *font_size_radio_group;
219         int font_size_index;
220
221         union {
222                 MSG_UI_SETTING_GENERAL_S general_setting;
223                 MSG_UI_SETTING_TEXT_S text_msg;
224                 MSG_UI_SETTING_MM_S mm_msg;
225         } list;
226
227 } MSG_SETTING_DATA, *PMSG_SETTING_DATA;
228
229 #endif