2 * Copyright 2012 Samsung Electronics Co., Ltd
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
8 * http://www.tizenopensource.org/license
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.
17 #ifndef _DEF_email_viewer_H_
18 #define _DEF_email_viewer_H_
20 #include <Elementary.h>
22 #include <appcore-efl.h>
24 #include <ui-gadget-module.h>
38 #include <vconf-keys.h>
40 #include <glib-object.h>
43 #include "email-viewer-logic.h"
44 #include "email-utils.h"
45 #include "email-locale.h"
47 #define VIEWER_PACKAGE "email-viewer"
48 #define EV_THEME_PATH EDJDIR"/email-viewer-theme.edj"
50 #define _EDJ(o) elm_layout_edje_get(o)
52 #define DEFAULT_CHARSET "UTF-8"
54 #define MAILBOX_STR_MAX 128
55 #define MAX_STR_LEN 1024
56 #define MAX_LABEL_LEN 512
58 #define CONTACTUI_REQ_ADD_PHONE_NUMBER 19
59 #define CONTACTUI_REQ_ADD_EMAIL 20
60 #define CONTACTUI_REQ_ADD_URL 21
61 #define CONTACTUI_REQ_SELECT_UPDATE_ITEM 11
62 #define CONTACTUI_UPDATE_PHONE_NUMBER 0
63 #define CONTACTUI_UPDATE_EMAIL 1
64 #define CONTACTUI_UPDATE_HOMEPAGE 2
65 #define CONTACT_PHONE_CONTACT 0
66 #define CONTACTUI_REQ_CONTACT_DETAIL_INFO_VIEW 43
68 #define EMAIL_VIEW_MAX_TO_COUNT 500
69 #define EMAIL_VIEW_MAX_CC_COUNT 500
70 #define EMAIL_VIEW_MAX_BCC_COUNT 500
72 #define EMAIL_DEFAULT_HTML "file://"DATADIR"/_email_default.html"
73 #define EMAIL_VIEWER_TMP_FOLDER DIR_TMP_PREFIX"/email_viewer"
75 #define EMAIL_VIEWER_NOC_WIDTH 710.0
76 #define EMAIL_VIEWER_NOC_HIGHT 949.0
79 EMAIL_POPUP_BODY_DN_OK = 10,
80 EMAIL_POPUP_EMAIL_DELETE_OK,
81 EMAIL_POPUP_EMAIL_MOVETO_SPAM_OK,
82 EMAIL_POPUP_EMAIL_MOVETO_INBOX_OK,
83 EMAIL_POPUP_BODY_DN_CANCEL,
84 EMAIL_POPUP_ATT_DN_CANCEL,
85 EMAIL_POPUP_ATT_ALL_DN_CANCEL,
86 EMAIL_POPUP_HTML_LOAD_CANCEL,
88 } EV_POPUP_RESPONSE_ID;
97 EMAIL_VIEWER_PROGRESSBAR_ATT = 0,
98 EMAIL_VIEWER_PROGRESSBAR_ATT_ALL,
99 EMAIL_VIEWER_PROGRESSBAR_BODY,
100 EMAIL_VIEWER_PROGRESSBAR_HTML,
101 EMAIL_VIEWER_PROGRESSBAR_MAX
102 } EMAIL_VIEWER_PROGRESSBAR_TYPE;
104 typedef struct list_data list_data;
112 gboolean is_attachment;
114 gboolean is_sending_now;
115 gboolean is_body_download;
120 Elm_Object_Item *item;
123 typedef struct _EmailViewerWebview EmailViewerWebview;
124 struct _EmailViewerWebview {
125 Evas_Coord minw, minh;
127 int content_w, content_h;
130 MESSAGE_BODY_TYPE body_type;
131 MESSAGE_BODY_TYPE body_type_prev;
139 typedef struct ug_data EmailViewerUGD;
146 Evas_Object *win_main;
147 Evas_Object *layout_main;
160 char account_email_address[MAX_STR_LEN];
167 int mail_list_cur_idx;
173 int subject_onoff_flag;
174 int attach_onoff_flag;
177 int b_direct_destroy;
179 int m_is_multi_touch;
181 int b_contact_ug_launched;
182 int display_download_result;
183 int option_header_opened;
184 Eina_Bool b_load_finished;
185 Eina_Bool b_show_remote_images;
186 Eina_Bool is_webview_scrolling;
187 Eina_Bool is_main_scroller_scrolling;
190 int create_contact_arg;
191 int update_contact_type;
196 float webview_height;
197 float webview_width_landscape;
198 float webview_height_landscape;
200 int webview_margin_landscape;
206 email_mailbox_type_e mailbox_type;
208 email_mailbox_t *move_mailbox_list;
209 int move_mailbox_count;
212 Evas_Object *dg_subject;
213 Evas_Object *lb_subject;
214 Evas_Object *ly_subject;
215 Evas_Object *dg_attach;
217 Evas_Object *scroller;
218 Evas_Object *webview_bx;
219 Evas_Object *main_bx;
220 Evas_Object *navi_bar;
221 Evas_Object *ctr_bar;
222 Evas_Object *up_ctrl_bar;
223 Evas_Object *webview;
225 Evas_Object *con_popup;
226 Evas_Object *timeout_popup;
227 Evas_Object *select_info;
228 Evas_Object *selectioninfo_layout;
230 Evas_Object *pb_notify;
231 Evas_Object *pb_notify_lb;
232 Evas_Object *dn_popup;
233 Evas_Object *dn_progress;
234 Evas_Object *att_progress;
236 Evas_Object *prev_btn;
237 Evas_Object *more_btn;
238 Evas_Object *next_btn;
240 Evas_Object *partial_dn_btn;
241 Evas_Object *partial_dn_btn_bx;
247 Evas_Object *bcc_mbe;
249 Evas_Object *opt_btn1;
250 Evas_Object *opt_btn2;
251 Evas_Object *opt_btn3;
252 Evas_Object *move_cbar;
257 Evas_Object *from_btn;
258 Evas_Object *attach_hd_ly;
259 Evas_Object **attach_ex_ly;
260 Evas_Object *attach_hd_bk;
261 Evas_Object **attach_ex_bk;
263 Evas_Object *progress_bar[ATTACH_MAX];
264 Evas_Object *progress_bar_ly[ATTACH_MAX];
266 Evas_Object *reply_btn;
267 Evas_Object *delete_btn;
268 Evas_Object *resend_btn;
269 Evas_Object *cancel_btn;
270 Evas_Object *move_btn;
272 Elm_Object_Item *navi_main_it;
273 Elm_Object_Item *navi_move_it1;
275 E_DBus_Connection *edbus_conn;
276 EmailViewerWebview *webview_data;
277 EmailViewerPrivate *email_data;
278 EmailViewerProp *property;
281 Elm_Genlist_Item_Class itc1;
288 ui_gadget_h ug_composer;
289 ui_gadget_h ug_image_viewer;
290 ui_gadget_h ug_contacts_search;
291 ui_gadget_h ug_calendar_edit;
295 Ecore_Timer *waiting_timer;
297 Evas_Object *gesture_obj;
300 void _hide_view(EmailViewerUGD *ug_data);
301 void _launch_composer(EmailViewerUGD *ug_data, int type);
303 #endif /* __DEF_email-viewer_H__ */