summaryrefslogtreecommitdiff
path: root/composer/include
diff options
context:
space:
mode:
authorSungbok Park <parksb@samsung.com>2012-08-21 17:42:03 +0900
committerSungbok Park <parksb@samsung.com>2012-08-21 17:42:03 +0900
commitcf8473c54430527c7a8ab89cf84e05e7d711477b (patch)
treeb29503ce00c1ab948b6cdc96819a2946a6688ca0 /composer/include
parent6f9c7098724e12e1ab06a428efbc21bda28875b0 (diff)
downloademail-cf8473c54430527c7a8ab89cf84e05e7d711477b.tar.gz
email-cf8473c54430527c7a8ab89cf84e05e7d711477b.tar.bz2
email-cf8473c54430527c7a8ab89cf84e05e7d711477b.zip
org.tizen.email-0.0.1 release
Diffstat (limited to 'composer/include')
-rwxr-xr-xcomposer/include/email-composer-attachment.h38
-rwxr-xr-xcomposer/include/email-composer-callback.h67
-rwxr-xr-xcomposer/include/email-composer-contents.h29
-rwxr-xr-xcomposer/include/email-composer-filetype.h65
-rwxr-xr-xcomposer/include/email-composer-js.h49
-rwxr-xr-xcomposer/include/email-composer-predictive-search.h50
-rwxr-xr-xcomposer/include/email-composer-recipient.h28
-rwxr-xr-xcomposer/include/email-composer-type.h242
-rwxr-xr-xcomposer/include/email-composer-util.h116
-rwxr-xr-xcomposer/include/email-composer.h265
10 files changed, 949 insertions, 0 deletions
diff --git a/composer/include/email-composer-attachment.h b/composer/include/email-composer-attachment.h
new file mode 100755
index 0000000..1de0005
--- /dev/null
+++ b/composer/include/email-composer-attachment.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_composer_attachment_H_
+#define __DEF_email_composer_attachment_H_
+
+int _composer_get_attachments_total_size(EmailComposerUGD *ugd);
+int _composer_get_files_size(Eina_List *files_list);
+void _composer_attachment_create_list(EmailComposerUGD *ugd, Eina_List *list, Eina_Bool is_inline);
+void _composer_attachment_reset(EmailComposerUGD *ugd);
+int _composer_get_inline_images_size(EmailComposerUGD *ugd);
+void _composer_attachment_create_list_box(EmailComposerUGD *ugd, email_attachment_data_t *attachment_data);
+void _composer_attachment_add_thumbnail(EmailComposerUGD *ugd, Evas_Object *parent, char *filePath);
+Evas_Object *_composer_attachment_add_delete_icon(EmailComposerUGD *ugd, Evas_Object *parent);
+void _composer_attachment_add_filename(EmailComposerUGD *ugd, email_attachment_data_t * attachment_data, Evas_Object *parent);
+void _composer_attachment_set_attach_data(EmailComposerUGD *ugd, Evas_Object *parent, email_attachment_data_t *attachment_data);
+void _composer_attachment_create_contracted_box(EmailComposerUGD *ugd);
+Evas_Object *_composer_attachment_make_thumbnail(EmailComposerUGD *ugd, char *filePath, Evas_Object *parent);
+bool _composer_attachment_duplicate_check(EmailComposerUGD *ugd, char *pszAttachedFilePath);
+void _composer_attachment_expand_items(EmailComposerUGD *ugd);
+void _composer_attachment_contract_items(EmailComposerUGD *ugd);
+int _composer_attachment_make_ethumb(const char *source, char *target);
+void _composer_ethumb_generate_cb(void *data, Ethumb *e, Eina_Bool success);
+
+#endif /* __DEF_email_composer_attachment_H__ */
diff --git a/composer/include/email-composer-callback.h b/composer/include/email-composer-callback.h
new file mode 100755
index 0000000..43d6a76
--- /dev/null
+++ b/composer/include/email-composer-callback.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __EMAIL_COMPOSER_CALLBACK_H__
+#define __EMAIL_COMPOSER_CALLBACK_H__
+
+void _composer_mbe_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_longpressed_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_edit_field_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_more_button_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_back_button_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_added_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_deleted_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_selected_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_focused_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+Eina_Bool _composer_mbe_verified_item_cb(Evas_Object *obj, const char *item_label, void *item_data, void *data);
+void _composer_mbe_popup_delete_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_popup_edit_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_popup_move_to_to_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_popup_move_to_cc_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_popup_move_to_bcc_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_popup_change_addr_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_mbe_change_addr_response_cb(void *data, Evas_Object *obj, void *event_info);
+
+Eina_Bool _composer_send_mail_cb(void *data);
+Eina_Bool _composer_region_show_cb(void *data);
+Eina_Bool _composer_bringin_cb(void *data);
+Eina_Bool _composer_mbe_popup_del(void *data);
+Eina_Bool _composer_mbe_create_change_addr_list(void *data);
+
+char *_composer_change_addr_gl_text_get(void *data, Evas_Object *obj, const char *part);
+Evas_Object *_composer_change_addr_gl_content_get(void *data, Evas_Object *obj, const char *part);
+void _composer_email_radio_cb(void *data, Evas_Object *obj, void *event_info);
+Eina_Bool _composer_send_popup_finish_cb(void *data);
+void _composer_fail_to_send_popup_cb(void *data, Evas_Object *obj, void *event_info);
+
+void _composer_check_email_address(EmailComposerUGD *ugd, Evas_Object *entry);
+void _composer_check_entry_max(EmailComposerUGD *ugd, Evas_Object *entry, int max_len);
+void _composer_from_show_popup(EmailComposerUGD *ugd);
+char *_composer_from_gl_text_get(void *data, Evas_Object *obj, const char *part);
+Evas_Object *_composer_from_gl_content_get(void *data, Evas_Object *obj, const char *part);
+
+void _composer_cbar_cc_clicked(void *data, Evas_Object *obj, void *event_info);
+#ifndef _CC_BCC
+void _composer_cbar_bcc_clicked(void *data, Evas_Object *obj, void *event_info);
+#endif
+void _composer_cbar_send_clicked(void *data, Evas_Object *obj, void *event_info);
+
+void _composer_script_executed_cb(Evas_Object *o, const char *result, void *data);
+void _composer_focus_script_executed_cb(Evas_Object *o, const char *result, void *data);
+void _composer_get_latest_html_content_cb(Evas_Object *o, const char *result, void *data);
+void _composer_get_image_list_cb(Evas_Object *o, const char *result, void *data);
+#endif /* __EMAIL_COMPOSER_CALLBACK_H__ */
diff --git a/composer/include/email-composer-contents.h b/composer/include/email-composer-contents.h
new file mode 100755
index 0000000..d04414f
--- /dev/null
+++ b/composer/include/email-composer-contents.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __EMAIL_COMPOSER_CONTENTS_H__
+#define __EMAIL_COMPOSER_CONTENTS_H__
+
+#include "email-composer.h"
+
+void _composer_content_create_content_field(Evas_Object *parent, EmailComposerUGD *ugd);
+void _composer_create_subject_field(Evas_Object *parent, EmailComposerUGD *ugd);
+void _composer_create_body_field(Evas_Object *parent, EmailComposerUGD *ugd);
+Evas_Object *_composer_create_subject_editfield(Evas_Object *parent, char *title, EmailComposerUGD *ugd);
+Evas_Object *_composer_create_body_webview(Evas_Object *parent, char *title, EmailComposerUGD *ugd);
+void _composer_register_editfield_entry_callback(Evas_Object *obj, EmailComposerUGD *ugd);
+
+#endif /* __EMAIL_COMPOSER_CONTENTS_H__ */
diff --git a/composer/include/email-composer-filetype.h b/composer/include/email-composer-filetype.h
new file mode 100755
index 0000000..32bb450
--- /dev/null
+++ b/composer/include/email-composer-filetype.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_composer_filetype_H_
+#define __DEF_email_composer_filetype_H_
+
+#include "email-composer-type.h"
+
+struct _mtd {
+ char *category; /* Not used at present */
+ char *key;
+ char *icon_path;
+ char *exe_path; /* Not used at present */
+ char *param; /* Not used at present */
+ int is_direct_launch; /* Not used at present */
+ int need_sort_param; /* Not used at present */
+ int having_a_thumbnail; /* Not used at present */
+};
+
+struct _mtd mtd_main[] = {
+ {"ETC", "etc", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, TRUE, FALSE, FALSE},
+ {"Music", "audio/mpeg", IMGDIR "/U01_icon_music.png", "music", NULL, TRUE, TRUE, TRUE},
+ {"Music", "audio/x-wav", IMGDIR "/U01_icon_music.png", "music", NULL, TRUE, TRUE, TRUE},
+ {"Music", "audio/x-ms-wma", IMGDIR "/U01_icon_music.png", "music", NULL, TRUE, TRUE, TRUE},
+ {"Voice", "audio/AMR", IMGDIR "/U01_icon_music.png", "voicerecorder", NULL, TRUE, FALSE, FALSE},
+ {"Video", "video/x-msvideo", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+ {"Video", "video/mp4", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+ {"Video", "video/3gpp", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+ {"Video", "video/x-ms-asf", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+ {"Video", "video/x-ms-wmv", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+ {"Image", "image/svg+xml", MYFILE_IMGE_PATH "/myfile_icon_svg.png", "svg-viewer", NULL, TRUE, FALSE, FALSE},
+ {"PDF", "application/pdf", IMGDIR "/U01_icon_pdf.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Doc", "application/msword", IMGDIR "/U01_icon_word.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Doc", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", IMGDIR "/U01_icon_word.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"PPT", "application/vnd.ms-powerpoint", IMGDIR "/U01_icon_ppt.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"PPT", "application/vnd.openxmlformats-officedocument.presentationml.presentation", IMGDIR "/U01_icon_ppt.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Text", "text/plain", IMGDIR "/U01_icon_text.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Text", "text/html", IMGDIR "/U01_icon_html.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Excel", "application/vnd.ms-excel", IMGDIR "/U01_icon_excel.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", IMGDIR "/U01_icon_excel.png", "documents", NULL, TRUE, FALSE, FALSE},
+ {"Flash", "application/x-shockwave-flash", IMGDIR "/U01_icon_swf.png", "flash-player", NULL, TRUE, FALSE, TRUE},
+ {"None", "video/x-flv", IMGDIR "/U01_icon_video.png", NULL, NULL, FALSE, FALSE, FALSE},
+ {"Java", "text/vnd.sun.j2me.app-descriptor", MYFILE_IMGE_PATH "/myfile_icon_java.png", NULL, NULL, FALSE, FALSE, FALSE},
+ {"Java", "application/x-java-archive", MYFILE_IMGE_PATH "/myfile_icon_java.png", NULL, NULL, FALSE, FALSE, FALSE},
+ {"SVG", "image/svg+xml", MYFILE_IMGE_PATH "/myfile_icon_svg.png", "svg-viewer", NULL, TRUE, FALSE, FALSE},
+ {"ETC", "etc", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, TRUE, FALSE, FALSE},
+ {"VCARD", "text/directory", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, FALSE, FALSE, FALSE},
+ {"VCALENDAR", "text/calendar", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, FALSE, FALSE, FALSE},
+ {NULL, NULL, NULL, NULL}
+};
+
+#endif /* __DEF_email_composer_filetype_H__ */
diff --git a/composer/include/email-composer-js.h b/composer/include/email-composer-js.h
new file mode 100755
index 0000000..769d929
--- /dev/null
+++ b/composer/include/email-composer-js.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef EMAIL_COMPOSER_JS_H_
+#define EMAIL_COMPOSER_JS_H_
+
+#include "email-composer.h"
+
+#define COMPOSER_JS_ENABLE_EDITABLE "document.body.contentEditable='true'; void 0"
+#define COMPOSER_JS_DISABLE_EDITABLE "document.body.contentEditable='false'; void 0"
+#define COMPOSER_JS_SET_FOCUS "document.body.focus(); void 0"
+#define COMPOSER_JS_SET_UNFOCUS "document.body.blur(); void 0"
+
+#define COMPOSER_JS_GET_HTML_CONTENT \
+ "function getHtmlContent() { " \
+ "console.log(\"Here\");" \
+ "var elements = document.getElementsByTagName(\"body\");" \
+ "console.log(\"elements[0].outerHTML : \" + elements[0].outerHTML);" \
+ "return elements[0].outerHTML;" \
+ "};" \
+ "getHtmlContent();"
+
+#define COMPOSER_JS_GET_IMAGE_LIST \
+ "function getImgs() { " \
+ "var imgs = document.getElementsByTagName(\"img\");" \
+ "var srcs = \"\";" \
+ "for (var i = 0; i < imgs.length; i++) {" \
+ "srcs += imgs[i].src + \",\" ;" \
+ "console.log(\"imgs[\" + i + \"].src : \" + imgs[i].src);" \
+ "console.log(\"srcs : \" + srcs);" \
+ "}" \
+ "return srcs;" \
+ "};" \
+ "getImgs();"
+
+#endif /* EMAIL_COMPOSER_JS_H_ */
diff --git a/composer/include/email-composer-predictive-search.h b/composer/include/email-composer-predictive-search.h
new file mode 100755
index 0000000..fbefe40
--- /dev/null
+++ b/composer/include/email-composer-predictive-search.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __email_composer_predictive_search__
+#define __email_composer_predictive_search__
+
+#define COMPOSER_TEXT_PREFIX "<match>"
+#define COMPOSER_TEXT_POSTFIX "</match>"
+
+void composer_ps_request_search(EmailComposerUGD *ugd);
+
+void _composer_ps_stop(EmailComposerUGD *ugd);
+
+void _composer_ps_del_timer(EmailComposerUGD *ugd);
+
+void _composer_ps_add_timer(EmailComposerUGD *ugd);
+
+Evas_Object *_composer_recipient_create_ps_field(Evas_Object *parent, EmailComposerUGD *ugd);
+
+Eina_List *composer_ps_search_contact(EmailComposerUGD *ugd, const char *search_word);
+
+void composer_ps_delete_contacts_list(Eina_List *predict_list);
+
+char *composer_ps_text_get(void *data, Evas_Object *obj, const char *part);
+
+Evas_Object *composer_ps_icon_get(void *data, Evas_Object *obj, const char *part);
+
+void _composer_ps_create_sublist(void *data);
+
+void _composer_ps_delete_list(void *data);
+
+void _composer_ps_show_field(void *data);
+
+void _composer_ps_hide_field(void *data);
+
+Eina_Bool _composer_ps_scroll_pop(void *data);
+#endif /* __email_composer_predictive_search__ */
diff --git a/composer/include/email-composer-recipient.h b/composer/include/email-composer-recipient.h
new file mode 100755
index 0000000..76b7a58
--- /dev/null
+++ b/composer/include/email-composer-recipient.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __EMAIL_COMPOSER_RECIPIENT_H__
+#define __EMAIL_COMPOSER_RECIPIENT_H__
+
+void email_composer_create_to_field(EmailComposerUGD *ugd);
+void email_composer_create_cc_field(EmailComposerUGD *ugd);
+void email_composer_delete_cc_field(EmailComposerUGD *ugd);
+void email_composer_create_bcc_field(EmailComposerUGD *ugd);
+void email_composer_delete_bcc_field(EmailComposerUGD *ugd);
+void email_composer_create_from_field(EmailComposerUGD *ugd);
+void email_composer_delete_from_field(EmailComposerUGD *ugd);
+
+#endif /* __EMAIL_COMPOSER_RECIPIENT_H__ */
diff --git a/composer/include/email-composer-type.h b/composer/include/email-composer-type.h
new file mode 100755
index 0000000..457c72d
--- /dev/null
+++ b/composer/include/email-composer-type.h
@@ -0,0 +1,242 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_composer_type_H_
+#define __DEF_email_composer_type_H_
+
+#include <stdio.h>
+#include <string.h>
+#include <stdbool.h>
+#include <glib-object.h>
+#include <Elementary.h>
+#include <Evas.h>
+#include <Edje.h>
+#include <Eina.h>
+#include <E_DBus.h>
+#include <Efreet_Mime.h>
+#include <Ecore_IMF.h>
+#include <Ecore_File.h>
+#include <vconf.h>
+#include <email-api.h>
+#include <contacts-svc.h>
+#include "email-debug.h"
+
+#define MYFILE_IMGE_PATH "/opt/apps/org.tizen.myfile/res/images"
+#define UG_MYFILE_PATH "/opt/media/"
+#define COMPOSER_EDJ_NAME EDJDIR"/email-composer-view.edj"
+
+#define EMAIL_TMP_FOLDER "/tmp/email/"
+#define EMAIL_TMP_FOLDER_PERMISSION 0755
+#define SAVE_HTML_FILE_NAME "mail.html"
+#define SAVE_URI EMAIL_TMP_FOLDER"mail.txt"
+#define THUMBNAIL_SIZE 80
+
+#define COMPOSER_ORINGIN_HTML_STR N_("Original mail.htm")
+
+#define MAX_STR_LEN 1024
+
+#define MAX_ACCOUNT 10
+#define MAX_ACCOUNT_NAME_LEN 64
+
+#define MAX_RECIPIENT_ADDRESS_LEN 234
+#define MAX_RECIPIENT_COUNT 100
+#define MAX_RECIPIENT_ADDRESSES_LEN (MAX_RECIPIENT_ADDRESS_LEN*MAX_RECIPIENT_COUNT)
+#define MAX_SUBJECT_LEN 1024
+
+#define MAX_BODY_SIZE 32763
+#define MAX_ATTACHMENT_ITEM 100
+#define MAX_ATTACHMENT_SIZE 10*1024*1024
+#define MAX_ATTACHMENT_FILE_LEN 1024
+
+#define CONV_THUMB_WIDTH 250
+#define CONV_THUMB_HEIGHT 170
+
+#define ATTACHMENT_MEDIA_FOLDER_NAME "media"
+#define ATTACHMENT_MMC_FOLDER_NAME "storage"
+
+#define ATTACHMENT_MEDIA_IMAGE "image"
+#define ATTACHMENT_MEDIA_VIDEO "video"
+#define ATTACHMENT_MEDIA_AUDIO "audio"
+#define ATTACHMENT_MEDIA_VCARD "vcf"
+#define ATTACHMENT_MEDIA_VCALENDAR "vcs"
+
+#define ATTACHMENT_IMAGE_FILE_PATH IMGDIR"/composer_attachment_image.png"
+#define ATTACHMENT_AUDIO_FILE_PATH IMGDIR"/composer_attachment_sound.png"
+#define ATTACHMENT_VIDEO_FILE_PATH IMGDIR"/composer_attachment_video.png"
+#define ATTACHMENT_ETC_FILE_PATH IMGDIR"/composer_attachment_etc.png"
+#define ATTACHMENT_VCARD_FILE_PATH IMGDIR"/composer_attachment_vcard.png"
+#define ATTACHMENT_VCALENDAR_FILE_PATH IMGDIR"/composer_attachment_vcalender.png"
+
+#define EMAIL_THEME_TIZEN_BLACK "tizen-black"
+#define EMAIL_THEME_TIZEN_BLACK_HD "tizen-black-hd"
+#define EMAIL_THEME_TIZEN_WHITE "tizen"
+#define EMAIL_THEME_TIZEN_WHITE_HD "tizen-hd"
+
+typedef struct {
+ gchar email_addr[MAX_RECIPIENT_ADDRESS_LEN]; /* Specific email address of recipient */
+ int email_type;
+} EmailList;
+
+typedef struct {
+ int selected_email_idx;
+ int email_cnt;
+ bool is_contact_info;
+ bool is_always_bcc;
+ bool is_from_addr;
+ gchar *display_name; /* Specific display name of recipient */
+ EmailList email_list[MAX_RECIPIENT_COUNT];
+} EmailRecpInfo;
+
+typedef enum {
+ EMAIL_THEME_BLACK,
+ EMAIL_THEME_WHITE,
+ EMAIL_THEME_MAX
+} EmailThemeType;
+
+typedef enum {
+ EMAIL_COMPOSER_LAUNCH_INLINE_IMAGE,
+ EMAIL_COMPOSER_LAUNCH_GALLERY,
+ EMAIL_COMPOSER_LAUNCH_TAKE_PHOTO,
+ EMAIL_COMPOSER_LAUNCH_RECORD_VIDEO,
+ EMAIL_COMPOSER_LAUNCH_VOICE_RECORDER,
+ EMAIL_COMPOSER_LAUNCH_FILE,
+ EMAIL_COMPOSER_LAUNCH_NAMECARD,
+ EMAIL_COMPOSER_LAUNCH_CALENDAR,
+ EMAIL_COMPOSER_LAUNCH_MEMO,
+ EMAIL_COMPOSER_LAUNCH_MESSAGE_COMPOSER,
+ EMAIL_COMPOSER_LAUNCH_MAX,
+} EmailComposerLaunchType;
+
+typedef enum {
+ COMPOSER_ATTACHMENT_ITEM_IMAGE,
+ COMPOSER_ATTACHMENT_ITEM_SOUND,
+ COMPOSER_ATTACHMENT_ITEM_VIDEO,
+ COMPOSER_ATTACHMENT_ITEM_ETC,
+} EmailComposerAttachmentType;
+
+typedef enum {
+ COMPOSER_ERROR_NONE = 0,
+
+ COMPOSER_ERROR_FAIL = -1,
+ COMPOSER_ERROR_SEND_FAIL = -2,
+ COMPOSER_ERROR_NULL_POINTER = -3,
+ COMPOSER_ERROR_INVALID_ARG = -4,
+ COMPOSER_ERROR_SERVICE_INIT_FAIL = -5,
+
+ COMPOSER_ERROR_NO_DEFAULT_ACCOUNT = -6,
+ COMPOSER_ERROR_NO_ACCOUNT = -7,
+ COMPOSER_ERROR_NO_ACCOUNT_LIST = -8,
+ COMPOSER_ERROR_INVALID_FILE = -9,
+ COMPOSER_ERROR_INVALID_FILE_SIZE = -10,
+ COMPOSER_ERROR_ETHUMB_FAIL = -11,
+
+ COMPOSER_ERROR_GET_DATA_FAIL = -12,
+ COMPOSER_ERROR_MAKE_MAIL_FAIL= -13,
+ COMPOSER_ERROR_UNKOWN_TYPE = -14,
+ COMPOSER_ERROR_DBUS_FAIL = -15,
+ COMPOSER_ERROR_RECIPIENT_DUPLICATED = -16,
+ COMPOSER_ERROR_ENGINE_INIT_FAILED = -17,
+} COMPOSER_ERROR_TYPE_E;
+
+typedef enum {
+ COMPOSER_FOCUS_STATUS_NONE = 1 << 0,
+ COMPOSER_FOCUS_STATUS_ATTACHMENT_REMOVED = 1 << 1,
+ COMPOSER_FOCUS_STATUS_ON_PAUSE = 1 << 2,
+ COMPOSER_FOCUS_STATUS_MAX = 1 << 3,
+} COMPOSER_FOCUS_STATUS_TYPE;
+
+typedef struct _EmailComposerAccount EmailComposerAccount;
+typedef struct _EmailComposerMailbox EmailComposerMailbox;
+typedef struct _EmailComposerMail EmailComposerMail;
+
+struct _EmailComposerAccount {
+ int account_id;
+ int account_count;
+ int account_type;
+ char *account_name;
+ Evas_Object *account_rdg;
+ Evas_Object *account_rd[MAX_ACCOUNT];
+ email_account_t *account_list;
+ email_account_t *account;
+};
+
+struct _EmailComposerMailbox {
+ int mailbox_id;
+ email_mailbox_t *mail_box;
+};
+
+struct _EmailComposerMail {
+ email_mail_data_t *mail_data;
+ email_attachment_data_t *attachment_list;
+};
+
+typedef struct {
+ int storage_type; /* the storage_type */
+ int contact_index; /* the contact_index */
+ int phone_index; /* the phone_index */
+ char name[256]; /* the name */
+ char phone_number[41]; /* the phone_number */
+ char email[129]; /* the default_email */
+} contactui_info_t;
+
+#undef STR_VALID
+#define STR_VALID(str) \
+ ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
+
+#undef STR_INVALID
+#define STR_INVALID(str) \
+ ((str == NULL || strlen(str) == 0) ? TRUE : FALSE)
+
+#undef STR_LEN
+#define STR_LEN(str) ({ char *s = str; (s) ? strlen(s) : 0; })
+
+#undef STR_CMP
+#define STR_CMP(s1, s2) \
+ (((s1) == NULL || (s2) == NULL) ? FALSE : (g_ascii_strcasecmp(s1, s2) == 0 ? TRUE : FALSE))
+
+#undef STR_CMP0
+#define STR_CMP0(s1, s2) \
+ (g_strcmp0(s1, s2) == 0 ? TRUE : FALSE)
+
+#undef STR_NCMP
+#define STR_NCMP(s1, s2, n) \
+ (g_ascii_strncasecmp(s1, s2, (gsize)n) == 0 ? TRUE : FALSE)
+
+#undef STR_CPY
+#define STR_CPY(dest, src) \
+ g_stpcpy(dest, src)
+
+#undef STR_NCPY
+#define STR_NCPY(dest, src, n) \
+ strncpy(dest, src, n)
+
+#undef STR_LCPY
+#define STR_LCPY(dest, src, n) \
+ g_strlcpy(dest, src, n)
+
+#undef STR_CAT
+#define STR_CAT(dest, src) \
+ strcat(dest, src)
+
+#undef STR_NCAT
+#define STR_NCAT(dest, src, n) \
+ strncat(dest, src, n)
+
+#undef STR_LCAT
+#define STR_LCAT(dest, src, n) \
+ g_strlcat(dest, src, n)
+
+#endif /* __DEF_email_composer_type_H__ */
diff --git a/composer/include/email-composer-util.h b/composer/include/email-composer-util.h
new file mode 100755
index 0000000..5f3661a
--- /dev/null
+++ b/composer/include/email-composer-util.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_composer_util_H_
+#define __DEF_email_composer_util_H_
+
+#define GET_VALUE_WITH_RATE(total, rate) ((int)((float)(total) * rate / 100))
+
+Eina_Bool email_composer_change_image_paths_to_relative(char *src_html_content, char **dest_buffer);
+Eina_List *email_composer_change_str_to_EinaList(EmailComposerUGD *ugd, const char *str, char *token);
+Eina_List *email_composer_change_GList_to_EinaList(GList * l);
+
+void RgbIntToString(char *pszBuffer, int r, int g, int b);
+
+void _composer_convert_ps_to_br(char *input);
+void _composer_popup_add(EmailComposerUGD *ugd, int type, char *text);
+void _composer_popup_end(EmailComposerUGD *ugd, int close_sg);
+void _composer_set_mail_info(EmailComposerUGD *ugd);
+
+int _composer_add_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type);
+int _composer_move_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type);
+int _composer_make_mail(EmailComposerUGD *ugd);
+int _composer_send_mail(EmailComposerUGD *ugd);
+int _composer_make_recipient_char_to_list(EmailComposerUGD *ugd, Evas_Object *obj, char **dest);
+
+Eina_Bool _composer_popup_end_cb(void *data);
+Eina_Bool _composer_show_fail_to_save(void *data);
+Eina_Bool _composer_show_success_to_save(void *data);
+
+EmailRecpInfo *_composer_separate_save_recipient_char(EmailComposerUGD *ugd, char *recipient);
+email_attachment_data_t *_composer_attach_mail_body(EmailComposerUGD *ugd);
+
+void _composer_make_default_thumbnail(Evas_Object *eo, char *pszImgPath, int nItemType);
+Evas_Object *_composer_load_edj(Evas_Object *parent, const char *file, const char *group);
+Evas_Object *_composer_create_navigation_layout(Evas_Object *parent);
+Evas_Object *_composer_create_composer_layout(Evas_Object *parent);
+Evas_Object *_composer_create_outer_layout(Evas_Object *parent);
+Evas_Object *_composer_create_main_scroller(Evas_Object *parent);
+Evas_Object *_composer_create_box(Evas_Object *parent);
+
+const char *_composer_get_sent_time(EmailComposerMail *mail_info);
+char *_composer_get_wday(int tm_wday);
+char *_composer_get_month(int tm_mon);
+bool _composer_is_valid_email(const char *addr);
+void _composer_show_notify(EmailComposerUGD *ugd, const char *str);
+void _composer_show_cancel_popup(EmailComposerUGD *ugd, const char *str);
+Eina_Bool _composer_idler_destroy(void *data);
+Eina_Bool _composer_idler_return(void *data);
+bool _composer_check_recipient_is_duplicated(EmailComposerUGD *ugd, Evas_Object *obj, EmailRecpInfo * ri);
+
+void _composer_entry_filter_remove_markup(void *data, Evas_Object *entry, char **text);
+void _composer_add_to_address(EmailComposerUGD *ugd);
+void _composer_add_cc_address(EmailComposerUGD *ugd);
+void _composer_add_bcc_address(EmailComposerUGD *ugd);
+void _composer_add_from_address(EmailComposerUGD *ugd);
+void _composer_add_subject(EmailComposerUGD *ugd);
+void _composer_add_body(EmailComposerUGD *ugd);
+void _composer_add_origin_msg(EmailComposerUGD *ugd);
+void _composer_make_body_text(EmailComposerUGD *ugd);
+void _composer_add_attachment(EmailComposerUGD *ugd);
+void _composer_add_softlink_to_inline_images(EmailComposerUGD *ugd);
+Evas_Object *_composer_popup_create(Evas_Object *parent, EmailComposerUGD *ugd);
+void _composer_popup_delete(Evas_Object *popup);
+Evas_Object *_composer_create_sub_window(Evas_Object *parent);
+bool _composer_check_recipients_modified(Evas_Object *mbe, Eina_List **initial_recipients_list);
+bool _composer_check_mail_is_modified(void *data);
+bool _composer_check_recipient_is_empty(void *data);
+void _composer_unfocus_and_save(void *data);
+void _composer_change_text_to_textblock(char *input, char **output, char *matched_word, char *prefix, char *postfix);
+int _composer_get_account_list(EmailComposerUGD *ugd);
+char *_composer_get_email_addr_from_account_id(EmailComposerUGD *ugd, int account_id);
+
+void _composer_show_download_attachment_popup(EmailComposerUGD *ugd);
+Eina_Bool _composer_show_progress_popup(void *data);
+void _composer_download_attachment(EmailComposerUGD *ugd);
+void _composer_update_attachment_info(EmailComposerUGD *ugd, int index);
+void _composer_attachment_cancel_download(EmailComposerUGD *ugd);
+void _composer_cancel_download_attachment(EmailComposerUGD *ugd);
+
+Evas_Object *_composer_create_noti(EmailComposerUGD *ugd, bool use_win, char *title, char *content,
+ int btn_num, char *btn1_lb,
+ char *btn2_lb,
+ double timeout, void (*response_cb)(void *data, Evas_Object *obj, void *event_info));
+void _composer_noti_response_cb(void *data, Evas_Object *obj, void *event_info);
+Evas_Object *_composer_create_popup(EmailComposerUGD *ugd, bool use_win, char *title, char *content,
+ int btn_num, char *btn1_lb, char *btn2_lb, char *btn3_lb,
+ double timeout, void (*response_cb) (void *data, Evas_Object *obj, void *event_info));
+void _composer_save_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+void _composer_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+char *_composer_get_service_fail_type(int type);
+Eina_Bool _composer_mbe_set_focus(void *data);
+Eina_Bool _composer_check_popup_exist(EmailComposerUGD *ugd);
+
+void _composer_resize_body_webview(EmailComposerUGD *ugd, int resize_height);
+
+void _composer_input_panel_state_changed_cb(void *data, Ecore_IMF_Context *ctx, int value);
+void _composer_display_position(void *data);
+
+void _composer_print_hit_test_result(Ewk_Hit_Test *hit_test);
+void _composer_coords_ewk_to_evas(Evas_Object *view, int ewkX, int ewkY, int *evasX, int *evasY);
+void _composer_coords_evas_to_ewk(Evas_Object *view, int evasX, int evasY, int *ewkX, int *ewkY);
+
+#endif /* __DEF_email_composer_util_H__ */
diff --git a/composer/include/email-composer.h b/composer/include/email-composer.h
new file mode 100755
index 0000000..28e9b93
--- /dev/null
+++ b/composer/include/email-composer.h
@@ -0,0 +1,265 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_composer_H_
+#define __DEF_email_composer_H_
+
+#include <utilX.h>
+#include <bundle.h>
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+#include <E_DBus.h>
+#include <EWebKit2.h>
+
+#include "email-composer-type.h"
+#include "email-common-types.h"
+#include "email-locale.h"
+#include "email-engine.h"
+#include "email-utils.h"
+
+#define _EDJ(o) elm_layout_edje_get(o)
+#define COMPOSER_STRDUP(src) (((src)) ? g_strdup((src)) : NULL)
+
+#define COMPOSER_ICON_DIR IMGDIR
+
+#define COMPOSER_NAVI_HEIGHT 108
+
+#define COMPOSER_SP_H 10
+#define COMPOSER_EDIT_FIELD_H 80
+#define COMPOSER_BUTTON_FIELD_H 80
+
+#define _ENABLE_ENDKEY_ 0
+#define MAX_RECENT_ITEM 100
+#define MB_SVC_FILE_PATH_LEN_MAX 255
+#define TEMP_BUFFER_SIZE 1024
+
+#define MAX_WEBVIEW_HEIGHT 88
+#define IME_WEBVIEW_LANDSCAPE_HEIGHT 20
+
+#define IME_WEBVIEW_PORTRAIT_HEIGHT 43
+#define IME_WEBVIEW_PORTRAIT_HEIGHT_WITH_OPTION_HEADER 33
+
+
+typedef struct ug_data EmailComposerUGD;
+struct ug_data {
+ ui_gadget_h ug_main;
+ Evas_Object *base;
+
+ Evas_Object *win_main;
+ Evas *evas;
+
+ Evas_Object *bg;
+ /*Elm_Theme *th;*/
+
+ /* New notify - TODO: unify the popup usage */
+ Evas_Object *composer_noti;
+ Evas_Object *timeout_noti;
+ Evas_Object *change_addr_noti;
+ Evas_Object *composer_popup;
+
+ Evas_Object *popup_win;
+ Evas_Object *main_layout;
+ Evas_Object *navi_bar;
+ Elm_Object_Item *navi_item;
+ Evas_Object *main_scroller;
+ Evas_Object *c_layout;
+ Evas_Object *conform;
+
+ Evas_Object *to_ly;
+ Evas_Object *cc_ly;
+ Evas_Object *bcc_ly;
+ Evas_Object *from_ly;
+ Evas_Object *subject_ly;
+ Evas_Object *webkit_ly;
+
+ Eina_Bool attachment_list_compressed;
+ Eina_List *attachment_item_obj_list;
+ Evas_Object *attachment_item_box;
+ Evas_Object *attachment_contracted_item;
+
+ bool bSendBtnDisabled;
+ bool cc_added;
+ bool bcc_added;
+
+ int indicator_height;
+ bool is_main_scroller_scrolling;
+ bool is_webview_scrolling;
+
+#ifdef _TEMPORARY_FIX_FOR_ROTATION_
+ bool temporary_fix_for_rotation;
+#endif
+
+ Evas_Object *priv_selected_entry;
+ Evas_Object *selected_entry;
+ Elm_Object_Item *selected_item;
+
+ int option_header_opened;
+
+#ifndef _CC_BCC
+ Elm_Object_Item *controlbar_item[2];
+#else
+ Elm_Object_Item *controlbar_item[1];
+#endif
+ Evas_Object *cc_btn;
+ Evas_Object *bcc_btn;
+
+ Evas_Object *send_btn;
+ Evas_Object *cancel_btn;
+
+ bool is_hided;
+
+ Ecore_Idler *idler_save_draft;
+ Ecore_Idler *idler_set_focus;
+ Ecore_Idler *idler_show_progress;
+
+ Ecore_Timer *send_timer;
+ Ecore_Timer *bringin_timer;
+ Ecore_Timer *mbe_unfocus_timer;
+ Ecore_Timer *focus_timer;
+
+ /* Predictive Search */
+ Ecore_Timer *ps_timer;
+ Ecore_Timer *sc_timer;
+
+ Evas_Object *ps_list;
+ Elm_Genlist_Item_Class ps_itc_1;
+ Elm_Genlist_Item_Class ps_itc_2;
+ Eina_List *contacts_list_info;
+
+ char ps_keyword[MAX_RECIPIENT_ADDRESS_LEN];
+ bool b_cc_ps_open;
+ bool b_bcc_ps_open;
+ bool ps_on;
+ bool is_mbe_selected;
+
+ /* Multibutton Entry */
+ Evas_Object *to_mbe_entry;
+ Evas_Object *cc_mbe_entry;
+ Evas_Object *bcc_mbe_entry;
+ Evas_Object *from_mbe_entry;
+ Evas_Object *subject_editfield;
+ Evas_Object *subject_entry;
+
+ Evas_Object *to_mbe;
+ Evas_Object *cc_mbe;
+ Evas_Object *bcc_mbe;
+ Evas_Object *from_mbe;
+ Eina_List *to_mbe_initial_list;
+ Eina_List *cc_mbe_initial_list;
+ Eina_List *bcc_mbe_initial_list;
+ Eina_List *attach_initial_list;
+ char *saved_subject;
+
+ COMPOSER_FOCUS_STATUS_TYPE focus_status;
+
+ Evas_Object *body_ewkview;
+
+ Eina_Bool has_body_html;
+ char *saved_html_path;
+ char *saved_html_content;
+ char *latest_html_content;
+ char *plain_content;
+
+ int to_recipients_cnt;
+ int cc_recipients_cnt;
+ int bcc_recipients_cnt;
+
+ Evas_Object *dn_noti_popup;
+ Evas_Object *dn_prog_popup;
+ Evas_Object *fw_dn_label;
+ Evas_Object *fw_dn_progress;
+
+ int composer_type;
+ int nExistingMailID;
+
+ EmailComposerAccount *account_info;
+ EmailComposerMailbox *mailbox_info;
+
+ EmailComposerMail *new_mail_info;
+ EmailComposerMail *existing_mail_info;
+
+ GList *from_list;
+ GList *to_list;
+ GList *cc_list;
+ GList *bcc_list;
+ email_address_info_list_t *addrs_info_list;
+
+ GList *fw_attachment_list;
+ int fw_dn_cnt;
+ int fw_dn_total_cnt;
+ int fw_dn_idx;
+ unsigned int fw_dn_handle[MAX_ATTACHMENT_ITEM];
+
+ int send_result;
+ int save_drafts;
+ bool b_sending;
+
+ Ecore_IMF_Context *imf_context;
+
+ Evas_Object *account_gen_list;
+
+ bool isRotated;
+
+ bool b_cc_bcc;
+ bool clipboard_on;
+ Eina_List *popup_list;
+
+ COMPOSER_ERROR_TYPE_E eComposerErrorType;
+ int ime_height;
+
+ Eina_List *listOfImageUrls;
+
+ Eina_Bool b_load_finished;
+};
+
+typedef struct _EMAIL_CONTACT_LIST_INFO_S {
+ int index;
+ char *first_name;
+ char *last_name;
+ char *email_address;
+ char *image_path;
+ char display_name[MAX_RECIPIENT_ADDRESS_LEN];
+ EmailComposerUGD *ugd;
+} EMAIL_CONTACT_LIST_INFO_S;
+
+typedef struct _EMAIL_ATTACHMENT_INFO_S {
+ int mail_id;
+ int attach_id;
+ int index;
+ char *name;
+ char *path;
+ int size;
+ bool downloaded;
+ bool drm;
+ int inline_content;
+} EMAIL_ATTACHMENT_INFO_S;
+
+typedef enum {
+ COMPOSER_RECIPIENT_TYPE_NONE = 0,
+ COMPOSER_RECIPIENT_TYPE_TO,
+ COMPOSER_RECIPIENT_TYPE_CC,
+ COMPOSER_RECIPIENT_TYPE_BCC,
+ COMPOSER_RECIPIENT_TYPE_FROM,
+ COMPOSER_RECIPIENT_TYPE_MAX,
+} COMPOSER_RECIPIENT_TYPE_E;
+
+/****************************************************/
+/* Function Declaration */
+/****************************************************/
+
+void create_composer_frame(EmailComposerUGD *ugd);
+void _composer_create_view(Evas_Object *parent, EmailComposerUGD *ugd);
+#endif /* __DEF_email_composer_H__ */