From cb6bc5d426ad8205a465d002edbe067e129b35c1 Mon Sep 17 00:00:00 2001 From: Igor Olshevskyi Date: Fri, 2 Dec 2016 13:25:18 +0200 Subject: [PATCH] TizenRefApp-7781 [Call UI] Replace more menu ctxpopup show logic into View Manager Change-Id: I1c6691eff5a5730aae05cf30cedab38a20ce898c --- inc/callui-view-elements.h | 12 +- inc/callui.h | 1 - src/callui-view-elements.c | 236 +++++++++++++++++--------------------- src/callui-view-manager.c | 66 +++++++++++ src/callui-view-multi-call-conf.c | 14 --- src/callui-view-single-call.c | 16 --- 6 files changed, 181 insertions(+), 164 deletions(-) diff --git a/inc/callui-view-elements.h b/inc/callui-view-elements.h index 764a827..4374d80 100644 --- a/inc/callui-view-elements.h +++ b/inc/callui-view-elements.h @@ -109,15 +109,17 @@ Evas_Object *_callui_create_cid_thumbnail_with_size(Evas_Object *parent, void _callui_caller_info_set_caller_image(Evas_Object *content, const callui_call_data_t *call_data); /** - * @brief Create more popup + * @brief Creates more menu popup * - * @param[in] data View data + * @param[in] parent Parent Evas object + * @param[in] ad Application data * + * @return Created more menu context popup on success or NULL otherwise */ -void _callui_load_more_option(void *data); +Evas_Object *_callui_load_more_menu_popup(Evas_Object *parent, callui_app_data_t *ad); /** - * @brief Create popup after second call to choose needed action + * @brief Creates popup after second call to choose needed action * * @param[in] ad Application data * @@ -125,7 +127,7 @@ void _callui_load_more_option(void *data); void _callui_load_second_call_popup(callui_app_data_t *ad); /** - * @brief Create bluetooth popup + * @brief Creates bluetooth popup * * @param[in] ad Application data * diff --git a/inc/callui.h b/inc/callui.h index 125a808..e16b9cb 100755 --- a/inc/callui.h +++ b/inc/callui.h @@ -43,7 +43,6 @@ struct appdata { callui_qp_mc_h qp_minicontrol; callui_display_h display; - Evas_Object *ctxpopup; Evas_Object *second_call_popup; Evas_Object *bt_popup; diff --git a/src/callui-view-elements.c b/src/callui-view-elements.c index f5dbb41..20d11be 100755 --- a/src/callui-view-elements.c +++ b/src/callui-view-elements.c @@ -64,12 +64,6 @@ static int _g_cid_size[CALLUI_CID_SIZE_COUNT] = { CALLUI_CID_THUMBN_SIZE_BIG }; -static void __callui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info); -static void __callui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info); -static void __callui_move_more_option(callui_app_data_t *ad, Evas_Object *ctxpopup); -static void __callui_more_option_dismissed_cb(void *data, Evas_Object *obj, void *event_info); -static void __callui_more_option_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void __callui_unload_more_option(callui_app_data_t *ad); static void __callui_unload_second_call_popup(callui_app_data_t *ad); static char *__callui_gl_second_call_option_label_get(void *data, Evas_Object *obj, const char *part); static void __callui_gl_second_call_option_del_cb(void *data, Evas_Object *obj); @@ -81,6 +75,13 @@ static void __callui_bt_popup_ok_btn_cb(void *data, Evas_Object *obj, void *even static void __callui_get_displayed_caller_info_string(const callui_call_data_t *call_data, char *display_string, int display_string_size); static Evas_Object *__callui_create_style_layout(Evas_Object *parent, const char *style); +static void __callui_ctxpopup_item_hold_cb(void *data, Evas_Object *obj, void *event_info); +static void __callui_ctxpopup_item_unhold_cb(void *data, Evas_Object *obj, void *event_info); +static void __callui_move_more_ctxpopup(Evas_Object *ctxpopup, callui_app_data_t *ad); +static void __callui_more_ctxpopup_dismiss_cb(void *data, Evas_Object *obj, void *event_info); +static void __callui_more_ctxpopup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void __callui_destroy_more_ctxpopup(Evas_Object *ctxpopup, callui_app_data_t *ad); + static Evas_Object *__callui_create_style_layout(Evas_Object *parent, const char *style) { Evas_Object *eo = elm_layout_add(parent); @@ -221,128 +222,6 @@ void _callui_caller_info_set_caller_image(Evas_Object *contents, const callui_ca elm_object_part_content_set(contents, "swallow.caller_id", thumbnail); } -static void __callui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - dbg(".."); - callui_app_data_t *ad = (callui_app_data_t *)data; - - __callui_unload_more_option(ad); - - callui_result_e res = _callui_manager_hold_call(ad->call_manager); - if (res != CALLUI_RESULT_OK) { - err("_callui_manager_hold_call() failed. res[%d]", res); - } -} - -static void __callui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - dbg(".."); - callui_app_data_t *ad = (callui_app_data_t *)data; - - __callui_unload_more_option(ad); - - callui_result_e res = _callui_manager_unhold_call(ad->call_manager); - if (res != CALLUI_RESULT_OK) { - err("_callui_manager_unhold_call() failed. res[%d]", res); - } -} - -static void __callui_move_more_option(callui_app_data_t *ad, Evas_Object *ctxpopup) -{ - Evas_Coord w = 0, h = 0; - int pos = -1; - - _callui_window_get_screen_size(ad->window, NULL, NULL, &w, &h); - pos = _callui_window_get_rotation(ad->window); - - switch (pos) { - case 90: - case 270: - evas_object_move(ctxpopup, (h / 2), w); - break; - default: - evas_object_move(ctxpopup, (w / 2), h); - break; - } -} - -static void __callui_more_option_dismissed_cb(void *data, Evas_Object *obj, void *event_info) -{ - dbg(".."); - callui_app_data_t *ad = (callui_app_data_t *)data; - __callui_unload_more_option(ad); -} - -static void __callui_more_option_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - dbg(".."); - callui_app_data_t *ad = (callui_app_data_t *)data; - __callui_unload_more_option(ad); -} - -void _callui_load_more_option(void *data) -{ - CALLUI_RETURN_IF_FAIL(data); - - callui_app_data_t *ad = (callui_app_data_t *)data; - bool is_lcd_locked = false; - - if (_callui_common_is_proximity_sensor_supported()) { - is_lcd_locked = _callui_lock_manager_is_lcd_off(ad->lock_manager); - } else { - is_lcd_locked = _callui_lock_manager_is_running(ad->lock_manager); - } - - if (is_lcd_locked) { - dbg("Lock screen active. Do not show popup."); - return; - } - - if (ad->ctxpopup == NULL) { - Evas_Object *ctxpopup = elm_ctxpopup_add(_callui_vm_get_main_ly(ad->view_manager)); - elm_object_style_set(ctxpopup, "more/default"); - elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE); - evas_object_smart_callback_add(ctxpopup, "dismissed", __callui_more_option_dismissed_cb, ad); - evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, __callui_more_option_delete_cb, ad); - eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL); - eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL); - - /* Hold/Resume */ - if (_callui_vm_get_cur_view_type(ad->view_manager) != CALLUI_VIEW_MULTICALL_SPLIT) { - const callui_call_data_t *call_data = - _callui_stp_get_call_data(ad->state_provider, CALLUI_CALL_DATA_ACTIVE); - if (call_data) { - elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_HOLD"), NULL, __callui_hold_btn_cb, ad); - } else { - elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_RESUME_ABB"), NULL, __callui_unhold_btn_cb, ad); - } - } - elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP, - ELM_CTXPOPUP_DIRECTION_UNKNOWN, - ELM_CTXPOPUP_DIRECTION_UNKNOWN, - ELM_CTXPOPUP_DIRECTION_UNKNOWN); - - __callui_move_more_option(ad, ctxpopup); - - evas_object_show(ctxpopup); - ad->ctxpopup = ctxpopup; - } else { - elm_ctxpopup_dismiss(ad->ctxpopup); - } -} - -static void __callui_unload_more_option(callui_app_data_t *ad) -{ - CALLUI_RETURN_IF_FAIL(ad); - if (ad->ctxpopup) { - evas_object_smart_callback_del(ad->ctxpopup, "dismissed", __callui_more_option_dismissed_cb); - evas_object_event_callback_del(ad->ctxpopup, EVAS_CALLBACK_DEL, __callui_more_option_delete_cb); - - evas_object_del(ad->ctxpopup); - ad->ctxpopup = NULL; - } -} - static void __callui_unload_second_call_popup(callui_app_data_t *ad) { dbg(".."); @@ -759,3 +638,104 @@ void _callui_load_bluetooth_popup(callui_app_data_t *ad) return; } +static void __callui_ctxpopup_item_hold_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data); + + callui_app_data_t *ad = (callui_app_data_t *)data; + + __callui_destroy_more_ctxpopup(obj, ad); + + callui_result_e res = _callui_manager_hold_call(ad->call_manager); + if (res != CALLUI_RESULT_OK) { + err("_callui_manager_hold_call() failed. res[%d]", res); + } +} + +static void __callui_ctxpopup_item_unhold_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data); + + callui_app_data_t *ad = (callui_app_data_t *)data; + + __callui_destroy_more_ctxpopup(obj, ad); + + callui_result_e res = _callui_manager_unhold_call(ad->call_manager); + if (res != CALLUI_RESULT_OK) { + err("_callui_manager_unhold_call() failed. res[%d]", res); + } +} + +static void __callui_move_more_ctxpopup(Evas_Object *ctxpopup, callui_app_data_t *ad) +{ + Evas_Coord w = 0, h = 0; + _callui_window_get_screen_size(ad->window, NULL, NULL, &w, &h); + + int pos = _callui_window_get_rotation(ad->window); + switch (pos) { + case 90: + case 270: + evas_object_move(ctxpopup, (h / 2), w); + break; + default: + evas_object_move(ctxpopup, (w / 2), h); + break; + } +} + +static void __callui_more_ctxpopup_dismiss_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data); + + __callui_destroy_more_ctxpopup(obj, data); +} + +static void __callui_more_ctxpopup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data); + + __callui_destroy_more_ctxpopup(obj, data); +} + +Evas_Object *_callui_load_more_menu_popup(Evas_Object *parent, callui_app_data_t *ad) +{ + CALLUI_RETURN_NULL_IF_FAIL(parent); + CALLUI_RETURN_NULL_IF_FAIL(ad); + + Evas_Object *ctxpopup = elm_ctxpopup_add(parent); + CALLUI_RETURN_NULL_IF_FAIL(ctxpopup); + elm_object_style_set(ctxpopup, "more/default"); + elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_FALSE); + evas_object_smart_callback_add(ctxpopup, "dismissed", __callui_more_ctxpopup_dismiss_cb, ad); + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, __callui_more_ctxpopup_delete_cb, ad); + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL); + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL); + + Elm_Object_Item *ctxpopup_item = NULL; + if (_callui_stp_get_call_data(ad->state_provider, CALLUI_CALL_DATA_ACTIVE)) { + ctxpopup_item = elm_ctxpopup_item_append(ctxpopup, "IDS_CALL_BUTTON_HOLD", NULL, __callui_ctxpopup_item_hold_cb, ad); + } else { + ctxpopup_item = elm_ctxpopup_item_append(ctxpopup, "IDS_CALL_BUTTON_RESUME_ABB", NULL, __callui_ctxpopup_item_unhold_cb, ad); + } + elm_object_item_domain_text_translatable_set(ctxpopup_item, CALLUI_TEXT_DOMAIN, EINA_TRUE); + + elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UNKNOWN, + ELM_CTXPOPUP_DIRECTION_UNKNOWN, ELM_CTXPOPUP_DIRECTION_UNKNOWN); + + __callui_move_more_ctxpopup(ctxpopup, ad); + + evas_object_show(ctxpopup); + + return ctxpopup; +} + +static void __callui_destroy_more_ctxpopup(Evas_Object *ctxpopup, callui_app_data_t *ad) +{ + if (ctxpopup) { + evas_object_smart_callback_del_full(ctxpopup, "dismissed", __callui_more_ctxpopup_dismiss_cb, ad); + evas_object_event_callback_del_full(ctxpopup, EVAS_CALLBACK_DEL, __callui_more_ctxpopup_delete_cb, ad); + eext_object_event_callback_del(ctxpopup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb); + eext_object_event_callback_del(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb); + evas_object_del(ctxpopup); + } +} diff --git a/src/callui-view-manager.c b/src/callui-view-manager.c index c45ae5e..3ea732b 100644 --- a/src/callui-view-manager.c +++ b/src/callui-view-manager.c @@ -14,6 +14,8 @@ * limitations under the License. */ +#include + #include "callui-view-manager.h" #include "callui-debug.h" #include "callui-view-dialing.h" @@ -44,6 +46,7 @@ struct _callui_vm { bool paused; bool check_conf_memeber_count; bool is_activated; + Evas_Object *more_ctxpopup; callui_lock_manager_lock_state_e cur_lock_state; }; @@ -67,6 +70,55 @@ static void __end_call_called_cb(void *user_data, unsigned int call_id, callui_c static Evas_Object *__create_eo_layout(Evas_Object *parent); static void __deactivate_vm(callui_vm_h vm); static void __lock_state_change_cb(void *data, callui_lock_manager_type_e type, callui_lock_manager_lock_state_e lock_state); +static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info); +static void __more_menu_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void __close_more_menu_popup(callui_vm_h vm); + +static void __close_more_menu_popup(callui_vm_h vm) +{ + if (vm->more_ctxpopup) { + evas_object_del(vm->more_ctxpopup); + } +} + +static void __more_menu_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data); + + callui_vm_h vm = (callui_vm_h)data; + evas_object_event_callback_del_full(vm->more_ctxpopup, EVAS_CALLBACK_DEL, __more_menu_popup_delete_cb, vm); + vm->more_ctxpopup = NULL; +} + +static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data); + + callui_vm_h vm = (callui_vm_h)data; + + if ((_callui_common_is_proximity_sensor_supported() ? + _callui_lock_manager_is_lcd_off(vm->ad->lock_manager) : + _callui_lock_manager_is_running(vm->ad->lock_manager))) { + dbg("Lock screen active. Do not show more menu popup"); + return; + } + + if (!(vm->cur_view_type == CALLUI_VIEW_SINGLECALL || vm->cur_view_type == CALLUI_VIEW_MULTICALL_CONF)) { + dbg("More menu popup not supported for view [%d]", vm->cur_view_type); + return; + } + + if (vm->more_ctxpopup) { + dbg("More menu popup already shown. Dismiss popup"); + elm_ctxpopup_dismiss(vm->more_ctxpopup); + return; + } + + vm->more_ctxpopup = _callui_load_more_menu_popup(vm->main_ly, vm->ad); + CALLUI_RETURN_IF_FAIL(vm->more_ctxpopup); + evas_object_event_callback_add(vm->more_ctxpopup, EVAS_CALLBACK_DEL, __more_menu_popup_delete_cb, vm); +} + /** * @brief Allocates memory for specific view * @@ -243,6 +295,11 @@ static void __lock_state_change_cb(void *data, callui_lock_manager_type_e type, callui_vm_h vm = (callui_vm_h)data; if (lock_state == CALLUI_LOCK_MNG_STATE_LOCKED) { + + if (type == CALLUI_LOCK_MNG_TYPE_TOUCH) { + __close_more_menu_popup(vm); + } + if (vm->cur_view->lock) { vm->cur_view->lock(vm->cur_view, type); } else { @@ -352,6 +409,8 @@ callui_result_e _callui_vm_activate(callui_vm_h vm) res = _callui_lock_manager_add_state_change_cb(vm->ad->lock_manager, __lock_state_change_cb, vm); CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res); + eext_object_event_callback_add(vm->main_ly, EEXT_CALLBACK_MORE, __more_btn_click_cb, vm); + vm->is_activated = true; return res; @@ -364,6 +423,12 @@ static void __deactivate_vm(callui_vm_h vm) return; } + eext_object_event_callback_del(vm->main_ly, EEXT_CALLBACK_MORE, __more_btn_click_cb); + if (vm->more_ctxpopup) { + evas_object_event_callback_del_full(vm->more_ctxpopup, EVAS_CALLBACK_DEL, __more_menu_popup_delete_cb, vm); + DELETE_EVAS_OBJECT(vm->more_ctxpopup); + } + _callui_lock_manager_remove_state_change_cb(vm->ad->lock_manager, __lock_state_change_cb, vm); _callui_manager_remove_end_call_called_cb(vm->ad->call_manager, __end_call_called_cb, vm); _callui_stp_remove_call_state_event_cb(vm->ad->state_provider, __call_state_event_cb, vm); @@ -514,6 +579,7 @@ static callui_result_e __change_view(callui_vm_h vm, callui_view_type_e type) if ((last_view_type != CALLUI_VIEW_UNDEFINED) && (last_view_type != type)) { dbg("Destroy view [%d]", last_view_type); + __close_more_menu_popup(vm); res = __destroy_cur_view(vm); CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res); } diff --git a/src/callui-view-multi-call-conf.c b/src/callui-view-multi-call-conf.c index 0a2f324..be5f737 100755 --- a/src/callui-view-multi-call-conf.c +++ b/src/callui-view-multi-call-conf.c @@ -15,7 +15,6 @@ */ #include -#include #include "callui-view-multi-call-conf.h" #include "callui-debug.h" @@ -50,7 +49,6 @@ static void __update_caller_info_conference_member_count(Evas_Object *caller_inf static void __manage_calls_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info); static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info); -static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info); static void __keypad_show_state_change_cd(void *data, callui_keypad_state_event_e visibility); static Eina_Bool __call_duration_timer_cb(void* data); @@ -82,9 +80,6 @@ static callui_result_e __create_main_content(callui_view_mc_conf_h vd, Evas_Obje CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL); elm_object_part_content_set(parent, "elm.swallow.content", vd->base_view.contents); - // TODO: replace this into view manager in nearest future - eext_object_event_callback_add(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb, ad); - /* Caller info layout */ vd->caller_info = _callui_create_layout(vd->base_view.contents, CALLUI_LY_STYLE_CALLER_INFO); CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL); @@ -263,10 +258,6 @@ static callui_result_e __callui_view_multi_call_conf_ondestroy(call_view_data_ba DELETE_ECORE_TIMER(vd->base_view.call_duration_timer); free(vd->base_view.call_duration_tm); - eext_object_event_callback_del(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb); - - evas_object_del(ad->ctxpopup); - DELETE_EVAS_OBJECT(vd->base_view.contents); free(vd); @@ -374,11 +365,6 @@ static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_in } } -static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info) -{ - _callui_load_more_option(data); -} - static void __keypad_show_state_change_cd(void *data, callui_keypad_state_event_e visibility) { CALLUI_RETURN_IF_FAIL(data); diff --git a/src/callui-view-single-call.c b/src/callui-view-single-call.c index 0f16966..3f5da25 100644 --- a/src/callui-view-single-call.c +++ b/src/callui-view-single-call.c @@ -15,7 +15,6 @@ */ #include -#include #include "callui-view-single-call.h" #include "callui-debug.h" @@ -46,7 +45,6 @@ static callui_result_e __create_main_content(call_view_single_call_h vd, Evas_Ob static callui_result_e __update_displayed_data(call_view_single_call_h vd); static void __update_caller_info_text(call_view_single_call_h vd, const callui_call_data_t *call_data); -static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info); static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info); static void __keypad_show_state_change_cd(void *data, callui_keypad_state_event_e visibility); static Eina_Bool __call_duration_timer_cb(void* data); @@ -116,10 +114,6 @@ static callui_result_e __callui_view_single_call_ondestroy(call_view_data_base_t DELETE_ECORE_TIMER(vd->base_view.call_duration_timer); free(vd->base_view.call_duration_tm); - eext_object_event_callback_del(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb); - - evas_object_del(ad->ctxpopup); - DELETE_EVAS_OBJECT(vd->base_view.contents); free(vd); @@ -204,13 +198,6 @@ static callui_result_e __callui_view_single_call_onunlock(call_view_data_base_t return CALLUI_RESULT_OK; } -static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALLUI_RETURN_IF_FAIL(data); - - _callui_load_more_option((callui_app_data_t *)data); -} - static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info) { CALLUI_RETURN_IF_FAIL(data); @@ -359,9 +346,6 @@ static callui_result_e __create_main_content(call_view_single_call_h vd, Evas_Ob CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL); elm_object_part_content_set(parent, "elm.swallow.content", vd->base_view.contents); - // TODO: replace this into view manager in nearest future - eext_object_event_callback_add(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb, ad); - vd->caller_info = _callui_create_layout(vd->base_view.contents, CALLUI_LY_STYLE_CALLER_INFO); CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL); elm_object_part_content_set(vd->base_view.contents, CALLUI_PART_SWL_CALLER_INFO, vd->caller_info); -- 2.7.4