2121301a0d44bd1f6d93811df0b47d0608b13555
[apps/home/message-app.git] / viewer / src / msg-ui-viewer-callback.c
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 /*==================================================================================================
18  *                                                                              INCLUDE HEADERS
19 *==================================================================================================*/
20 #include "msg-ui-viewer-main.h"
21 #include "msg-ui-common-utility.h"
22
23 /*==================================================================================================
24  *                                                                      FUNCTION IMPLEMENTATIONS
25  *================================================================================================*/
26 void msg_ui_viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
27 {
28         MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
29         MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, ug == NULL);
30         MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, priv == NULL);
31         Evas_Object *base = NULL;
32         MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)priv;
33
34         base = ug_get_layout(ug);
35         if (!base) {
36                 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "base is NULL");
37                 ug_destroy(ug);
38                 return;
39         }
40
41         Evas_Object *win = ug_get_window();
42
43         switch (mode) {
44         case UG_MODE_FULLVIEW:
45                 evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
46                 evas_object_show(base);
47
48                 break;
49         case UG_MODE_FRAMEVIEW:
50                 elm_object_part_content_set(viewer_main_data->layout_main, "content", base);
51                 break;
52     default:
53                 break;
54         }
55
56         MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
57 }
58
59
60 void msg_ui_viewer_result_cb(ui_gadget_h ug, service_h service, void *priv)
61 {
62         MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
63 }
64
65
66 Eina_Bool msg_ui_viewer_ug_quit(void *data)
67 {
68         MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
69         MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, ECORE_CALLBACK_CANCEL);
70         MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)data;
71
72         if (viewer_main_data != NULL) {
73                 /*destroy captured image and resource.*/
74                 if (viewer_main_data->SmilHandle) {
75                         msg_smil_destroy_smil_player(viewer_main_data->SmilHandle);
76                         msg_ui_viewer_set_smilhandle(viewer_main_data, NULL);
77
78                         if (viewer_main_data->player_view)
79                                 viewer_main_data->player_view->SmilHandle = NULL;
80                 }
81
82                 if (viewer_main_data->viewer_ug) {
83                         msg_common_reset_font_size("entry");
84                         ug_destroy_me(viewer_main_data->viewer_ug);
85                 }
86         } else {
87                 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "viewer_main_data is NULL");
88         }
89
90         return ECORE_CALLBACK_CANCEL;
91 }
92
93
94 void msg_ui_viewer_destroy_cb(ui_gadget_h ug, void *priv)
95 {
96         MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
97         MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, ug == NULL);
98         MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, priv == NULL);
99         MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)priv;
100
101         if (viewer_main_data->loaded_ug) {
102                 ug_destroy(viewer_main_data->loaded_ug);
103                 viewer_main_data->loaded_ug = NULL;
104         }
105
106         MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_main_data->view_mode : %d", viewer_main_data->view_mode);
107         if (viewer_main_data->view_mode == MSG_VIEWER_PLAYER_VIEW) {
108                 if (viewer_main_data->player_view) {
109                         MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER launch_cmd : %d, cmd_type : %d", viewer_main_data->player_view->launch_cmd, viewer_main_data->player_view->cmd_type);
110                         if (viewer_main_data->player_view->launch_cmd == MSG_VIEWER_LOAD_OTHER_UG_MODE &&
111                                         (viewer_main_data->player_view->cmd_type == MSG_VIEWER_CMD_LOAD_CONTACT)) {
112
113                                 /*update title button text after contact sync */
114                                 msg_ui_viewer_title_update(viewer_main_data->player_view, MSG_VIEWER_OPTION_CONTACT);
115                         }
116
117                         bool isHelpText = (!viewer_main_data->player_view->smil_eventStatus) ? false : ((viewer_main_data->player_view->smil_eventStatus->isHelpSlide) ? true : false);
118                         MSG_VIEWER_ENTRY_TYPE_E entry_type = (isHelpText) ? MSG_VIEWER_ENTRY_HELP_TEXT : MSG_VIEWER_ENTRY_NORMAL_TEXT;
119                         msg_ui_viewer_set_font_size(viewer_main_data->player_view, entry_type, MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE);
120
121                         /*connect handler again*/
122                         msg_ui_viewer_connect_handler(viewer_main_data->player_view);
123
124                         viewer_main_data->player_view->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
125                         viewer_main_data->player_view->cmd_type = MSG_VIEWER_CMD_NONE;
126                 }
127         }
128
129         MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
130 }
131