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 __MSG_UI_COMPOSER_BUBBLE_H__
18 #define __MSG_UI_COMPOSER_BUBBLE_H__
25 #include <msg_storage.h>
26 #include <msg_transport.h>
31 #include <Elementary.h>
32 #include <ui-gadget-module.h>
36 #include "msg-ui-util.h"
37 #include "msg-ui-common-utility.h"
39 #include <contacts-svc.h>
40 #include <contacts-ug.h>
42 #define MSG_BUBBLE_SIM_MSG_ICON IMGDIR"/07_message_sim.png"
43 #define MSG_BUBBLE_ATTACH_ICON IMGDIR"/Seven_IM_clip_nor.png"
45 /* STYLE for genlist and entry */
46 #define MSG_BUBBLE_STYLE_SENT "sentmessage"
47 #define MSG_BUBBLE_STYLE_RECV "readmessage"
49 #define MSG_BUBBLE_CONTENT_H (653)
50 #define MSG_BUBBLE_IMG_MAX_W (320)
51 #define MSG_BUBBLE_IMG_MAX_H (320)
53 #define MSG_BUBBLE_CONTROLBAR_ITEM_NUM (4)
55 #define MSG_BUBBLE_DELETE_NOTI_TIME (1.5)
58 BUBBLE_NORMAL_VIEW = 0,
78 WORD_TYPE_NONE = 0x00,
80 WORD_TYPE_URL_WITH_PROTC,
86 MSG_BOX_PACK_START = 0,
93 msg_message_id_t msgId;
95 msg_storage_id_t storageId;
97 char displayDate[DEF_BUF_LEN_S];
98 char subject[DEF_BUF_LEN_S];
99 msg_network_status_t networkStatus;
104 char thumbNailPath[DEF_IMG_PATH_LEN + 1];
105 char msgText[DEF_MAX_MSG_TEXT_LEN+1];
109 Evas_Object *resend_button;
110 Evas_Object *del_button;
111 Evas_Object *progressbar;
115 } MSG_APP_CONV_DATA_S, *PMSG_APP_CONV_DATA_S;
118 PMSG_APP_CONV_DATA_S add_item;
119 Evas_Object *rel_obj;
120 MsgBoxPackType pack_type;
125 char address[DEF_THREAD_ADDR_LEN+1];
126 char name[DEF_THREAD_NAME_LEN+1];
127 }BUBBLE_ADDRESS_INFO;
131 BUBBLE_ADDRESS_INFO addr_info[MAX_TO_ADDRESS_CNT];
132 }BUBBLE_ADDRESS_LIST;
134 typedef struct _MSG_BUBBLE_DATA {
135 Evas_Object *layout_main;
137 Evas_Object *toolbar;
140 Elm_Object_Item *toolbar_item[MSG_BUBBLE_CONTROLBAR_ITEM_NUM];
142 BubbleViewMode viewmode;
143 BubbleUGState ug_state;
146 Evas_Object *parent_layout;
147 Evas_Object *bubble_layout;
148 Evas_Object *title_button;
149 Evas_Object *title_genlist;
150 Evas_Object *sel_all_ly;
151 Evas_Object *sel_all_box;
155 Evas_Object *progressbar;
156 Evas_Object *progresslabel;
158 Evas_Object *select_info;
159 Evas_Object *selectioninfo_layout;
160 Evas_Object *deleted_info;
162 Eina_List *bubble_list;
163 Eina_List *realized_list;
165 Eina_List *added_list;
167 Eina_Bool sel_all_checked;
169 #ifdef _BUBBLE_FLICK_EVENT
173 Elm_Genlist_Item_Class itc_title;
178 msg_time_format time_fmt;
179 char locale[DEF_BUF_LEN];
182 Ecore_Animator *load_animator;
183 Ecore_Animator *add_animator;
184 Ecore_Idler *scroll_idler;
185 Ecore_Idler *add_idler;
186 Ecore_Idler *resend_idler;
187 Ecore_Idler *retrieve_idler;
188 Ecore_Idler *conformant_idler;
189 Ecore_Thread *del_thread;
191 msg_handle_t msgHandle;
192 msg_thread_id_t threadId;
193 BUBBLE_ADDRESS_LIST addr_list;
194 char threadName[DEF_THREAD_NAME_LEN+1];
199 int msg_type; /* type of the latest message in the selected converstaion list*/
201 bool title_optionheader_opened;
207 } MSG_BUBBLE_DATA, *PMSG_BUBBLE_DATA;
211 PMSG_BUBBLE_DATA msg_ui_bubble_init_bubble_data(msg_handle_t msgHandle, void *callback_data);
212 void msg_ui_bubble_deinit_bubble_data(void *data);
214 void msg_ui_bubble_parse_bubble_data(PMSG_BUBBLE_DATA bubble_data, service_h svc_handle);
215 void msg_ui_bubble_start_bubble_list(PMSG_BUBBLE_DATA bubble_data);
216 void msg_ui_bubble_init_bubble_list(PMSG_BUBBLE_DATA bubble_data);
218 Evas_Object *msg_ui_bubble_create_view(Evas_Object *parent, void *user_data);
219 void msg_ui_bubble_start_view(PMSG_BUBBLE_DATA bubble_data);
221 void msg_ui_bubble_reg_bubble_cb_func(PMSG_BUBBLE_DATA pData);
222 PMSG_BUBBLE_DATA msg_ui_bubble_get_bubble_data(void);
224 void msg_ui_bubble_fill_bubble_contents(PMSG_BUBBLE_DATA bubble_data, PMSG_APP_CONV_DATA_S item_data);
225 Eina_Bool msg_ui_bubble_item_load_cb(void *data);
226 void msg_ui_bubble_resend_msg(PMSG_BUBBLE_DATA bubble_data, int msg_id);
227 void msg_ui_bubble_delete_msg(PMSG_BUBBLE_DATA bubble_data, int msg_id);
228 void msg_ui_bubble_list_load(PMSG_BUBBLE_DATA bubble_data);
229 void msg_ui_bubble_list_data_update(PMSG_BUBBLE_DATA bubble_data);
230 void msg_ui_bubble_item_data_update(PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
231 Eina_Bool msg_ui_bubble_item_add_cb(void *data);
232 void msg_ui_bubble_list_append(PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
233 void msg_ui_bubble_list_item_move(PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
235 void msg_ui_bubble_change_normal_navi_control(PMSG_BUBBLE_DATA pData);
236 void msg_ui_bubble_title_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
237 void msg_ui_bubble_open_title_menu_genlist(PMSG_BUBBLE_DATA bubble_data);
238 void msg_ui_bubble_close_title_menu_genlist(PMSG_BUBBLE_DATA bubble_data);
239 Evas_Object *msg_ui_bubble_create_toolbar(void *user_data);
240 void msg_ui_bubble_add_normal_toolbar_item(Evas_Object *toolbar, void *user_data);
242 void msg_ui_bubble_msg_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param);
243 void msg_ui_bubble_ctlbar_multi_del_cb(void *data, Evas_Object *obj, void *event_info);
244 Evas_Object *msg_ui_bubble_toolbar_btn_create(Evas_Object *parent, char *icon_path, char *button_text);
245 void msg_ui_bubble_option_header_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info);
247 void msg_ui_bubble_ctlbar_call_cb(void *data, Evas_Object *obj, void *event_info);
248 void msg_ui_bubble_ctlbar_vcall_cb(void *data, Evas_Object *obj, void *event_info);
249 void msg_ui_bubble_ctlbar_email_cb(void *data, Evas_Object *obj, void *event_info);
250 void msg_ui_bubble_ctlbar_add_to_contact_cb(void *data, Evas_Object *obj, void *event_info);
251 void msg_ui_bubble_ctlbar_view_ct_detail_cb(void *data, Evas_Object *obj, void *event_info);
252 void msg_ui_bubble_ctlbar_delete_cb(void *data, Evas_Object *obj, void *event_info);
253 void msg_ui_bubble_ctlbar_forward_cb(void *data, Evas_Object *obj, void *event_info);
254 void msg_ui_bubble_ctlbar_move_cb(void *data, Evas_Object *obj, void *event_info);
255 void msg_ui_bubble_ctlbar_cancel_cb(void *data, Evas_Object *obj, void *event_info);
256 void msg_ui_bubble_sel_all_clicked_cb(void *data, Evas_Object *obj, void *event_info);
257 void msg_ui_bubble_item_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
258 void msg_ui_bubble_item_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
259 #ifdef _BUBBLE_FLICK_EVENT
260 void msg_ui_bubble_layout_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
261 void msg_ui_bubble_layout_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
263 void msg_ui_bubble_list_checked_cb(void *data, Evas_Object *obj, void *event_info);
264 void msg_ui_bubble_timezone_change_cb(void *data);
265 void msg_ui_bubble_scroll_edge_top_cb(void *data, Evas_Object *obj, void *event_info);
266 void msg_ui_bubble_scroll_drag_start_cb(void *data, Evas_Object *obj, void *event_info);
267 void msg_ui_bubble_anchor_menu_click_cb(void *data, Evas_Object *obj, void *event_info);
269 void msg_ui_bubble_launch_voice_call(const char *call_num);
270 void msg_ui_bubble_launch_video_call(const char *call_num);
271 char *msg_ui_bubble_get_trimmed_number(const char *org_num);
272 void msg_ui_bubble_launch_add_to_contact_ug(PMSG_BUBBLE_DATA pData);
273 void msg_ui_bubble_launch_contact_list_ug(PMSG_BUBBLE_DATA pData, int type, const char *str);
274 void msg_ui_bubble_launch_contact_detail_ug(PMSG_BUBBLE_DATA pData, int ct_id);
275 void msg_ui_bubble_show_notify(PMSG_BUBBLE_DATA bubbleData, char *msg);
276 Evas_Object* msg_ui_bubble_show_notify_with_progressbar(PMSG_BUBBLE_DATA pData, int count);
278 void msg_ui_bubble_show_select_info(PMSG_BUBBLE_DATA pData);
279 void msg_ui_bubble_show_deleted_info(PMSG_BUBBLE_DATA pData);
280 void msg_ui_bubble_contact_info_update(PMSG_BUBBLE_DATA pData);
281 unsigned char msg_ui_bubble_check_word_type(char *txt);
282 void msg_ui_bubble_get_time_format(PMSG_BUBBLE_DATA pData);
283 void msg_ui_bubble_get_locale(PMSG_BUBBLE_DATA pData);
285 bool msg_is_sms(int msg_type);
286 bool msg_is_mms(int msg_type);