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.
18 #include "vcui-application.h"
19 #include "vcui-view-common.h"
20 #include "vcui-view-elements.h"
21 #include "vcui-view-multi-call-conf.h"
23 static int __vcui_view_multi_call_conf_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3);
24 static int __vcui_view_multi_call_conf_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2);
25 static int __vcui_view_multi_call_conf_onhide(voice_call_view_data_t *view_data);
26 static int __vcui_view_multi_call_conf_onshow(voice_call_view_data_t *view_data);
27 static int __vcui_view_multi_call_conf_ondestroy(voice_call_view_data_t *view_data);
29 static voice_call_view_data_t s_view = {
30 .type = VIEW_INCALL_MULTICALL_CONF_VIEW,
33 .onCreate = __vcui_view_multi_call_conf_oncreate,
34 .onUpdate = __vcui_view_multi_call_conf_onupdate,
35 .onHide = __vcui_view_multi_call_conf_onhide,
36 .onShow = __vcui_view_multi_call_conf_onshow,
37 .onDestroy = __vcui_view_multi_call_conf_ondestroy,
41 voice_call_view_data_t *_vcui_view_multi_call_conf_new(vcui_app_call_data_t *ad)
44 s_view.priv = calloc(1, sizeof(vcui_view_multi_call_conf_priv_t));
47 CALL_UI_DEBUG("ERROR!!!!!!!!!!! ");
53 static void __vcui_view_multi_call_conf_draw_screen(Evas_Object *eo, void *data)
57 voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
58 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv;
59 vcui_app_call_data_t *ad = vd->app_data;
60 char buf[DEF_BUF_LEN] = { 0, };
61 call_data_t *call_data = NULL;
63 priv->call_status = _vcui_doc_get_show_callstatus();
64 call_data = _vcui_doc_get_last_status(priv->call_status);
65 if (call_data == NULL) {
66 CALL_UI_DEBUG("call data is null");
69 priv->total_members = _vcui_doc_get_count_hold()+_vcui_doc_get_count_unhold();
72 _vcui_show_wallpaper_image(priv->contents);
73 priv->ic = _vcui_show_default_image(priv->contents, vd->app_data->win_main, CONF_ICON);
74 if (priv->call_status == CALL_HOLD) {
75 double scale_factor = 0.0;
76 scale_factor = elm_config_scale_get();
77 CALL_UI_DEBUG("scale_factor %f", scale_factor);
79 if (scale_factor == 1.0) {
80 edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_HD", "CID_HD");
82 edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_WVGA", "CID_WVGA");
85 edje_object_signal_emit(_EDJ(priv->contents), "HIDE_DIM", "CID");
87 evas_object_smart_callback_add(priv->ic, "clicked", _vcui_conf_img_cb, vd);
89 edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL"));
90 snprintf(buf, DEF_BUF_LEN, "%d %s", priv->total_members, _("IDS_CALL_BODY_PEOPLE"));
91 edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", buf); /* in case of multicallconf, it is num of people */
93 _vcui_view_common_set_each_time(call_data->start_time);
95 _vcui_create_top_left_button(vd);
96 _vcui_create_top_right_button(vd);
97 _vcui_create_bottom_left_button(vd);
98 _vcui_create_bottom_middle_button(vd);
99 if ((_vcui_is_phonelock_status() == EINA_TRUE)&&(_vcui_is_idle_lock() == EINA_TRUE)) {
100 _vcui_create_top_middle_button_disabled(vd);
101 _vcui_create_bottom_right_button_disabled(vd);
103 _vcui_create_top_middle_button(vd);
104 _vcui_create_bottom_right_button(vd);
106 _vcui_create_button_bigend(vd);
108 ad->beffect_needed = EINA_FALSE;
110 evas_object_show(eo);
113 static Evas_Object *__vcui_view_multi_call_conf_create_contents(void *data, char *group)
116 CALL_UI_DEBUG("ERROR");
119 voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
124 eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, group);
131 static Evas_Object *__vcui_view_multi_call_conf_create_layout_main(Evas_Object *parent)
133 if (parent == NULL) {
134 CALL_UI_DEBUG("ERROR");
139 ly = elm_layout_add(parent);
140 retvm_if(ly == NULL, NULL, "Failed elm_layout_add.");
142 elm_layout_theme_set(ly, "standard", "window", "integration");
143 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
144 elm_win_resize_object_add(parent, ly);
146 edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm");
147 edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm");
148 evas_object_show(ly);
153 static int __vcui_view_multi_call_conf_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3)
155 voice_call_view_data_t *vd = view_data;
156 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv;
160 /* Create Main Layout */
161 vd->layout = __vcui_view_multi_call_conf_create_layout_main(vd->app_data->win_main);
162 if (vd->layout == NULL) {
163 CALL_UI_DEBUG("ERROR");
166 /* Create Contents */
167 priv->contents = __vcui_view_multi_call_conf_create_contents(vd, GRP_MULTICALL_CONF);
168 elm_object_part_content_set(vd->layout, "elm.swallow.content", priv->contents);
170 evas_object_name_set(priv->contents, "MULTIVIEWCONF");
171 CALL_UI_DEBUG("[========== MULTIVIEWCONF: priv->contents Addr : [%p] ==========]", priv->contents);
173 CALL_UI_DEBUG("[UI]ad->layout_multicallconf==NULL case ");
174 evas_object_show(vd->layout);
177 __vcui_view_multi_call_conf_onshow(view_data);
181 static int __vcui_view_multi_call_conf_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2)
183 CALL_UI_DEBUG("multicall-conf view update");
185 __vcui_view_multi_call_conf_onshow(view_data);
190 static int __vcui_view_multi_call_conf_onhide(voice_call_view_data_t *view_data)
192 CALL_UI_DEBUG("multicall-conf view hide");
194 evas_object_hide(view_data->layout);
198 static int __vcui_view_multi_call_conf_onshow(voice_call_view_data_t *view_data)
200 CALL_UI_DEBUG("multicall-conf view show");
202 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)view_data->priv;
204 __vcui_view_multi_call_conf_draw_screen(priv->contents, view_data);
206 evas_object_hide(view_data->layout);
207 evas_object_show(view_data->layout);
211 static int __vcui_view_multi_call_conf_ondestroy(voice_call_view_data_t *view_data)
213 CALL_UI_DEBUG("multicall-conf view destroy");
214 vcui_app_call_data_t *ad = _vcui_get_app_data();
216 voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW];
217 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv;
220 if (priv->contents) {
221 evas_object_del(priv->contents);
222 priv->contents = NULL;
229 if (vd->layout != NULL) {
230 evas_object_hide(vd->layout);
231 evas_object_del(vd->layout);
235 ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW] = NULL;
238 CALL_UI_DEBUG("complete destroy multi view conf");