8992879cbac5d57c33b78666d9c045b3863a634b
[apps/home/message-app.git] / viewer / include / msg-ui-viewer-main.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://floralicense.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 #ifndef __MSG_UI_VIEWER_MAIN_H__
18 #define __MSG_UI_VIEWER_MAIN_H__
19
20 /*==================================================================================================
21  *                                                                      INCLUDE HEADERS
22  *==================================================================================================*/
23 #include <msg.h>
24 #include "msg-ui-viewer-types.h"
25 #include "msg-ui-util.h"
26
27 #include "msg-ui-viewer-drm-list.h"
28 #include "msg-ui-viewer-play-view.h"
29
30 #include <Elementary.h>
31 #include <ui-gadget-module.h>
32 #include <Ecore_X.h>
33
34 /*==================================================================================================
35  *                                                                              DEFINITIONS
36  *==================================================================================================*/
37 /*View control CMD defines*/
38 #define MSG_VIEWER_VIEW_CMD_NONE        0
39 #define MSG_VIEWER_VIEW_CMD_PLAY        0x01
40
41 /*==================================================================================================
42  *                                                                              ENUMERATIONS
43  *==================================================================================================*/
44 typedef enum {
45         MSG_VIEWER_PLAYER_VIEW,
46         MSG_VIEWER_DRM_LIST_VIEW,
47 } MSG_VIEWER_VIEW_MODE_E;
48
49 typedef enum {
50         MSG_UG_MODE_FULLVIEW,
51         MSG_UG_MODE_FRAMVIEW,
52         MSG_INVALID_UG_MODE,
53 } MSG_UG_LAUNCH_MODE_E;
54
55 typedef enum {
56         MSG_VIEWER_FULLVIEW_MODE = 0,   /*full view mode*/
57         MSG_VIEWER_PREVIEW_MODE,                /*preview mode from composer*/
58         MSG_VIEWER_INVALID_MODE,
59 } MSG_VIEWER_LAUNCH_VIEW_MODE_E;
60
61 /*==================================================================================================
62  *                                                                              STRUCTURES
63  *==================================================================================================*/
64 typedef struct _MSG_VIEWER_MAIN_DATA {
65         ui_gadget_h     viewer_ug;
66         struct ug_cbs   cbs;
67         ui_gadget_h     loaded_ug;      /*if each view call other ug, then set this loaded_ug by using msg_ui_viewer_set_loaded_ug*/
68
69         Evas_Object     *main_window;
70         Evas_Object     *layout_main;
71         Evas_Object     *bg;
72         Evas_Object     *navi_frame;    /*if navi_frame is created from which view, then navi_frame should be set by using msg_ui_viewer_set_navi_frame*/
73
74         msg_handle_t    msgHandle;      /*ipc handler between viewer and MF*/
75         int     msgID;
76
77         MSG_VIEWER_LAUNCH_VIEW_MODE_E   launchmode;     /*preview mode or full view mode */
78         void    *SmilHandle;    /*smilplayer handler*/
79         msg_struct_t msg_t;     /* msg info struct */
80         msg_struct_t mms_t;     /* mms struct */
81
82         MSG_UG_LAUNCH_MODE_E    ug_launch_mode; /*This is a launching ug-mode of viewer, frameview or fullview*/
83
84         MSG_VIEWER_VIEW_MODE_E  view_mode;
85         MSG_DRM_LIST_DATA_S     *drm_list_view;
86         MSG_PLAY_DATA_S *player_view;
87
88         bool msg_box_viewer;    /* TRUE if viewer is launched from message box */
89
90         Ecore_Idler     *del_idler;
91         Eina_List* drm_list;/*set invalid ro drm content*/
92
93         /* for use volume key setting */
94         Ecore_Event_Handler *volkey_release_handler;
95         Ecore_Event_Handler *volkey_press_handler;
96
97         Ecore_Timer *vol_up_key_longpress;
98         Ecore_Timer *vol_down_key_longpress;
99
100         Ecore_X_Display *xdisplay;
101 } MSG_VIEWER_MAIN_DATA_S;
102
103 /*==================================================================================================
104  *                                                              FUNCTION DECLARATIONS
105  *==================================================================================================*/
106 void msg_ui_viewer_main_init(void *data);
107 MSG_BOOL msg_ui_viewer_launch(void *data);
108 void msg_ui_viewer_show_view_by_mode(void *data, MSG_VIEWER_VIEW_MODE_E viewMode, unsigned int commandType);
109
110 /*
111  *@fn   msg_ui_viewer_set_loaded_ug(void *data, ui_gadget_h loaded_ug);
112  *@brief        this function is used to set loaded ug pointer to MSG_VIEWER_MAIN_DATA_S
113  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
114  *@param[in] loaded_ug  loaded ug pointer
115  */
116 void msg_ui_viewer_set_loaded_ug(void *data, ui_gadget_h loaded_ug);
117
118 /*
119  *@fn   msg_ui_viewer_set_navi_frame(void *data, Evas_Object *navi_frame);
120  *@brief this function is used to set navi_frame to MSG_VIEWER_MAIN_DATA_S
121  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
122  *@param[in] navi_frame  naviframe pointer
123  */
124 void msg_ui_viewer_set_navi_frame(void *data, Evas_Object *navi_frame);
125
126 /*
127  *@fn   msg_ui_viewer_set_smilhandle(void *data, void *smilhandle);
128  *@brief this function is used to set smilhandle to MSG_VIEWER_MAIN_DATA_S
129  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
130  *@param[in] smilhandle  smilhandle
131  */
132 void msg_ui_viewer_set_smilhandle(void *data, void *smilhandle);
133
134 /*
135  *@fn   msg_ui_viewer_get_viewer_launchmode(void *data, MSG_VIEWER_LAUNCH_VIEW_MODE_E *launchmode);
136  *@brief this function is used to get viewer launch mode(preview/fullview)
137  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
138  *@param[out] launchmode  MSG_VIEWER_LAUNCH_VIEW_MODE_E mode (preview/fullview)
139  *@return       return TRUE if it has launchmode, else FALSE
140  */
141 MSG_BOOL msg_ui_viewer_get_viewer_launchmode(void *data, MSG_VIEWER_LAUNCH_VIEW_MODE_E *launchmode);
142
143 /*
144  *@fn   msg_ui_viewer_get_viewer_ug_mode(void *data, MSG_UG_LAUNCH_MODE_E *ug_mode);
145  *@brief this function is used to get viewer ug launched mode
146  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
147  *@param[out] ug_mode  MSG_UG_LAUNCH_MODE_E mode (framview mode/fullview mode)
148  *@return       return TRUE if it has viewer ug launchmode, else FALSE
149  */
150 MSG_BOOL msg_ui_viewer_get_viewer_ug_mode(void *data, MSG_UG_LAUNCH_MODE_E *ug_mode);
151
152 /*
153  *@fn   msg_ui_viewer_get_viewer_ug(void *data);
154  *@brief this function is used to get viewer ug pointer
155  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
156  *@return       return viewer ug pointer, else NULL
157  */
158 ui_gadget_h msg_ui_viewer_get_viewer_ug(void *data);
159
160 /*
161  *@fn   msg_ui_viewer_get_main_layout(void *data);
162  *@brief this function is used to get layout_main of viewer
163  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
164  *@return       return layout_main pointer, else NULL
165  */
166 Evas_Object *msg_ui_viewer_get_main_layout(void *data);
167
168 /*
169  *@fn   msg_ui_viewer_get_bg_layout(void *data);
170  *@brief this function is used to get bg_layout of viewer
171  *@param[in] data MSG_VIEWER_MAIN_DATA_S structure
172  *@return       return bg_layout pointer, else NULL
173  */
174 Evas_Object *msg_ui_viewer_get_bg_layout(void *data);
175
176 Evas_Object *msg_ui_viewer_create_bg(void *data, Evas_Object *parent);
177 Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent, bool indicator);
178
179 void msg_ui_viewer_grab_key_setting(void *data);
180 void msg_ui_viewer_ungrab_key_setting(void *data);
181 void msg_ui_viewer_change_language(void *data);
182
183 /* VIEWER  CALLBACK */
184 Eina_Bool msg_ui_viewer_ug_quit(void *data);
185 void msg_ui_viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
186 void msg_ui_viewer_result_cb(ui_gadget_h ug, service_h svc_result_h, void *priv);
187 void msg_ui_viewer_destroy_cb(ui_gadget_h ug, void *priv);
188 Eina_Bool msg_ui_viewer_key_release_cb(void *data, int type, void *event);
189 Eina_Bool msg_ui_viewer_key_press_cb(void *data, int type, void *event);
190 #endif  /* __MSG_UI_VIEWER_MAIN_H__*/