From: jk7744.park Date: Sat, 24 Oct 2015 06:36:48 +0000 (+0900) Subject: tizen 2.4 release X-Git-Tag: accepted/tizen/2.4/mobile/20151029.041710^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3c65d0d88db13a90dd6699140b2c841d1fa810bb;p=apps%2Fhome%2Fcall-ui.git tizen 2.4 release --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b94a1a --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +### SDK IDE generated files and folder ### +.*project +########################################## + +### Build scripts ### +build* +deploy* +install.sh +run.sh +########################################### + +### Etc ### +*~ +.settings +############## + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..a83bcc0 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,117 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(call-ui C) + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(PKG_NAME org.tizen.call-ui) +SET(APPDIR "${PREFIX}/apps/org.tizen.call-ui") +SET(BINDIR "${APPDIR}/bin") +SET(RESDIR "${APPDIR}/res") +SET(LOCALEDIR "${RESDIR}/locale") +SET(EDJDIR "${RESDIR}/edje") +SET(IMGDIR "${RESDIR}/images") +SET(TABLEDIR "${RESDIR}/tables") + +SET(EDJE_CC_DEFINITIONS "") + +ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") +ADD_DEFINITIONS("-DBINDIR=\"${BINDIR}\"") +ADD_DEFINITIONS("-DPACKAGE=\"${PKG_NAME}\"") +ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"") +ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") +ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"") +ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"") +ADD_DEFINITIONS("-DTABLEDIR=\"${TABLEDIR}\"") + +ADD_DEFINITIONS("-D_CALLUI_SIGNAL_HANDLER") + +ADD_SUBDIRECTORY(po) + +FILE(GLOB SRCS "src/*.c") + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) + +INCLUDE(FindPkgConfig) +pkg_check_modules (pkgs REQUIRED + appcore-efl + glib-2.0 + elementary + dlog + capi-appfw-application + ecore + ecore-x + utilX + appsvc + callmgr_client + contacts-service2 + minicontrol-provider + vconf + capi-network-bluetooth + capi-network-connection + capi-system-system-settings + msg-service + capi-system-device + notification + capi-system-runtime-info + capi-system-info + capi-ui-efl-util + efl-extension +) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE ${EXTRA_CFLAGS}") + +ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} "-pie" ${pkgs_LDFLAGS}) + +ADD_CUSTOM_TARGET(call.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/images ${SHARED_FLAGS} ${EDJE_CC_DEFINITIONS} + ${CMAKE_CURRENT_SOURCE_DIR}/res/call_edc/call.edc ${CMAKE_CURRENT_SOURCE_DIR}/res/call.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/call_edc/call.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} call.edj) + +ADD_CUSTOM_TARGET(call_theme.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/themes ${EDJE_CC_DEFINITIONS} -sd + ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/sounds + ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edc ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} call_theme.edj) + +ADD_CUSTOM_TARGET(call_genlist_theme.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/themes -sd + ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/sounds + ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edc ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} call_genlist_theme.edj) + +#install binary & edj files +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/call.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edj DESTINATION ${EDJDIR}) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) +INSTALL(DIRECTORY DESTINATION ${DATADIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKG_NAME}.xml DESTINATION /usr/share/packages/) + +# install manifest file & icon +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/tables/ DESTINATION ${TABLEDIR} FILES_MATCHING PATTERN "*.xml") +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/handler_btn_02.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_photo_id_mask.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/icon/call_resume_play_mask.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_photo_id.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/button_edit_bg_new.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_button_icon_01.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_button_icon_03.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_button_icon_04.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/icon/call_button_add.png DESTINATION ${IMGDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/icon/noti_icon_reject_auto.png DESTINATION ${IMGDIR}) + +#install smack rule +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKG_NAME}.efl DESTINATION /etc/smack/accesses.d) + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/include/callui-common.h b/include/callui-common.h new file mode 100644 index 0000000..bee3d06 --- /dev/null +++ b/include/callui-common.h @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_COMMON_H_ +#define __CALLUI_COMMON_H_ + +#include "callui-view-manager.h" +#include "callui.h" + +#define CALLUI_KEY_MEDIA "XF86AudioMedia" +#define CALLUI_KEY_SELECT "XF86Phone" +#define CALLUI_KEY_POWER "XF86PowerOff" +#define CALLUI_KEY_HOME "XF86Home" +#define CALLUI_KEY_VOLUMEUP "XF86AudioRaiseVolume" +#define CALLUI_KEY_VOLUMEDOWN "XF86AudioLowerVolume" + +typedef enum { + LOCK_TYPE_UNLOCK = 1, + LOCK_TYPE_SWIPE_LOCK, + LOCK_TYPE_SECURITY_LOCK +} callui_idle_lock_type_t; + +typedef enum { + LCD_TIMEOUT_SET = 1, + LCD_TIMEOUT_UNSET, + LCD_TIMEOUT_LOCKSCREEN_SET, /*After lock-screen comes in Connected state LCD goes to OFF in 5 secs*/ + LCD_TIMEOUT_KEYPAD_SET, /*When Keypad is ON, LCD goes to DIM in 3 secs then goes to OFF in 5 secs*/ + LCD_TIMEOUT_DEFAULT +} callui_lcd_timeout_t; + +typedef enum { + LCD_ON, + LCD_ON_LOCK, + LCD_ON_UNLOCK, + LCD_OFF_SLEEP_LOCK, + LCD_OFF_SLEEP_UNLOCK +} callui_lcd_control_t; + +void _callui_common_set_call_duration(char *time_dur); +void _callui_common_update_call_duration(long starttime); +void _callui_common_create_duration_timer(); +void _callui_common_delete_duration_timer(); +void _callui_common_create_ending_timer(call_view_data_t *vd, long start_time); +void _callui_common_delete_ending_timer(void); +char * _callui_common_get_sim_name(void *appdata); +Eina_Bool _callui_common_is_headset_conected(void); +callui_idle_lock_type_t _callui_common_get_idle_lock_type(void); +int _callui_common_unlock_swipe_lock(void); +long _callui_common_get_uptime(void); +void _callui_common_win_set_noti_type(void *appdata, int bwin_noti); +void _callui_common_get_contact_info(int person_id, call_contact_data_t *ct_info); +void _callui_common_launch_contacts(void *appdata); +void _callui_common_launch_bt_app(void *appdata); +void _callui_common_launch_dialer(void *appdata); +void _callui_common_launch_msg_composer(void *appdata, char *number); +void _callui_common_reset_main_ly_text_fields(Evas_Object *contents); +void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state); +gboolean _callui_common_is_extra_volume_available(void); +gboolean _callui_common_is_answering_mode_on(void); +gboolean _callui_common_is_powerkey_mode_on(void); +void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state); +void _callui_common_dvc_control_lcd_state(callui_lcd_control_t state); +void _callui_common_set_quickpanel_scrollable(Eina_Bool benable); +Eina_Bool _callui_common_is_earjack_connected(void); +int _callui_common_get_scaled_width(int width); +int _callui_common_get_scaled_height(int height); + +#endif //__CALLUI_COMMON_H_ diff --git a/include/callui-keypad.h b/include/callui-keypad.h new file mode 100755 index 0000000..df267a7 --- /dev/null +++ b/include/callui-keypad.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef _CALLUI_VIEW_KEYPAD_H_ +#define _CALLUI_VIEW_KEYPAD_H_ + +#include + +Eina_Bool _callui_keypad_get_show_status(void); +void _callui_keypad_show_layout(void *appdata); +void _callui_keypad_hide_layout(void *appdata); +void _callui_keypad_create_layout(void *appdata); +void _callui_keypad_delete_layout(void *appdata); + + +#endif // _CALLUI_VIEW_KEYPAD_H_ diff --git a/include/callui-view-active-incoming-call.h b/include/callui-view-active-incoming-call.h new file mode 100644 index 0000000..a7ecee2 --- /dev/null +++ b/include/callui-view-active-incoming-call.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_ +#define __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_ + +#include "callui-view-manager.h" + +/** + * @brief Draw screen for active incoming call + * @param[in] ad Call ui app data + * @param[in] vd Call view data + */ +void _callui_view_active_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd); + +/** + * @brief Create layout for active incoming call + * @param[in] vd Call view data + * @param[in] appdata app data + */ +int _callui_view_active_incoming_call_oncreate(call_view_data_t *view_data, void *appdata); + +#endif /* __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_ */ diff --git a/include/callui-view-callend.h b/include/callui-view-callend.h new file mode 100644 index 0000000..66c8691 --- /dev/null +++ b/include/callui-view-callend.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef _CALLUI_VIEW_CALLEND_H_ +#define _CALLUI_VIEW_CALLEND_H_ + +#include "callui-view-manager.h" + +typedef struct callui_endcall_view_priv callui_endcall_view_priv_t; + +call_view_data_t *_callui_view_callend_new(callui_app_data_t *ad); +Evas_Object *_callui_view_callend_get_layout(call_view_data_t *vd); + +#endif //_CALLUI_VIEW_CALLEND_H_ diff --git a/include/callui-view-caller-info-defines.h b/include/callui-view-caller-info-defines.h new file mode 100644 index 0000000..bcc39b0 --- /dev/null +++ b/include/callui-view-caller-info-defines.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef _CALLUI_VIEW_CALLER_INFO_DEFINES_H_ +#define _CALLUI_VIEW_CALLER_INFO_DEFINES_H_ + +#define GROUP_MERGE_BTN "merge_btn" +#define GROUP_SWAP_BTN "swap_btn" +#define PART_TEXT_MERGE_SWAP_BTN "text" + +#define GROUP_ACTIVE_HOLD_INFO "active_hold_info" +#define PART_TEXT_STATUS "text.status" +#define PART_SWALLOW_CALLER_ID "swallow.caller_id" +#define PART_TEXT_MAIN "text.main" +#define PART_TEXT_SUB "text.sub" +#define SIGNAL_SET_TRANSPARENT_BACKGROUND "set,transparent,background" +#define SIGNAL_SET_BLURRED_BACKGROUND "set,blurred,background" +#define SIGNAL_SHOW_ARROW "show,arrow" +#define SIGNAL_HIDE_ARROW "hide,arrow" + +#define GROUP_BTN_REGION "btn_region" +#define PART_TOP_FIRST_BTN "top_first_button" +#define PART_TOP_SECOND_BTN "top_second_button" +#define PART_TOP_THIRD_BTN "top_third_button" +#define PART_BOTTOM_FIRST_BTN "bottom_first_button" +#define PART_BOTTOM_SECOND_BTN "bottom_second_button" +#define PART_BOTTOM_THIRD_BTN "bottom_third_button" + +#define GROUP_ACTION_PANEL "action_panel" +#define PART_END_BTN "end_btn" + +#define GROUP_ONE_HOLD_IN_CONFERENCE "one_hold_in_conference" +#define PART_SWALLOW_HOLD_INFO "swallow.hold_info" +#define PART_SWALLOW_MERGE "swallow.merge" +#define PART_SWALLOW_SWAP "swallow.swap" +#define PART_SWALLOW_ACTIVE_INFO "swallow.active_info" +#define PART_SWALLOW_BTN_REGION "btn_region" +#define PART_SWALLOW_ACTIONS_PANEL "swallow.actions_panel" + +#define GROUP_SPLIT "split" +#define PART_SWALLOW_CALL_INFO "swallow.call_info" +#define PART_SWALLOW_TEXTBLOCK_AREA "textblock/textarea" +#define PART_SWALLOW_KEYPAD "keypad_region" + +#endif //_CALLUI_VIEW_CALLER_INFO_DEFINES_H_ diff --git a/include/callui-view-caller-info-metric.h b/include/callui-view-caller-info-metric.h new file mode 100644 index 0000000..faacbed --- /dev/null +++ b/include/callui-view-caller-info-metric.h @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef _CALLUI_CALLER_INFO_METRIC_H_ +#define _CALLUI_CALLER_INFO_METRIC_H_ + +//One hold in conference layout +#define ONE_HOLD_H (730) +#define ONE_HOLD_B REL_HD_H(ONE_HOLD_H) + +//Indicator +#define INDICATOR_HEIGHT 50 +#define INDICATOR_B (INDICATOR_HEIGHT / ONE_HOLD_H) + +//Caller info layout +#define CALLER_INF_LAYOUT_OFFSET 10 +#define CALLER_INF_LAYOUT_B_OFFSET 62 +#define CALLER_INF_LAYOUT_H 248 +#define CALLER_INF_LAYOUT_W 700 + +//Hold info +#define HOLD_LAYOUT_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET) +#define HOLD_LAYOUT_T (INDICATOR_B + (CALLER_INF_LAYOUT_OFFSET / ONE_HOLD_H)) +#define HOLD_LAYOUT_R (1 - REL_HD_W(CALLER_INF_LAYOUT_OFFSET)) +#define HOLD_LAYOUT_B (HOLD_LAYOUT_T + (CALLER_INF_LAYOUT_H / ONE_HOLD_H)) + +//Caller info +#define CALLER_INF_L_OFFSET 22 +#define CALLER_INF_T_OFFSET 10 +#define CALLER_INF_R_OFFSET 22 +#define CALLER_INF_B_OFFSET 30 +#define CALLER_INF_ID_T_OFFSET 16 +#define CALLER_INF_TEXT_L_OFFSET 32 +#define CALLER_INF_SUBTEXT_T_OFFSET 6 + +#define CALLER_INF_STATUS_H 54 +#define CALLER_INF_ID_SIZE 138 +#define CALLER_INF_MAIN_TEXT_H 76 + +#define CALLER_INF_L (CALLER_INF_L_OFFSET / CALLER_INF_LAYOUT_W) + +#define CALLER_INF_STATUS_T (CALLER_INF_T_OFFSET / CALLER_INF_LAYOUT_H) +#define CALLER_INF_STATUS_R ((CALLER_INF_L_OFFSET + CALLER_INF_ID_SIZE + CALLER_INF_TEXT_L_OFFSET) / CALLER_INF_LAYOUT_W) +#define CALLER_INF_STATUS_B ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H) / CALLER_INF_LAYOUT_H) + +#define CALLER_INF_ID_T ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H + CALLER_INF_ID_T_OFFSET) / CALLER_INF_LAYOUT_H) +#define CALLER_INF_ID_R ((CALLER_INF_L_OFFSET + CALLER_INF_ID_SIZE) / CALLER_INF_LAYOUT_W) +#define CALLER_INF_ID_B ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H + CALLER_INF_ID_SIZE) / CALLER_INF_LAYOUT_H) + +#define CALLER_INF_TEXT_L ((CALLER_INF_L + CALLER_INF_ID_SIZE + CALLER_INF_TEXT_L_OFFSET) / CALLER_INF_LAYOUT_W) +#define CALLER_INF_SUBTEXT_T ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H + CALLER_INF_ID_T_OFFSET + CALLER_INF_MAIN_TEXT_H + CALLER_INF_SUBTEXT_T_OFFSET) / CALLER_INF_LAYOUT_H) + +//Merge and swap buttons +#define MERGE_SWAP_BTN_W 350 +#define MERGE_SWAP_BTN_H 122 + +#define MERGE_SWAP_BTN_T HOLD_LAYOUT_B +#define MERGE_SWAP_BTN_B (MERGE_SWAP_BTN_T + (MERGE_SWAP_BTN_H / ONE_HOLD_H)) + +#define MERGE_BTN_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET) +#define MERGE_BTN_R REL_HD_W(CALLER_INF_LAYOUT_OFFSET + MERGE_SWAP_BTN_W) + +#define SWAP_BTN_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET + MERGE_SWAP_BTN_W) +#define SWAP_BTN_R (1- REL_HD_W(CALLER_INF_LAYOUT_OFFSET)) + +//Merge and swap buttons content +#define MS_BTN_ICON_T_OFFSET 10 + +#define MS_BTN_ICON_W 54 +#define MS_BTN_ICON_H 48 + +#define MS_BTN_ICON_L (((MERGE_SWAP_BTN_W / 2) - (MS_BTN_ICON_W / 2)) / MERGE_SWAP_BTN_W) +#define MS_BTN_ICON_T (MS_BTN_ICON_T_OFFSET / MERGE_SWAP_BTN_H) +#define MS_BTN_ICON_R (((MERGE_SWAP_BTN_W / 2) + (MS_BTN_ICON_W / 2)) / MERGE_SWAP_BTN_W) +#define MS_BTN_ICON_B ((MS_BTN_ICON_T_OFFSET + MS_BTN_ICON_H) / MERGE_SWAP_BTN_H) + +#define MS_BTN_TEXT_B ((MERGE_SWAP_BTN_H - MS_BTN_ICON_T_OFFSET) / MERGE_SWAP_BTN_H) + +//Active Info +#define ACTIVE_INFO_LAYOUT_T_OFFSET 8 + +#define ACTIVE_INFO_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET) +#define ACTIVE_INFO_T (MERGE_SWAP_BTN_B + (ACTIVE_INFO_LAYOUT_T_OFFSET / ONE_HOLD_H)) +#define ACTIVE_INFO_R (1 - REL_HD_W(CALLER_INF_LAYOUT_OFFSET)) +#define ACTIVE_INFO_B (ACTIVE_INFO_T + (CALLER_INF_LAYOUT_H / ONE_HOLD_H)) + +//Arrow +#define ARROW_R_OFFSET 12 +#define ARROW_B_OFFSET 68 + +#define ARROW_SIZE 50 + +#define ARROW_L (1 - ((ARROW_SIZE + ARROW_R_OFFSET) / CALLER_INF_LAYOUT_W)) +#define ARROW_T (1 - ((ARROW_SIZE + ARROW_B_OFFSET) / CALLER_INF_LAYOUT_H)) +#define ARROW_R (1 - (ARROW_R_OFFSET / CALLER_INF_LAYOUT_W)) +#define ARROW_B (1 - (ARROW_B_OFFSET / CALLER_INF_LAYOUT_H)) + +//Six button +#define SIX_BUTTON_LAYOUT_H 376 + +#define SIX_BUTTON_LAYOUT_T (ONE_HOLD_B) +#define SIX_BUTTON_LAYOUT_B (SIX_BUTTON_LAYOUT_T + REL_HD_H(SIX_BUTTON_LAYOUT_H)) + +//Action panel +#define ACTION_PANEL_H 152 + +//End button +#define END_BUTTON_SIZE 104 +#define END_BUTTON_X_OFFSET 308 +#define END_BUTTON_Y_OFFSET ((ACTION_PANEL_H - END_BUTTON_SIZE) / 2) + +#define END_BUTTON_L REL_HD_W(END_BUTTON_X_OFFSET) +#define END_BUTTON_T (END_BUTTON_Y_OFFSET / ACTION_PANEL_H) +#define END_BUTTON_R (1 - REL_HD_W(END_BUTTON_X_OFFSET)) +#define END_BUTTON_B (1 - (END_BUTTON_Y_OFFSET / ACTION_PANEL_H)) + +#endif //_CALLUI_CALLER_INFO_METRIC_H_ diff --git a/include/callui-view-circle.h b/include/callui-view-circle.h new file mode 100755 index 0000000..ca3cac7 --- /dev/null +++ b/include/callui-view-circle.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_ONECALL_CIRCLE_VIEW_H_ +#define __CALLUI_ONECALL_CIRCLE_VIEW_H_ + +#include "callui.h" + +void _callui_view_circle_accept_reject_reset(void *data); +Evas_Object *_callui_view_circle_create_reject_layout(callui_app_data_t *ad, void *data); +Evas_Object *_callui_view_circle_create_accept_layout(callui_app_data_t *ad, void *data); +Eina_Bool _callui_view_circle_easy_touch_state(void); + +#endif diff --git a/include/callui-view-dialing.h b/include/callui-view-dialing.h new file mode 100644 index 0000000..c85335b --- /dev/null +++ b/include/callui-view-dialing.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_DIALING_VIEW_H_ +#define __CALLUI_DIALING_VIEW_H_ + +#include "callui.h" +#include "callui-view-manager.h" + +typedef struct callui_view_dialing_priv callui_view_dialing_priv_t; + +call_view_data_t *_callui_dialing_view_dialing_new(callui_app_data_t *ad); + +#endif //__CALLUI_DIALING_VIEW_H_ diff --git a/include/callui-view-elements-defines.h b/include/callui-view-elements-defines.h new file mode 100644 index 0000000..0966380 --- /dev/null +++ b/include/callui-view-elements-defines.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef _CALLUI_VIEW_ELEMENTS_DEFINES_H_ +#define _CALLUI_VIEW_ELEMENTS_DEFINES_H_ + +//groups +#define GROUP_THUMBNAIL_98 "thumbnail_98" +#define GROUP_THUMBNAIL_186 "thumbnail_186" + +#define GROUP_DEFAULT_THUMBNAIL_98 "default_thumbnail_98" +#define GROUP_DEFAULT_THUMBNAIL_186 "default_thumbnail_186" +#define GROUP_DEFAULT_CONFERENCE_THUMBNAIL_186 "default_conference_thumbnail_186" + +//parts +#define PART_SWALLOW_IMAGE "swallow.image" + +#define GROUP_CALL_BTN_IC_SPLIT "call_btn_ic_split" +#define GROUP_CALL_BTN_IC_END "call_btn_ic_end" + +#define CALL_BTN_IC_BG_SIZE 98 +#define CALL_BTN_IC_SIZE 64 + +#endif //_CALLUI_VIEW_ELEMENTS_DEFINES_H_ + diff --git a/include/callui-view-elements.h b/include/callui-view-elements.h new file mode 100644 index 0000000..41edc61 --- /dev/null +++ b/include/callui-view-elements.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_VIEW_ELEMENTS_H_ +#define __CALLUI_VIEW_ELEMENTS_H_ + +#include +#include "callui.h" +#include "callui-view-elements-defines.h" + +#define CALLUI_END_TYPE_KEY "END_TYPE" +#define CALLUI_END_TYPE_SINGLE_CALL_END "SINGLE_CALL_END" +#define CALLUI_END_TYPE_CONF_CALL_END "CONF_CALL_END" + +typedef enum { + THUMBNAIL_98, + THUMBNAIL_186, + CONFERENCE_THUMBNAIL_186 +} thumbnail_type; + +Evas_Object *_callui_load_edj(Evas_Object *parent, const char *file, const char *group); +Evas_Object *_callui_edje_object_part_get(Evas_Object *parent, const char *part); +Evas_Object *_callui_create_top_first_button(callui_app_data_t *ad); +Evas_Object *_callui_create_top_first_button_disabled(callui_app_data_t *ad); +Evas_Object *_callui_create_top_second_button(callui_app_data_t *ad); +Evas_Object *_callui_create_top_second_button_disabled(callui_app_data_t *ad); +Evas_Object *_callui_create_top_third_button(callui_app_data_t *ad); +Evas_Object *_callui_create_top_third_button_disabled(callui_app_data_t *ad); +Evas_Object *_callui_create_bottom_first_button(callui_app_data_t *ad); +Evas_Object *_callui_create_bottom_first_button_disabled(callui_app_data_t *ad); +Evas_Object *_callui_create_bottom_second_button(callui_app_data_t *ad); +Evas_Object *_callui_create_bottom_second_button_disabled(callui_app_data_t *ad); +Evas_Object *_callui_create_bottom_third_button(callui_app_data_t *ad); +Evas_Object *_callui_create_bottom_third_button_disabled(callui_app_data_t *ad); + +Evas_Object *_callui_create_end_call_button(Evas_Object *parent, void *data); +void _callui_destroy_end_call_button(Evas_Object *parent); +Evas_Object *_callui_create_voicecall_button_disabled(void *data); +Evas_Object *_callui_create_message_button_disabled(void *data); +Evas_Object *_callui_create_view_contact_button(void *data, int ct_id); +Evas_Object *_callui_create_create_contacts_button(void *data, char *number); +Evas_Object *_callui_create_update_existing_contact_button(void *data, char *number); +Evas_Object *_callui_create_voicecall_button(void *data, char *number); +Evas_Object *_callui_create_message_button(void *data, char *number); +Evas_Object *_callui_create_thumbnail(Evas_Object *parent, const char *path, thumbnail_type type); +Evas_Object *_callui_create_thumbnail_with_size(Evas_Object *parent, const char *path, thumbnail_type type, bool set_size); +void _callui_show_caller_info_name(void *data, const char *name, Eina_Bool bhold); +void _callui_show_caller_info_number(void *data, const char *number, Eina_Bool bhold); +Evas_Object *_callui_show_caller_info_status(void *data, const char *status, Eina_Bool bhold); +Evas_Object *_callui_show_caller_id(Evas_Object *contents, char *path, bool is_ending_view); +Evas_Object *_callui_view_create_focus_layout(Evas_Object *parent); +void _callui_load_more_option(void *data); +int _callui_set_object_data(Evas_Object *obj, char *key, void *value); +void *_callui_get_object_data(Evas_Object *obj, char *key); +void _callui_load_second_call_popup(callui_app_data_t *ad); +void _callui_load_bluetooth_popup(callui_app_data_t *ad); +void _callui_create_extravolume_notify_popup(void); +void _callui_create_toast_message(char *string); +void _callui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info); +void _callui_update_speaker_btn(callui_app_data_t *ad, Eina_Bool is_on); +void _callui_update_headset_btn(callui_app_data_t *ad, Eina_Bool is_on); +void _callui_update_mute_btn(callui_app_data_t *ad, Eina_Bool is_on); +void _callui_update_extra_vol_btn(callui_app_data_t *ad, Eina_Bool is_on); +#endif //__CALLUI_VIEW_ELEMENTS_H_ diff --git a/include/callui-view-incoming-call.h b/include/callui-view-incoming-call.h new file mode 100644 index 0000000..9d88a50 --- /dev/null +++ b/include/callui-view-incoming-call.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_VIEW_INCOMING_CALL_H_ +#define __CALLUI_VIEW_INCOMING_CALL_H_ + +#include "callui-view-manager.h" +#include "callui.h" + +/** + * @brief Draw screen for incoming call + * @param[in] ad Call ui app data + * @param[in] vd Call view data + */ +void _callui_view_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd); + +/** + * @brief Create layout for incoming call + * @param[in] vd Call view data + * @param[in] appdata app data + */ +int _callui_view_incoming_call_oncreate(call_view_data_t *view_data, void *appdata); + +/** + * @brief On destroy + * @param[in] data app data + */ +void _callui_view_incoming_call_ondestroy(void *data); + +#endif /* __CALLUI_VIEW_INCOMING_CALL_H_ */ diff --git a/include/callui-view-incoming-lock.h b/include/callui-view-incoming-lock.h new file mode 100644 index 0000000..ad305c9 --- /dev/null +++ b/include/callui-view-incoming-lock.h @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_INCOMINGLOCK_VIEW_H_ +#define __CALLUI_INCOMINGLOCK_VIEW_H_ + +#include "callui-view-manager.h" +#include "callui.h" + +call_view_data_t *_callui_view_incoming_lock_new(callui_app_data_t *ad); +void _callui_view_incoming_lock_set_accept_layout(call_view_data_t *vd, Evas_Object *layout); +Evas_Object *_callui_view_incoming_lock_get_accept_layout(call_view_data_t *vd); +Evas_Object *_callui_view_incoming_lock_get_reject_layout(call_view_data_t *vd); +void _callui_view_incoming_lock_set_reject_layout(call_view_data_t *vd, Evas_Object *layout); + +/** + * @brief Create call setting handler + * @param[in] data app data + */ +void _callui_view_incoming_lock_reject_msg_create_call_setting_handle(void *data); + +/** + * @brief Send reject message + * @param[in] data app data + * @param[in] call_data call data + */ +void _callui_view_incoming_lock_view_send_reject_msg(void *data, call_data_t *call_data); + +/** + * @brief Create item class + * @return Elm_Genlist_Item_Class + */ +Elm_Genlist_Item_Class * _callui_view_incoming_lock_create_item_class(); + +/** + * @brief Create reject message button + * @param[in] parent Parent object + * @param[in] part part to set button + * @param[in] data data + */ +void _callui_view_incoming_lock_create_reject_msg_button(Evas_Object *parent, char *part, void *data); + +/** + * @brief Append item to genlist + * @param[in] msg_glist Message genlist + * @param[in] itc_reject_msg Elm_Genlist_Item_Class + * @param[in] index item index + * @return item + */ +Elm_Object_Item *_callui_view_incoming_lock_append_genlist_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index); + +#define CALLUI_REJECT_MSG_LENGTH_MAX (210+1) +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *dimming_ly; + + Evas_Object *lock_accept; + Evas_Object *lock_reject; + + Evas_Object *ic; + Evas_Object *lock_reject_with_msg; + Evas_Object *reject_msg_gl; + Evas_Object *msg_glist; + + int reject_with_msg_start_y; + int reject_with_msg_cur_y; + + int msg_list_height; + + gboolean bmouse_down_pressed; + + void *dl_handle; + + Elm_Genlist_Item_Class *itc_reject_msg; + Evas_Coord y_momentum; + char *(*msg_func_ptr) (); + char reject_msg[CALLUI_REJECT_MSG_LENGTH_MAX]; + +} incoming_lock_view_priv_t; + +#endif //__CALLUI_INCOMINGLOCK_VIEW_H_ diff --git a/include/callui-view-layout-hd.h b/include/callui-view-layout-hd.h new file mode 100644 index 0000000..e152fb1 --- /dev/null +++ b/include/callui-view-layout-hd.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef _CALLUI_VIEW_LAYOUT_HD_H_ +#define _CALLUI_VIEW_LAYOUT_HD_H_ + +#define TOTAL_W 720 +#define TOTAL_H 1280 + +#define REL_HD_W(x) ((x)/TOTAL_W) +#define REL_HD_H(y) ((y)/TOTAL_H) + +#define INDICATOR_H 58 + +#define KEYPAD_H 528 +#define KEYPAD_AREA_H (TOTAL_H - ENDCALL_BTN_BG_H) +#define KEYPAD_ARROW_BTN_BG_H 67 +#define KEYPAD_BTN_ICON_W 108 +#define KEYPAD_BTN_NUMBER_H 71 +#define KEYPAD_BTN_LETTERS_H 36 +#define KEYPAD_DIVIDER_SIZE 2 +#define KEYPAD_EACH_BTN_W 239 +#define KEYPAD_EACH_BTN_H 130 + +#define ENDCALL_BTN_BG_H 108*1280/800 + +#define KEYPAD_BTN_OFFSET_X 65 +#define KEYPAD_BTN_OFFSET_Y 12 + +//Manage button +#define MANAGE_BTN_SIZE 50 +#define MANAGE_BTN_R_OFFSET 22 +#define MANAGE_BTN_B_OFFSET 160 + +#define MANAGE_BTN_L (1 - REL_HD_W(MANAGE_BTN_SIZE + MANAGE_BTN_R_OFFSET)) +#define MANAGE_BTN_T (1 - REL_HD_H(MANAGE_BTN_SIZE + MANAGE_BTN_B_OFFSET)) +#define MANAGE_BTN_R (1 - REL_HD_W(MANAGE_BTN_R_OFFSET)) +#define MANAGE_BTN_B (1 - REL_HD_H(MANAGE_BTN_B_OFFSET)) + +//Back button +#define BACK_BTN_SIZE 496 + +#define BACK_BTN_L ((1 - REL_HD_W(BACK_BTN_SIZE))/2) +#define BACK_BTN_R (1 - BACK_BTN_L) + +#include "callui-view-caller-info-metric.h" + +#endif /* _CALLUI_VIEW_LAYOUT_HD_H_ */ diff --git a/include/callui-view-layout-wvga.h b/include/callui-view-layout-wvga.h new file mode 100755 index 0000000..b04c832 --- /dev/null +++ b/include/callui-view-layout-wvga.h @@ -0,0 +1,1096 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef _CALLUI_VIEW_LAYOUT_WVGA_H_ +#define _CALLUI_VIEW_LAYOUT_WVGA_H_ + +#define COLOR_DEFAULT 0 0 0 255 +#define COLOR_BG_ALPHA 0 0 0 0 +#define COLOR_BG_FOR_HELD_CALL_DIM 0 0 0 150 + +#define VC_FONT_BOLD "Tizen:style=Bold" +#define VC_FONT_MEDIUM "Tizen:style=Medium" +#define VC_FONT_ROMAN "Tizen:style=Roman" +#define VC_FONT_LIGHT "Tizen:style=Light" +#define VC_FONT_REGULAR "Tizen:style=Regular" + +#define VC_TEXT_CLASS_BOLD "tizen" +#define VC_TEXT_CLASS_MEDIUM "tizen" +#define VC_TEXT_CLASS_ROMAN "tizen" +#define VC_TEXT_CLASS_LIGHT "tizen" +#define VC_TEXT_CLASS_REGULAR "tizen" + +/* + * NBEAT-HD GUI Widget Dimensions + * In Portrait mode + */ +#define MAIN_SCREEN_W 480 +#define MAIN_SCREEN_H 800 +#define MAIN_SCREEN_BIG_H 1280 +#define MAIN_SCREEN_BIG_W 720 +#define INDICATOR_HEIGHT 36 + +#define MAIN_LAYOUT_W MAIN_SCREEN_W +#define MAIN_LAYOUT_H MAIN_SCREEN_H + +#define QP_WIN_W MAIN_SCREEN_W +#define QP_WIN_H 208 + +/* Need to be checked */ +#define CALLER_INFO_NAME_DEFAULT_FONT_SIZE 12 +#define CALLER_INFO_NAME_MIN_FONT_SIZE 12 +#define CALLER_INFO_NAME_MAX_FONT_SIZE 15 + +#define NORMAL_HOLD_FONT_SIZE 36 +#define DISABLED_HOLD_FONT_SIZE NORMAL_HOLD_FONT_SIZE +#define NORMAL_UNHOLD_FONT_SIZE NORMAL_HOLD_FONT_SIZE +#define DISABLED_UNHOLD_FONT_SIZE NORMAL_HOLD_FONT_SIZE +#define NORMAL_SWAP_FONT_SIZE NORMAL_HOLD_FONT_SIZE +#define DISABLED_SWAP_FONT_SIZE NORMAL_HOLD_FONT_SIZE +/***************************/ + +#define CALLER_INFO_L_PAD 0 +#define CALLER_INFO_WIDTH MAIN_SCREEN_W +#define CALLER_INFO_T_PAD 0 +#define CALLER_INFO_HEIGHT (398+INDICATOR_HEIGHT) + +#define CALLER_INFO_MAIN_WIDTH 450 + +#define CALLER_INFO_STATUS_L_PAD 15 +#define CALLER_INFO_STATUS_T_PAD (INDICATOR_HEIGHT+24) +#define CALLER_INFO_STATUS_WIDTH CALLER_INFO_MAIN_WIDTH +#define CALLER_INFO_STATUS_HEIGHT 30 + +#define CALL_STATUS_MAX_TEXT_WIDTH 290 +#define TXT_TIMER_MAX_TEXT_WIDTH 100 + +#define VC_CALLER_ID_LAYOUT_L_PAD CALLER_INFO_STATUS_L_PAD +#define VC_CALLER_ID_LAYOUT_WIDTH CALLER_INFO_MAIN_WIDTH +#define VC_CALLER_ID_LAYOUT_T_PAD (CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT+24) +#define VC_CALLER_ID_LAYOUT_HEIGHT 186 +#define VC_CALLER_ID_WIDTH 186 +#define VC_CALLER_ID_HEIGHT 186 + +#define CALLER_INFO_NAME_L_PAD CALLER_INFO_STATUS_L_PAD +#define CALLER_INFO_NAME_WIDTH CALLER_INFO_MAIN_WIDTH +#define CALLER_INFO_NAME_T_PAD (VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+10) +#define CALLER_INFO_NAME_HEIGHT 57 +#define CALLER_INFO_EMERGENCY_HEIGHT 86 + +#define CALLER_INFO_NAME_1LINE_T_PAD (VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+9) +#define CALLER_INFO_NAME_1LINE_HEIGHT 100 + +#define CALLER_INFO_NUMBER_L_PAD CALLER_INFO_NAME_L_PAD +#define CALLER_INFO_NUMBER_WIDTH CALLER_INFO_MAIN_WIDTH +#define CALLER_INFO_NUMBER_T_PAD (CALLER_INFO_NAME_T_PAD+CALLER_INFO_NAME_HEIGHT+8) +#define CALLER_INFO_NUMBER_HEIGHT 36 + +#define CALLER_INFO_CARRIER_L_PAD CALLER_INFO_STATUS_L_PAD +#define CALLER_INFO_CARRIER_WIDTH 76 +#define CALLER_INFO_CARRIER_T_PAD (INDICATOR_HEIGHT+66) +#define CALLER_INFO_CARRIER_HEIGHT 28 + + +#define CALLER_INFO_MIN_WIDTH 50 + +#define ENDCALL_BTN_BG_WIDTH MAIN_SCREEN_W +#define ENDCALL_BTN_BG_HEIGHT 106 +#define ENDCALL_BTN_BG_L_PAD 0 +#define ENDCALL_BTN_BG_T_PAD MAIN_LAYOUT_H-ENDCALL_BTN_BG_HEIGHT + +#define STYLE_ICN_T_PAD 21 +#define STYLE_ICN_B 67 +#define STYLE_TXT_T_PAD 79 +#define STYLE_TXT_B 109 +#define STYLE_TXT_L_PAD 10 +#define STYLE_TXT_R 150 +#define STYLE_TXT_WIDTH 140 +#define STYLE_TXT_HEIGHT 30 +#define STYLE_ONOFF_BAR_T_PAD 114 +#define STYLE_ONOFF_BAR_B 120 +#define STYLE_ONOFF_BAR_L_PAD 13 +#define STYLE_ONOFF_BAR_R 147 + + + +#ifdef _VC_ANSWERING_MEMO +#define VC_ANSWERING_INFO_L_PAD 0 +#define VC_ANSWERING_INFO_WIDTH MAIN_SCREEN_W +#define VC_ANSWERING_INFO_T_PAD 630 +#define VC_ANSWERING_INFO_HEIGHT 50 +#endif /* _VC_ANSWERING_MEMO */ + +#define MTLOCK_CALL_ICON_W 94 +#define MTLOCK_CALL_ICON_H 94 + +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD (-102) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH 376 +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD (CALLER_INFO_HEIGHT-30) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT 376 + +#define MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD 32 +#define MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH 109 +#define MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD (INDICATOR_HEIGHT+502) +#define MTLOCK_ACCEPT_INNER_CIRCLE_HEIGHT 109 + +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD 32 +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH 273 +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT 109 + +#define MTLOCK_ACCEPT_CIRCLE_ARROW_GAP 4 + +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_WIDTH 8 +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD+28 +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_HEIGHT 44 + +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_L_PAD MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD-MTLOCK_ACCEPT_CIRCLE_ARROW_GAP-MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH MTLOCK_ACCEPT_CIRCLE_ARROW2_WIDTH +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_HEIGHT MTLOCK_ACCEPT_CIRCLE_ARROW2_HEIGHT + +#define MTLOCK_ACCEPT_ARROW1_L_PAD 160 +#define MTLOCK_ACCEPT_ARROW1_WIDTH 12 +#define MTLOCK_ACCEPT_ARROW1_T_PAD (MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD+33) +#define MTLOCK_ACCEPT_ARROW1_HEIGHT 19 + +#define MTLOCK_ACCEPT_ARROW2_L_PAD (MTLOCK_ACCEPT_ARROW1_L_PAD+MTLOCK_ACCEPT_ARROW1_WIDTH+17) +#define MTLOCK_ACCEPT_ARROW2_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH +#define MTLOCK_ACCEPT_ARROW2_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD +#define MTLOCK_ACCEPT_ARROW2_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_ACCEPT_ARROW3_L_PAD (MTLOCK_ACCEPT_ARROW2_L_PAD+MTLOCK_ACCEPT_ARROW2_WIDTH+17) +#define MTLOCK_ACCEPT_ARROW3_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH +#define MTLOCK_ACCEPT_ARROW3_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD +#define MTLOCK_ACCEPT_ARROW3_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_ACCEPT_ARROW4_L_PAD (MTLOCK_ACCEPT_ARROW3_L_PAD+MTLOCK_ACCEPT_ARROW3_WIDTH+17) +#define MTLOCK_ACCEPT_ARROW4_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH +#define MTLOCK_ACCEPT_ARROW4_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD +#define MTLOCK_ACCEPT_ARROW4_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD 206 +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_WIDTH MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_HEIGHT MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT + +#define MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD MAIN_SCREEN_W-MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD-MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH +#define MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH +#define MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD +#define MTLOCK_REJECT_INNER_CIRCLE_BG_HEIGHT MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT + +#define MTLOCK_REJECT_INNER_CIRCLE_L_PAD 339 +#define MTLOCK_REJECT_INNER_CIRCLE_WIDTH MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH +#define MTLOCK_REJECT_INNER_CIRCLE_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD +#define MTLOCK_REJECT_INNER_CIRCLE_HEIGHT MTLOCK_ACCEPT_INNER_CIRCLE_HEIGHT + +#define MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD MTLOCK_REJECT_INNER_CIRCLE_L_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW_GAP +#define MTLOCK_REJECT_CIRCLE_ARROW2_WIDTH MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH +#define MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD +#define MTLOCK_REJECT_CIRCLE_ARROW2_HEIGHT MTLOCK_ACCEPT_CIRCLE_ARROW1_HEIGHT + +#define MTLOCK_REJECT_CIRCLE_ARROW1_L_PAD MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD-MTLOCK_ACCEPT_CIRCLE_ARROW_GAP-MTLOCK_REJECT_CIRCLE_ARROW1_WIDTH +#define MTLOCK_REJECT_CIRCLE_ARROW1_WIDTH MTLOCK_REJECT_CIRCLE_ARROW2_WIDTH +#define MTLOCK_REJECT_CIRCLE_ARROW1_T_PAD MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD +#define MTLOCK_REJECT_CIRCLE_ARROW1_HEIGHT MTLOCK_REJECT_CIRCLE_ARROW2_HEIGHT + +#define MTLOCK_REJECT_ARROW1_L_PAD (MTLOCK_REJECT_ARROW2_L_PAD-17-MTLOCK_REJECT_ARROW1_WIDTH) +#define MTLOCK_REJECT_ARROW1_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH +#define MTLOCK_REJECT_ARROW1_T_PAD (MTLOCK_REJECT_INNER_CIRCLE_T_PAD+68) +#define MTLOCK_REJECT_ARROW1_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_ARROW2_L_PAD (MTLOCK_REJECT_ARROW3_L_PAD-17-MTLOCK_REJECT_ARROW2_WIDTH) +#define MTLOCK_REJECT_ARROW2_WIDTH MTLOCK_REJECT_ARROW1_WIDTH +#define MTLOCK_REJECT_ARROW2_T_PAD MTLOCK_REJECT_ARROW1_T_PAD +#define MTLOCK_REJECT_ARROW2_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_ARROW3_L_PAD (MTLOCK_REJECT_ARROW4_L_PAD-17-MTLOCK_REJECT_ARROW3_WIDTH) +#define MTLOCK_REJECT_ARROW3_WIDTH MTLOCK_REJECT_ARROW1_WIDTH +#define MTLOCK_REJECT_ARROW3_T_PAD MTLOCK_REJECT_ARROW1_T_PAD +#define MTLOCK_REJECT_ARROW3_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_ARROW4_WIDTH MTLOCK_REJECT_ARROW1_WIDTH +#define MTLOCK_REJECT_ARROW4_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT +#define MTLOCK_REJECT_ARROW4_L_PAD (MTLOCK_REJECT_INNER_CIRCLE_L_PAD-13-MTLOCK_REJECT_ARROW4_WIDTH) +#define MTLOCK_REJECT_ARROW4_T_PAD MTLOCK_REJECT_ARROW1_T_PAD + +#define MTLOCK_REJECT_MSG_BG_L_PAD 0 +#define MTLOCK_REJECT_MSG_BG_WIDTH MAIN_SCREEN_W +#define MTLOCK_REJECT_MSG_BG_HEIGHT 51 +#define MTLOCK_REJECT_MSG_BG_T_PAD (MAIN_SCREEN_H-MTLOCK_REJECT_MSG_BG_HEIGHT) + +#define MTLOCK_REJECT_MSG_ARW_L_PAD 225 +#define MTLOCK_REJECT_MSG_ARW_WIDTH 29 +#define MTLOCK_REJECT_MSG_ARW_HEIGHT 13 +#define MTLOCK_REJECT_MSG_ARW_T_PAD (MTLOCK_REJECT_MSG_BG_T_PAD-MTLOCK_REJECT_MSG_ARW_HEIGHT) + +#define MTLOCK_REJECT_MSG_DOWN_ARW_T_PAD MAIN_SCREEN_H + +#define MTLOCK_REJECT_MSG_TEXT_L_PAD 0 +#define MTLOCK_REJECT_MSG_TEXT_WIDTH MAIN_SCREEN_W +#define MTLOCK_REJECT_MSG_TEXT_T_PAD MTLOCK_REJECT_MSG_BG_T_PAD +#define MTLOCK_REJECT_MSG_TEXT_HEIGHT 51 + +#define MTLOCK_REJECT_MSG_TOP_VISIBLE_AREA_W (MTLOCK_REJECT_MSG_TEXT_HEIGHT+MTLOCK_REJECT_MSG_ARW_HEIGHT) + +#define MTLOCK_ACTIVE_CALL_HEIGHT 360 + +#define ITEM_SIZE_H 120 + +#define REJ_MSG_LIST_W MAIN_SCREEN_W +#define REJ_MSG_LIST_CREATE_MSG_BTN_H 150 +#define REJ_MSG_LIST_CREATE_MSG_BTN_L_PAD 15 +#define REJ_MSG_LIST_CREATE_MSG_BTN_R_PAD REJ_MSG_LIST_CREATE_MSG_BTN_L_PAD +#define REJ_MSG_LIST_CREATE_MSG_BTN_T_PAD 17 +#define REJ_MSG_LIST_CREATE_MSG_BTN_B_PAD REJ_MSG_LIST_CREATE_MSG_BTN_T_PAD + +#define MTLOCK_REJECT_MSG_LIST_L_PAD 0 +#define MTLOCK_REJECT_MSG_LIST_WIDTH MAIN_SCREEN_W +#define MTLOCK_REJECT_MSG_LIST_T_PAD (MAIN_SCREEN_H+MTLOCK_REJECT_MSG_ARW_HEIGHT) +#define MTLOCK_REJECT_MSG_LIST_1ITEM_HEIGHT 86 +#define MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT 120 +#define MTLOCK_REJECT_MSG_LIST_HEIGHT (MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT*6) + +/*Need to be fixed as Phone GUI guide*/ +#define KEYPAD_ENTRY_TXT_L_PAD 15 +#define KEYPAD_ENTRY_TXT_WIDTH 450 +#define KEYPAD_ENTRY_TXT_T_PAD INDICATOR_HEIGHT +#define KEYPAD_ENTRY_TXT_HEIGHT (246) +/*****************************/ + +#define KEYPAD_AREA_HEIGHT (MAIN_SCREEN_H-ENDCALL_BTN_BG_HEIGHT) +#define KEYPAD_AREA_T_HIDE_PAD (MAIN_SCREEN_H-ENDCALL_BTN_BG_HEIGHT-KEYPAD_ENTRY_TXT_HEIGHT-INDICATOR_HEIGHT) + +#define RIGHT_TXT_WIDTH 61 + +#define MULTI_LIST_HEIGHT MAIN_LAYOUT_H + +#define SIX_BTN_LAYOUT_L_PAD 0 +#define SIX_BTN_LAYOUT_WIDTH MAIN_SCREEN_W +#define SIX_BTN_LAYOUT_T_PAD (399+INDICATOR_HEIGHT) +#define SIX_BTN_LAYOUT_HEIGHT 258 + +#define BOTTOM_BTN_BG_L_PAD 0 +#define BOTTOM_BTN_BG_WIDTH MAIN_SCREEN_W +#define BOTTOM_BTN_BG_T_PAD (CALLER_INFO_HEIGHT+SIX_BTN_LAYOUT_HEIGHT) +#define BOTTOM_BTN_BG_HEIGHT ENDCALL_BTN_BG_HEIGHT + +#define BTN_LAYOUT_SINGLE_BTN_WIDTH 160 +#define BTN_LAYOUT_SINGLE_BTN_HEIGHT 129 +#define BTN_LAYOUT_GAP 0 + +#define BTN_LAYOUT_TOP_FIRST_BTN_L_PAD 0 +#define BTN_LAYOUT_TOP_SECOND_BTN_L_PAD (BTN_LAYOUT_TOP_FIRST_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP) +#define BTN_LAYOUT_TOP_THIRD_BTN_L_PAD (BTN_LAYOUT_TOP_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP) + +#define BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD 0 +#define BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD (BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP) +#define BTN_LAYOUT_BOTTOM_THIRD_BTN_L_PAD (BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP) + +#define BTN_LAYOUT_TOP_BTNS_T_PAD BTN_LAYOUT_GAP +#define BTN_LAYOUT_BOTTOM_BTNS_T_PAD BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT+BTN_LAYOUT_GAP + +/*two-button*/ +#define ENDCALL_TWO_BTN_WIDTH MAIN_SCREEN_W +#define ENDCALL_TWO_BTN_HEIGHT 130 +#define ENDCALL_TWO_BTN_L_PAD 0 +#define ENDCALL_TWO_BTN_T_PAD (MAIN_LAYOUT_H-BOTTOM_BTN_BG_HEIGHT-ENDCALL_TWO_BTN_HEIGHT) +#define ENDCALL_TWO_BTN_R_PAD (ENDCALL_TWO_BTN_L_PAD+ENDCALL_TWO_BTN_WIDTH) +#define ENDCALL_TWO_BTN_B_PAD (ENDCALL_TWO_BTN_T_PAD+ENDCALL_TWO_BTN_HEIGHT) + +#define ENDCALL_VOICE_BTN_L_PAD 15 +#define ENDCALL_BTN_MID_PAD 10 +#define ENDCALL_VIDEO_BTN_L_PAD (ENDCALL_VOICE_BTN_L_PAD+ENDCALL_BTN_WIDTH+ENDCALL_BTN_MID_PAD) +#define ENDCALL_VOICE_BTN_WIDTH 298 +#define ENDCALL_BTN_WIDTH 142 +#define ENDCALL_3_BTN_MSG_BTN_L_PAD (ENDCALL_VOICE_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH+ENDCALL_BTN_MID_PAD) + +#define ENDCALL_VIEW_CONTACT_BTN_L_PAD 0 +#define ENDCALL_VIEW_CONTACT_BTN_WIDTH MAIN_SCREEN_W +#define ENDCALL_VIEW_CONTACT_BTN_T_PAD 0 +#define ENDCALL_VIEW_CONTACT_BTN_HEIGHT 130 + +#define ENDCALL_CREATE_CONTACT_BTN_L_PAD 0 +#define ENDCALL_CREATE_CONTACT_BTN_WIDTH 240 +#define ENDCALL_CREATE_CONTACT_BTN_T_PAD 0 +#define ENDCALL_CREATE_CONTACT_BTN_HEIGHT 130 + +#define ENDCALL_UPDATE_CONTACT_BTN_L_PAD ENDCALL_CREATE_CONTACT_BTN_WIDTH + +#define QP_TXT_AREA_L_PAD 15 +#define QP_TXT_AREA_WIDTH 450 +#define QP_TXT_AREA_T_PAD 14 +#define QP_TXT_AREA_HEIGHT 36 + +#define QP_TITLE_WIDTH 290 +#define QP_TITLE_HEIGHT 36 + +#define QP_TIME_WIDTH 160 +#define QP_TIME_HEIGHT QP_TITLE_HEIGHT + +#define QP_CALL_ICON_L_PAD 0 +#define QP_CALL_ICON_WIDTH 119 +#define QP_CALL_ICON_T_PAD 63 +#define QP_CALL_ICON_HEIGHT 77 + +#define QP_CONTENT_ICON_T_PAD 13 +#define QP_CONTENT_ICON_HEIGHT 50 + +#define QP_MUTE_BTN_L_PAD (QP_CALL_ICON_L_PAD+QP_CALL_ICON_WIDTH+1) +#define QP_MUTE_BTN_WIDTH QP_CALL_ICON_WIDTH +#define QP_MUTE_BTN_T_PAD QP_CALL_ICON_T_PAD +#define QP_MUTE_BTN_HEIGHT QP_CALL_ICON_HEIGHT + +#define QP_SPEAKER_BTN_L_PAD (QP_MUTE_BTN_L_PAD+QP_MUTE_BTN_WIDTH+1) +#define QP_SPEAKER_BTN_WIDTH QP_CALL_ICON_WIDTH +#define QP_SPEAKER_BTN_T_PAD QP_CALL_ICON_T_PAD +#define QP_SPEAKER_BTN_HEIGHT QP_CALL_ICON_HEIGHT + +#define QP_END_BTN_L_PAD (QP_SPEAKER_BTN_L_PAD+QP_SPEAKER_BTN_WIDTH+1) +#define QP_END_BTN_WIDTH 120 +#define QP_END_BTN_T_PAD QP_CALL_ICON_T_PAD +#define QP_END_BTN_HEIGHT QP_CALL_ICON_HEIGHT + +/* + * QUICK-PANEL layout + * In Portrait mode + */ +#define CALL_QUICKPANEL_TXT_AREA_L REL_QP_W(QP_TXT_AREA_L_PAD) +#define CALL_QUICKPANEL_TXT_AREA_R REL_QP_W(QP_TXT_AREA_L_PAD+QP_TXT_AREA_WIDTH) +#define CALL_QUICKPANEL_TXT_AREA_T REL_QP_H(QP_TXT_AREA_T_PAD) +#define CALL_QUICKPANEL_TXT_AREA_B REL_QP_H(QP_TXT_AREA_T_PAD+QP_TXT_AREA_HEIGHT) + +#define CALL_QUICKPANEL_CALL_ICON_T REL_QP_H(QP_CALL_ICON_T_PAD) +#define CALL_QUICKPANEL_CALL_ICON_B REL_QP_H(QP_CALL_ICON_T_PAD+QP_CALL_ICON_HEIGHT) + +#define CALL_QUICKPANEL_BTN_MUTE_T REL_QP_H(QP_MUTE_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_MUTE_B REL_QP_H(QP_MUTE_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_SPEAKER_T REL_QP_H(QP_SPEAKER_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_SPEAKER_B REL_QP_H(QP_SPEAKER_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_END_T REL_QP_H(QP_END_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_END_B REL_QP_H(QP_END_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_ICON_T REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD) +#define CALL_QUICKPANEL_BTN_ICON_B REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD+QP_CONTENT_ICON_HEIGHT) +/* + * End of QUICK-PANEL layout + */ + +///////quickpanel//// + +/* Volume Popup Layout */ +#define VOL_POPUP_PORTRAIT_H 102 +#define VOL_POPUP_PORTRAIT_W 480 + +/* + * End of NBEAT-HD GUI Widget Dimensions + */ + + +/* + * Relative positions + * In Portrait mode + */ +/* Relative X & Y positions of widgets w.r.t. Full Screen */ +#define REL_W(x) ((x)/MAIN_SCREEN_W) +#define REL_H(y) ((y)/MAIN_LAYOUT_H) + +/* Relative X & Y positions of widgets w.r.t. Quick-panel layout */ +#define REL_QP_W(x) ((x)/QP_WIN_W) +#define REL_QP_H(y) ((y)/QP_WIN_H) + +/* Relative X & Y positions of widgets w.r.t. Quick-panel button layout */ +#define REL_QP_BTN_W(x) ((x)/QP_CALL_ICON_WIDTH) +#define REL_QP_BTN_H(y) ((y)/QP_CALL_ICON_HEIGHT) + +/* Relative X & Y positions of buttons w.r.t. Six-Button layout - Portrait Mode */ +#define REL_BTN_LY_W(x) ((x)/SIX_BTN_LAYOUT_WIDTH) +#define REL_BTN_LY_H(y) ((y)/SIX_BTN_LAYOUT_HEIGHT) + +/* Relative X & Y positions of buttons w.r.t. Three-Button layout of ENDCALL*/ +#define REL_THREE_BTN_LY_W(x) ((x)/THREE_BTN_LAYOUT_WIDTH) +#define REL_THREE_BTN_LY_H(y) ((y)/THREE_BTN_LAYOUT_HEIGHT) + +/*Relative Y postions of elements w.r.t. Caller info layout*/ +#define REL_CALLER_INFO_H(y) ((y)/CALLER_INFO_HEIGHT) + +/*Relative Y postions of elements w.r.t. Multi list layout*/ +#define REL_MULTI_LIST_H(y) ((y)/MULTI_LIST_HEIGHT) + +#define REL_CONTACT_BTN_W(x) ((x)/MAIN_SCREEN_W) +#define REL_CONTACT_BTN_H(y) ((y)/ENDCALL_CREATE_CONTACT_BTN_HEIGHT) + +#define REL_REJECT_MSG_W(x) ((x)/MAIN_SCREEN_W) +#define REL_REJECT_MSG_H(y) ((y)/MAIN_SCREEN_H) + +#define REL_REJECT_MSG_SIZE_H(y) (1.0 + (y)/MAIN_SCREEN_BIG_H) + + +/* + * End of Relative positions + */ + + +/* + * MO/Dialing view & MT/Incoming view + * In Portrait mode + */ +#define BUTTON_REJECT_SIZE_H 78 +#define BUTTON_OFFSET_B 22 +#define BUTTON_OFFSET_T 20 +#define IMAGE_CLOSE 18 +#define IMAGE_OFFSET 12 +#define VC_CALLER_ID_LAYOUT_L REL_W(147) +#define VC_CALLER_ID_LAYOUT_R REL_W(147+186) +#define VC_CALLER_ID_LAYOUT_T REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD) +#define VC_CALLER_ID_LAYOUT_B REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT) + +#define VC_CALLER_ID_EFFECT_L REL_W(140) +#define VC_CALLER_ID_EFFECT_R REL_W(140+200) +#define VC_CALLER_ID_EFFECT_T REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD-7) +#define VC_CALLER_ID_EFFECT_B REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+7) + +#ifdef _VC_ANSWERING_MEMO +#define VC_ANSWERING_INFO_L REL_W(VC_ANSWERING_INFO_L_PAD) +#define VC_ANSWERING_INFO_R REL_W(VC_ANSWERING_INFO_L_PAD+VC_ANSWERING_INFO_WIDTH) +#define VC_ANSWERING_INFO_T REL_H(VC_ANSWERING_INFO_T_PAD) +#define VC_ANSWERING_INFO_B REL_H(VC_ANSWERING_INFO_T_PAD+VC_ANSWERING_INFO_HEIGHT) +#endif /* _VC_ANSWERING_MEMO */ + +/* + * End of MO/Dialing view & MT/Incoming view + */ + +/* + * MT LOCK View - check + * In Portrait mode + */ +#define MTLOCK_ACCEPT_CIRCLE_RECT_WIDTH MAIN_SCREEN_W +#define MTLOCK_ACCEPT_CIRCLE_RECT_HEIGHT 313 + +#define MTLOCK_ACCEPT_INNER_CIRCLE_L REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD) +#define MTLOCK_ACCEPT_INNER_CIRCLE_R REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH) +#define MTLOCK_ACCEPT_INNER_CIRCLE_T REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD) +#define MTLOCK_ACCEPT_INNER_CIRCLE_B REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_HEIGHT) + +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_L REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD) +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_R REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH) +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_T REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD) +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_B REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT) + +#define MTLOCK_ACCEPT_OUTER_CIRCLE_L REL_W(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_R REL_W(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD+MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_T REL_H(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_B REL_H(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD+MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_T REL_H(CALLER_INFO_HEIGHT) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_B REL_H(MAIN_LAYOUT_H-MTLOCK_REJECT_MSG_BG_HEIGHT) + + +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_L REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW1_L_PAD) +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_R REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW1_L_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH) +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_T REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD) +#define MTLOCK_ACCEPT_CIRCLE_ARROW1_B REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW1_HEIGHT) + +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_L REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD) +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_R REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW2_WIDTH) +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_T REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD) +#define MTLOCK_ACCEPT_CIRCLE_ARROW2_B REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW2_HEIGHT) + + + +#define MTLOCK_ACCEPT_ARROW1_L REL_W(MTLOCK_ACCEPT_ARROW1_L_PAD) +#define MTLOCK_ACCEPT_ARROW1_R REL_W(MTLOCK_ACCEPT_ARROW1_L_PAD+MTLOCK_ACCEPT_ARROW1_WIDTH) +#define MTLOCK_ACCEPT_ARROW1_T REL_H(MTLOCK_ACCEPT_ARROW1_T_PAD) +#define MTLOCK_ACCEPT_ARROW1_B REL_H(MTLOCK_ACCEPT_ARROW1_T_PAD+MTLOCK_ACCEPT_ARROW1_HEIGHT) + +#define MTLOCK_ACCEPT_ARROW2_L REL_W(MTLOCK_ACCEPT_ARROW2_L_PAD) +#define MTLOCK_ACCEPT_ARROW2_R REL_W(MTLOCK_ACCEPT_ARROW2_L_PAD+MTLOCK_ACCEPT_ARROW2_WIDTH) +#define MTLOCK_ACCEPT_ARROW2_T REL_H(MTLOCK_ACCEPT_ARROW2_T_PAD) +#define MTLOCK_ACCEPT_ARROW2_B REL_H(MTLOCK_ACCEPT_ARROW2_T_PAD+MTLOCK_ACCEPT_ARROW2_HEIGHT) + +#define MTLOCK_ACCEPT_ARROW3_L REL_W(MTLOCK_ACCEPT_ARROW3_L_PAD) +#define MTLOCK_ACCEPT_ARROW3_R REL_W(MTLOCK_ACCEPT_ARROW3_L_PAD+MTLOCK_ACCEPT_ARROW3_WIDTH) +#define MTLOCK_ACCEPT_ARROW3_T REL_H(MTLOCK_ACCEPT_ARROW3_T_PAD) +#define MTLOCK_ACCEPT_ARROW3_B REL_H(MTLOCK_ACCEPT_ARROW3_T_PAD+MTLOCK_ACCEPT_ARROW3_HEIGHT) + +#define MTLOCK_ACCEPT_ARROW4_L REL_W(MTLOCK_ACCEPT_ARROW4_L_PAD) +#define MTLOCK_ACCEPT_ARROW4_R REL_W(MTLOCK_ACCEPT_ARROW4_L_PAD+MTLOCK_ACCEPT_ARROW4_WIDTH) +#define MTLOCK_ACCEPT_ARROW4_T REL_H(MTLOCK_ACCEPT_ARROW4_T_PAD) +#define MTLOCK_ACCEPT_ARROW4_B REL_H(MTLOCK_ACCEPT_ARROW4_T_PAD+MTLOCK_ACCEPT_ARROW4_HEIGHT) + +#define MTLOCK_REJECT_INNER_CIRCLE_L REL_W(MTLOCK_REJECT_INNER_CIRCLE_L_PAD) +#define MTLOCK_REJECT_INNER_CIRCLE_R REL_W(MTLOCK_REJECT_INNER_CIRCLE_L_PAD+MTLOCK_REJECT_INNER_CIRCLE_WIDTH) +#define MTLOCK_REJECT_INNER_CIRCLE_T REL_H(MTLOCK_REJECT_INNER_CIRCLE_T_PAD) +#define MTLOCK_REJECT_INNER_CIRCLE_B REL_H(MTLOCK_REJECT_INNER_CIRCLE_T_PAD+MTLOCK_REJECT_INNER_CIRCLE_HEIGHT) + +#define MTLOCK_REJECT_INNER_CIRCLE_BG_L REL_W(MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD) +#define MTLOCK_REJECT_INNER_CIRCLE_BG_R REL_W(MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD+MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH) +#define MTLOCK_REJECT_INNER_CIRCLE_BG_T REL_H(MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD) +#define MTLOCK_REJECT_INNER_CIRCLE_BG_B REL_H(MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD+MTLOCK_REJECT_INNER_CIRCLE_BG_HEIGHT) + +#define MTLOCK_REJECT_OUTER_CIRCLE_L REL_W(MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD) +#define MTLOCK_REJECT_OUTER_CIRCLE_R REL_W(MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD+MTLOCK_REJECT_OUTER_CIRCLE_BG_WIDTH) +#define MTLOCK_REJECT_OUTER_CIRCLE_T REL_H(MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD) +#define MTLOCK_REJECT_OUTER_CIRCLE_B REL_H(MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD+MTLOCK_REJECT_OUTER_CIRCLE_BG_HEIGHT) +#define MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_T REL_H(CALLER_INFO_HEIGHT) +#define MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_B REL_H(MAIN_LAYOUT_H-MTLOCK_REJECT_MSG_BG_HEIGHT) + +#define MTLOCK_REJECT_CIRCLE_ARROW1_L REL_W(MTLOCK_REJECT_CIRCLE_ARROW1_L_PAD) +#define MTLOCK_REJECT_CIRCLE_ARROW1_R REL_W(MTLOCK_REJECT_CIRCLE_ARROW1_L_PAD+MTLOCK_REJECT_CIRCLE_ARROW1_WIDTH) +#define MTLOCK_REJECT_CIRCLE_ARROW1_T REL_H(MTLOCK_REJECT_CIRCLE_ARROW1_T_PAD) +#define MTLOCK_REJECT_CIRCLE_ARROW1_B REL_H(MTLOCK_REJECT_CIRCLE_ARROW1_T_PAD+MTLOCK_REJECT_CIRCLE_ARROW1_HEIGHT) + +#define MTLOCK_REJECT_CIRCLE_ARROW2_L REL_W(MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD) +#define MTLOCK_REJECT_CIRCLE_ARROW2_R REL_W(MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD+MTLOCK_REJECT_CIRCLE_ARROW2_WIDTH) +#define MTLOCK_REJECT_CIRCLE_ARROW2_T REL_H(MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD) +#define MTLOCK_REJECT_CIRCLE_ARROW2_B REL_H(MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD+MTLOCK_REJECT_CIRCLE_ARROW2_HEIGHT) + +#define MTLOCK_REJECT_ARROW1_L REL_W(MTLOCK_REJECT_ARROW1_L_PAD) +#define MTLOCK_REJECT_ARROW1_R REL_W(MTLOCK_REJECT_ARROW1_L_PAD+MTLOCK_REJECT_ARROW1_WIDTH) +#define MTLOCK_REJECT_ARROW1_T REL_H(MTLOCK_REJECT_ARROW1_T_PAD) +#define MTLOCK_REJECT_ARROW1_B REL_H(MTLOCK_REJECT_ARROW1_T_PAD+MTLOCK_REJECT_ARROW1_HEIGHT) + +#define MTLOCK_REJECT_ARROW2_L REL_W(MTLOCK_REJECT_ARROW2_L_PAD) +#define MTLOCK_REJECT_ARROW2_R REL_W(MTLOCK_REJECT_ARROW2_L_PAD+MTLOCK_REJECT_ARROW2_WIDTH) +#define MTLOCK_REJECT_ARROW2_T REL_H(MTLOCK_REJECT_ARROW2_T_PAD) +#define MTLOCK_REJECT_ARROW2_B REL_H(MTLOCK_REJECT_ARROW2_T_PAD+MTLOCK_REJECT_ARROW2_HEIGHT) + +#define MTLOCK_REJECT_ARROW3_L REL_W(MTLOCK_REJECT_ARROW3_L_PAD) +#define MTLOCK_REJECT_ARROW3_R REL_W(MTLOCK_REJECT_ARROW3_L_PAD+MTLOCK_REJECT_ARROW3_WIDTH) +#define MTLOCK_REJECT_ARROW3_T REL_H(MTLOCK_REJECT_ARROW3_T_PAD) +#define MTLOCK_REJECT_ARROW3_B REL_H(MTLOCK_REJECT_ARROW3_T_PAD+MTLOCK_REJECT_ARROW3_HEIGHT) + +#define MTLOCK_REJECT_ARROW4_L REL_W(MTLOCK_REJECT_ARROW4_L_PAD) +#define MTLOCK_REJECT_ARROW4_R REL_W(MTLOCK_REJECT_ARROW4_L_PAD+MTLOCK_REJECT_ARROW4_WIDTH) +#define MTLOCK_REJECT_ARROW4_T REL_H(MTLOCK_REJECT_ARROW4_T_PAD) +#define MTLOCK_REJECT_ARROW4_B REL_H(MTLOCK_REJECT_ARROW4_T_PAD+MTLOCK_REJECT_ARROW4_HEIGHT) + +#define MTLOCK_REJECT_MSG_BG_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_BG_L_PAD) +#define MTLOCK_REJECT_MSG_BG_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_BG_L_PAD+MTLOCK_REJECT_MSG_BG_WIDTH) +#define MTLOCK_REJECT_MSG_BG_T REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_BG_T_PAD) +#define MTLOCK_REJECT_MSG_BG_B REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_BG_T_PAD+MTLOCK_REJECT_MSG_BG_HEIGHT) + +#define MTLOCK_REJECT_MSG_ARW_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_ARW_L_PAD) +#define MTLOCK_REJECT_MSG_ARW_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_ARW_L_PAD+MTLOCK_REJECT_MSG_ARW_WIDTH) +#define MTLOCK_REJECT_MSG_ARW_T REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_ARW_T_PAD) +#define MTLOCK_REJECT_MSG_ARW_CLOSE_T 1.0 +#define MTLOCK_REJECT_MSG_ARW_B REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_ARW_T_PAD+MTLOCK_REJECT_MSG_ARW_HEIGHT) +#define MTLOCK_REJECT_MSG_ARW_CLOSE_B REL_REJECT_MSG_SIZE_H(IMAGE_CLOSE) + +#define MTLOCK_REJECT_MSG_TEXT_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_TEXT_L_PAD) +#define MTLOCK_REJECT_MSG_TEXT_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_TEXT_L_PAD+MTLOCK_REJECT_MSG_TEXT_WIDTH) +#define MTLOCK_REJECT_MSG_TEXT_T REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_TEXT_T_PAD) +#define MTLOCK_REJECT_MSG_TEXT_B REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_TEXT_T_PAD+MTLOCK_REJECT_MSG_TEXT_HEIGHT) + +#define MTLOCK_REJECT_MSG_LIST_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD) +#define MTLOCK_REJECT_MSG_LIST_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD+MTLOCK_REJECT_MSG_LIST_WIDTH) + +#define MTLOCK_REJECT_MSG_DOWN_ARROW_T (1.0 - (IMAGE_OFFSET/MAIN_SCREEN_BIG_H)) +#define MTLOCK_REJECT_MSG_DOWN_ARROW_B REL_REJECT_MSG_SIZE_H(IMAGE_CLOSE) + +#define MTLOCK_REJECT_MSG_BTN_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD) +#define MTLOCK_REJECT_MSG_BTN_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD+MTLOCK_REJECT_MSG_LIST_WIDTH) +#define MTLOCK_REJECT_MSG_BTN_T REL_REJECT_MSG_SIZE_H(IMAGE_CLOSE) +#define MTLOCK_REJECT_MSG_BTN_B REL_REJECT_MSG_SIZE_H(BUTTON_REJECT_SIZE_H + BUTTON_OFFSET_B + BUTTON_OFFSET_T + IMAGE_CLOSE) + +#define REJECT_MSG (BUTTON_REJECT_SIZE_H + BUTTON_OFFSET_B + BUTTON_OFFSET_T + BUTTON_OFFSET_T) +#define MTLOCK_REJECT_MSG_LIST_NEW_T REL_REJECT_MSG_SIZE_H(REJECT_MSG) + +#define MTLOCK_REJECT_MSG_LIST_6ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 6) + REJECT_MSG) +#define MTLOCK_REJECT_MSG_LIST_5ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 5) + REJECT_MSG) +#define MTLOCK_REJECT_MSG_LIST_4ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 4) + REJECT_MSG) +#define MTLOCK_REJECT_MSG_LIST_3ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 3) + REJECT_MSG) +#define MTLOCK_REJECT_MSG_LIST_2ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 2) + REJECT_MSG) +#define MTLOCK_REJECT_MSG_LIST_1ITEM_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 1) + REJECT_MSG) +/* + * End of MT LOCK View + */ + +/* + * KEYPAD View + * In Portrait mode + */ +#define KEYPAD_AREA_T_HIDE REL_H(KEYPAD_AREA_T_HIDE_PAD) +#define KEYPAD_AREA_B_HIDE REL_H(KEYPAD_AREA_T_HIDE_PAD+KEYPAD_AREA_HEIGHT) + +#define KEYPAD_ENTRY_TEXT_L REL_W(KEYPAD_ENTRY_TXT_L_PAD) +#define KEYPAD_ENTRY_TEXT_R REL_W(KEYPAD_ENTRY_TXT_L_PAD+KEYPAD_ENTRY_TXT_WIDTH) +#define KEYPAD_ENTRY_TEXT_T REL_H(KEYPAD_ENTRY_TXT_T_PAD) +#define KEYPAD_ENTRY_TEXT_B REL_H(KEYPAD_ENTRY_TXT_T_PAD+KEYPAD_ENTRY_TXT_HEIGHT) +/* + * End of KEYPAD View + */ + + +/* + * SIX BUTTON Layout + * In Portrait mode + */ + +#define TOP_FIRST_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_TOP_FIRST_BTN_L_PAD) +#define TOP_FIRST_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_SINGLE_BTN_WIDTH) +#define TOP_FIRST_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD) +#define TOP_FIRST_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define TOP_SECOND_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_TOP_SECOND_BTN_L_PAD) +#define TOP_SECOND_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_TOP_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+1) +#define TOP_SECOND_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD) +#define TOP_SECOND_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define TOP_THIRD_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_TOP_THIRD_BTN_L_PAD) +#define TOP_THIRD_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_TOP_THIRD_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+2) +#define TOP_THIRD_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD) +#define TOP_THIRD_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define BOTTOM_FIRST_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD) +#define BOTTOM_FIRST_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH) +#define BOTTOM_FIRST_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD) +#define BOTTOM_FIRST_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define BOTTOM_SECOND_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD) +#define BOTTOM_SECOND_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+1) +#define BOTTOM_SECOND_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD) +#define BOTTOM_SECOND_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define BOTTOM_THIRD_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_THIRD_BTN_L_PAD) +#define BOTTOM_THIRD_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_THIRD_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+2) +#define BOTTOM_THIRD_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD) +#define BOTTOM_THIRD_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +/* + * End of SIX Button Layout + */ + +/* + * General Button Layout + * Portrait mode + */ +#define SIX_BTN_LAYOUT_L REL_W(SIX_BTN_LAYOUT_L_PAD) +#define SIX_BTN_LAYOUT_R REL_W(SIX_BTN_LAYOUT_L_PAD+SIX_BTN_LAYOUT_WIDTH) +#define SIX_BTN_LAYOUT_T REL_H(SIX_BTN_LAYOUT_T_PAD) +#define SIX_BTN_LAYOUT_B REL_H(SIX_BTN_LAYOUT_T_PAD+SIX_BTN_LAYOUT_HEIGHT) + +/* + * End of SIX Button Layout + */ + +/* + * Bottom Button layout + */ +#define BOTTOM_BTN_LAYOUT_L REL_W(BOTTOM_BTN_BG_L_PAD) +#define BOTTOM_BTN_LAYOUT_R REL_W(BOTTOM_BTN_BG_L_PAD+BOTTOM_BTN_BG_WIDTH) +#define BOTTOM_BTN_LAYOUT_T REL_H(BOTTOM_BTN_BG_T_PAD) +#define BOTTOM_BTN_LAYOUT_B REL_H(BOTTOM_BTN_BG_T_PAD+BOTTOM_BTN_BG_HEIGHT) +/* + * End of Bottom Button layout + */ + +/* + * END CALL View + * In Portrait mode + */ +#define ENDSINGLECALL_BTN_BG_L REL_W(ENDCALL_TWO_BTN_L_PAD) +#define ENDSINGLECALL_BTN_BG_R REL_W(ENDCALL_TWO_BTN_L_PAD+ENDCALL_TWO_BTN_WIDTH) +#define ENDSINGLECALL_BTN_BG_T REL_H(ENDCALL_TWO_BTN_T_PAD) +#define ENDSINGLECALL_BTN_BG_B REL_H(ENDCALL_TWO_BTN_T_PAD+ENDCALL_TWO_BTN_HEIGHT) + +#define ENDSINGLECALL_VIEW_CONTACT_BTN_L REL_CONTACT_BTN_W(ENDCALL_VIEW_CONTACT_BTN_L_PAD) +#define ENDSINGLECALL_VIEW_CONTACT_BTN_R REL_CONTACT_BTN_W(ENDCALL_VIEW_CONTACT_BTN_L_PAD+ENDCALL_VIEW_CONTACT_BTN_WIDTH) +#define ENDSINGLECALL_VIEW_CONTACT_BTN_T REL_CONTACT_BTN_H(ENDCALL_VIEW_CONTACT_BTN_T_PAD) +#define ENDSINGLECALL_VIEW_CONTACT_BTN_B REL_CONTACT_BTN_H(ENDCALL_VIEW_CONTACT_BTN_T_PAD+ENDCALL_VIEW_CONTACT_BTN_HEIGHT) + +#define ENDSINGLECALL_CREATE_CONTACT_BTN_L REL_CONTACT_BTN_W(ENDCALL_CREATE_CONTACT_BTN_L_PAD) +#define ENDSINGLECALL_CREATE_CONTACT_BTN_R REL_CONTACT_BTN_W(ENDCALL_CREATE_CONTACT_BTN_L_PAD+ENDCALL_CREATE_CONTACT_BTN_WIDTH) +#define ENDSINGLECALL_CREATE_CONTACT_BTN_T REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD) +#define ENDSINGLECALL_CREATE_CONTACT_BTN_B REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD+ENDCALL_CREATE_CONTACT_BTN_HEIGHT) + +#define ENDSINGLECALL_UPDATE_CONTACT_BTN_L REL_CONTACT_BTN_W(ENDCALL_UPDATE_CONTACT_BTN_L_PAD) +#define ENDSINGLECALL_UPDATE_CONTACT_BTN_R REL_CONTACT_BTN_W(ENDCALL_UPDATE_CONTACT_BTN_L_PAD+ENDCALL_CREATE_CONTACT_BTN_WIDTH) +#define ENDSINGLECALL_UPDATE_CONTACT_BTN_T REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD) +#define ENDSINGLECALL_UPDATE_CONTACT_BTN_B REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD+ENDCALL_CREATE_CONTACT_BTN_HEIGHT) + +#define ENDSINGLECALL_VIDEOCALL_BTN_BG_L REL_W(ENDCALL_VIDEO_BTN_L_PAD) +#define ENDSINGLECALL_VIDEOCALL_BTN_BG_R REL_W(ENDCALL_VIDEO_BTN_L_PAD+ENDCALL_BTN_WIDTH) + +#define ENDSINGLECALL_CALL_BTN_BG_L REL_W(ENDCALL_VOICE_BTN_L_PAD) +#define ENDSINGLECALL_CALL_BTN_BG_R REL_W(ENDCALL_VOICE_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH) + +#define ENDSINGLECALL_MSG_BTN_BG_L REL_W(ENDCALL_3_BTN_MSG_BTN_L_PAD) +#define ENDSINGLECALL_MSG_BTN_BG_R REL_W(ENDCALL_3_BTN_MSG_BTN_L_PAD+ENDCALL_BTN_WIDTH) +/* + * End of END CALL View + */ + +/* + * QUICK-PANEL layout + * In Portrait mode + */ +#define CALL_QUICKPANEL_TXT_AREA_L REL_QP_W(QP_TXT_AREA_L_PAD) +#define CALL_QUICKPANEL_TXT_AREA_R REL_QP_W(QP_TXT_AREA_L_PAD+QP_TXT_AREA_WIDTH) +#define CALL_QUICKPANEL_TXT_AREA_T REL_QP_H(QP_TXT_AREA_T_PAD) +#define CALL_QUICKPANEL_TXT_AREA_B REL_QP_H(QP_TXT_AREA_T_PAD+QP_TXT_AREA_HEIGHT) + +#define CALL_QUICKPANEL_CALL_ICON_L REL_QP_W(QP_CALL_ICON_L_PAD) +#define CALL_QUICKPANEL_CALL_ICON_R REL_QP_W(QP_CALL_ICON_L_PAD+QP_CALL_ICON_WIDTH) +#define CALL_QUICKPANEL_CALL_ICON_T REL_QP_H(QP_CALL_ICON_T_PAD) +#define CALL_QUICKPANEL_CALL_ICON_B REL_QP_H(QP_CALL_ICON_T_PAD+QP_CALL_ICON_HEIGHT) + +#define CALL_QUICKPANEL_BTN_MUTE_L REL_QP_W(QP_MUTE_BTN_L_PAD) +#define CALL_QUICKPANEL_BTN_MUTE_R REL_QP_W(QP_MUTE_BTN_L_PAD+QP_MUTE_BTN_WIDTH) +#define CALL_QUICKPANEL_BTN_MUTE_T REL_QP_H(QP_MUTE_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_MUTE_B REL_QP_H(QP_MUTE_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_SPEAKER_L REL_QP_W(QP_SPEAKER_BTN_L_PAD) +#define CALL_QUICKPANEL_BTN_SPEAKER_R REL_QP_W(QP_SPEAKER_BTN_L_PAD+QP_SPEAKER_BTN_WIDTH) +#define CALL_QUICKPANEL_BTN_SPEAKER_T REL_QP_H(QP_SPEAKER_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_SPEAKER_B REL_QP_H(QP_SPEAKER_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_END_L REL_QP_W(QP_END_BTN_L_PAD) +#define CALL_QUICKPANEL_BTN_END_R REL_QP_W(QP_END_BTN_L_PAD+QP_END_BTN_WIDTH) +#define CALL_QUICKPANEL_BTN_END_T REL_QP_H(QP_END_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_END_B REL_QP_H(QP_END_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_ICON_T REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD) +#define CALL_QUICKPANEL_BTN_ICON_B REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD+QP_CONTENT_ICON_HEIGHT) +/* + * End of QUICK-PANEL layout + */ + + +#define LSCAPE_TITLE_HEIGHT 100 +#define LSCAPE_QP_WIN_W 1252 +#define LSCAPE_QP_WIN_H 180 + +#define LSCAPE_QP_TITLE_L_PAD 14 +#define LSCAPE_QP_TITLE_WIDTH 1050 +#define LSCAPE_QP_TITLE_T_PAD 16 +#define LSCAPE_QP_TITLE_HEIGHT 36 + +#define LSCAPE_QP_SPEAKER_BTN_L_PAD 18 +#define LSCAPE_QP_SPEAKER_BTN_WIDTH 118 +#define LSCAPE_QP_SPEAKER_BTN_T_PAD 75 +#define LSCAPE_QP_SPEAKER_BTN_HEIGHT 72 + +#define LSCAPE_QP_MUTE_BTN_L_PAD (LSCAPE_QP_SPEAKER_BTN_L_PAD+LSCAPE_QP_SPEAKER_BTN_WIDTH+27) +#define LSCAPE_QP_MUTE_BTN_WIDTH LSCAPE_QP_SPEAKER_BTN_WIDTH +#define LSCAPE_QP_MUTE_BTN_T_PAD LSCAPE_QP_SPEAKER_BTN_T_PAD +#define LSCAPE_QP_MUTE_BTN_HEIGHT LSCAPE_QP_SPEAKER_BTN_HEIGHT + +#define LSCAPE_QP_END_BTN_L_PAD (LSCAPE_QP_MUTE_BTN_L_PAD+LSCAPE_QP_MUTE_BTN_WIDTH+27) +#define LSCAPE_QP_END_BTN_WIDTH 72 +#define LSCAPE_QP_END_BTN_T_PAD LSCAPE_QP_SPEAKER_BTN_T_PAD +#define LSCAPE_QP_END_BTN_HEIGHT 72 + +#define LSCAPE_QP_TIME_L_PAD (LSCAPE_QP_END_BTN_L_PAD+LSCAPE_QP_END_BTN_WIDTH+18) +#define LSCAPE_QP_TIME_WIDTH 181 +#define LSCAPE_QP_TIME_T_PAD 114 +#define LSCAPE_QP_TIME_HEIGHT 36 + +#define LSCAPE_QP_CALL_ICON_L_PAD 1122 +#define LSCAPE_QP_CALL_ICON_WIDTH 106 +#define LSCAPE_QP_CALL_ICON_T_PAD 34 +#define LSCAPE_QP_CALL_ICON_HEIGHT 106 +/* Relative X & Y positions of widgets w.r.t. Quick-panel layout */ +#define REL_LSCAPE_QP_W(x) ((x)/LSCAPE_QP_WIN_W) +#define REL_LSCAPE_QP_H(y) ((y)/LSCAPE_QP_WIN_H) +/* + * QUICK-PANEL layout + * In Portrait mode + */ +#define LSCAPE_QUICKPANEL_TITLE_L REL_LSCAPE_QP_W(LSCAPE_QP_TITLE_L_PAD) +#define LSCAPE_QUICKPANEL_TITLE_R REL_LSCAPE_QP_W(LSCAPE_QP_TITLE_L_PAD+LSCAPE_QP_TITLE_WIDTH) +#define LSCAPE_QUICKPANEL_TITLE_T REL_LSCAPE_QP_H(LSCAPE_QP_TITLE_T_PAD) +#define LSCAPE_QUICKPANEL_TITLE_B REL_LSCAPE_QP_H(LSCAPE_QP_TITLE_T_PAD+LSCAPE_QP_TITLE_HEIGHT) + +#define LSCAPE_QUICKPANEL_BTN_SPEAKER_L REL_LSCAPE_QP_W(LSCAPE_QP_SPEAKER_BTN_L_PAD) +#define LSCAPE_QUICKPANEL_BTN_SPEAKER_R REL_LSCAPE_QP_W(LSCAPE_QP_SPEAKER_BTN_L_PAD+LSCAPE_QP_SPEAKER_BTN_WIDTH) +#define LSCAPE_QUICKPANEL_BTN_SPEAKER_T REL_LSCAPE_QP_H(LSCAPE_QP_SPEAKER_BTN_T_PAD) +#define LSCAPE_QUICKPANEL_BTN_SPEAKER_B REL_LSCAPE_QP_H(LSCAPE_QP_SPEAKER_BTN_T_PAD+LSCAPE_QP_SPEAKER_BTN_HEIGHT) + +#define LSCAPE_QUICKPANEL_BTN_MUTE_L REL_LSCAPE_QP_W(LSCAPE_QP_MUTE_BTN_L_PAD) +#define LSCAPE_QUICKPANEL_BTN_MUTE_R REL_LSCAPE_QP_W(LSCAPE_QP_MUTE_BTN_L_PAD+LSCAPE_QP_MUTE_BTN_WIDTH) +#define LSCAPE_QUICKPANEL_BTN_MUTE_T REL_LSCAPE_QP_H(LSCAPE_QP_MUTE_BTN_T_PAD) +#define LSCAPE_QUICKPANEL_BTN_MUTE_B REL_LSCAPE_QP_H(LSCAPE_QP_MUTE_BTN_T_PAD+LSCAPE_QP_MUTE_BTN_HEIGHT) + +#define LSCAPE_QUICKPANEL_BTN_END_L REL_LSCAPE_QP_W(LSCAPE_QP_END_BTN_L_PAD) +#define LSCAPE_QUICKPANEL_BTN_END_R REL_LSCAPE_QP_W(LSCAPE_QP_END_BTN_L_PAD+LSCAPE_QP_END_BTN_WIDTH) +#define LSCAPE_QUICKPANEL_BTN_END_T REL_LSCAPE_QP_H(LSCAPE_QP_END_BTN_T_PAD) +#define LSCAPE_QUICKPANEL_BTN_END_B REL_LSCAPE_QP_H(LSCAPE_QP_END_BTN_T_PAD+LSCAPE_QP_END_BTN_HEIGHT) + +#define LSCAPE_QUICKPANEL_TIME_L REL_LSCAPE_QP_W(LSCAPE_QP_TIME_L_PAD) +#define LSCAPE_QUICKPANEL_TIME_R REL_LSCAPE_QP_W(LSCAPE_QP_TIME_L_PAD+LSCAPE_QP_TIME_WIDTH) +#define LSCAPE_QUICKPANEL_TIME_T REL_LSCAPE_QP_H(LSCAPE_QP_TIME_T_PAD) +#define LSCAPE_QUICKPANEL_TIME_B REL_LSCAPE_QP_H(LSCAPE_QP_TIME_T_PAD+LSCAPE_QP_TIME_HEIGHT) + +#define LSCAPE_QUICKPANEL_CALL_BG_ICON_L REL_LSCAPE_QP_W(LSCAPE_QP_CALL_BG_ICON_L_PAD) +#define LSCAPE_QUICKPANEL_CALL_BG_ICON_R REL_LSCAPE_QP_W(LSCAPE_QP_CALL_BG_ICON_L_PAD+LSCAPE_QP_CALL_BG_ICON_WIDTH) +#define LSCAPE_QUICKPANEL_CALL_BG_ICON_T REL_LSCAPE_QP_H(LSCAPE_QP_CALL_BG_ICON_T_PAD) +#define LSCAPE_QUICKPANEL_CALL_BG_ICON_B REL_LSCAPE_QP_H(LSCAPE_QP_CALL_BG_ICON_T_PAD+LSCAPE_QP_CALL_BG_ICON_HEIGHT) + +#define LSCAPE_QUICKPANEL_CALL_ICON_L REL_LSCAPE_QP_W(LSCAPE_QP_CALL_ICON_L_PAD) +#define LSCAPE_QUICKPANEL_CALL_ICON_R REL_LSCAPE_QP_W(LSCAPE_QP_CALL_ICON_L_PAD+LSCAPE_QP_CALL_ICON_WIDTH) +#define LSCAPE_QUICKPANEL_CALL_ICON_T REL_LSCAPE_QP_H(LSCAPE_QP_CALL_ICON_T_PAD) +#define LSCAPE_QUICKPANEL_CALL_ICON_B REL_LSCAPE_QP_H(LSCAPE_QP_CALL_ICON_T_PAD+LSCAPE_QP_CALL_ICON_HEIGHT) + +/* + * Caller info layout + * In Portrait mode + */ + +#define CALLER_INFO_L REL_W(CALLER_INFO_L_PAD) +#define CALLER_INFO_R REL_W(CALLER_INFO_L_PAD+CALLER_INFO_WIDTH) +#define CALLER_INFO_T REL_H(CALLER_INFO_T_PAD) +#define CALLER_INFO_B REL_H(CALLER_INFO_T_PAD+CALLER_INFO_HEIGHT) + +#define CALLER_INFO_NAME_L REL_W(CALLER_INFO_NAME_L_PAD) +#define CALLER_INFO_NAME_R REL_W(CALLER_INFO_NAME_L_PAD+CALLER_INFO_NAME_WIDTH) +#define CALLER_INFO_NAME_T REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD) +#define CALLER_INFO_NAME_B REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD+CALLER_INFO_NAME_HEIGHT) +#define CALLER_INFO_NAME_EMERGENCY_B REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD+CALLER_INFO_EMERGENCY_HEIGHT) + +#define CALLER_INFO_NAME_1LINE_T REL_CALLER_INFO_H(CALLER_INFO_NAME_1LINE_T_PAD) +#define CALLER_INFO_NAME_1LINE_B REL_CALLER_INFO_H(CALLER_INFO_NAME_1LINE_T_PAD+CALLER_INFO_NAME_1LINE_HEIGHT) + +#define CALLER_INFO_NUMBER_L REL_W(CALLER_INFO_NUMBER_L_PAD) +#define CALLER_INFO_NUMBER_R REL_W(CALLER_INFO_NUMBER_L_PAD+CALLER_INFO_NUMBER_WIDTH) +#define CALLER_INFO_NUMBER_T REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD) +#define CALLER_INFO_NUMBER_B REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD+CALLER_INFO_NUMBER_HEIGHT) + +#define CALLER_INFO_STATUS_L REL_W(CALLER_INFO_STATUS_L_PAD) +#define CALLER_INFO_STATUS_R REL_W(CALLER_INFO_STATUS_L_PAD+CALLER_INFO_STATUS_WIDTH) +#define CALLER_INFO_STATUS_T REL_CALLER_INFO_H(CALLER_INFO_STATUS_T_PAD) +#define CALLER_INFO_STATUS_B REL_CALLER_INFO_H(CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT) + +#define CALLER_INFO_CARRIER_L REL_W(CALLER_INFO_CARRIER_L_PAD) +#define CALLER_INFO_CARRIER_R REL_W(CALLER_INFO_CARRIER_L_PAD+CALLER_INFO_CARRIER_WIDTH) +#define CALLER_INFO_CARRIER_T REL_CALLER_INFO_H(CALLER_INFO_CARRIER_T_PAD) +#define CALLER_INFO_CARRIER_B REL_CALLER_INFO_H(CALLER_INFO_CARRIER_T_PAD+CALLER_INFO_CARRIER_HEIGHT) + +#define EXTRA_LAYOUT_WIDTH MAIN_SCREEN_W +#define EXTRA_LAYOUT_HEIGHT 148 + +#define EXTRA_LAYOUT_L_PAD 0 +#define EXTRA_LAYOUT_R_PAD (EXTRA_LAYOUT_L_PAD+EXTRA_LAYOUT_WIDTH) +#define EXTRA_LAYOUT_T_PAD (127) +#define EXTRA_LAYOUT_B_PAD (EXTRA_LAYOUT_T_PAD+148) + +#define EXTRA2_LAYOUT_L_PAD 0 +#define EXTRA2_LAYOUT_R_PAD (EXTRA2_LAYOUT_L_PAD+EXTRA_LAYOUT_WIDTH) +#define EXTRA2_LAYOUT_T_PAD (EXTRA_LAYOUT_B_PAD+1) +#define EXTRA2_LAYOUT_B_PAD (EXTRA2_LAYOUT_T_PAD+EXTRA_LAYOUT_HEIGHT) + +#define EXTRA3_LAYOUT_L_PAD 0 +#define EXTRA3_LAYOUT_R_PAD (EXTRA3_LAYOUT_L_PAD+EXTRA_LAYOUT_WIDTH) +#define EXTRA3_LAYOUT_T_PAD (EXTRA2_LAYOUT_B_PAD+1) +#define EXTRA3_LAYOUT_B_PAD (EXTRA3_LAYOUT_T_PAD+EXTRA_LAYOUT_HEIGHT) + +#define EXTRA_LAYOUT_L REL_W(EXTRA_LAYOUT_L_PAD) +#define EXTRA_LAYOUT_R REL_W(EXTRA_LAYOUT_R_PAD) +#define EXTRA_LAYOUT_T REL_CALLER_INFO_H(EXTRA_LAYOUT_T_PAD) +#define EXTRA_LAYOUT_B REL_CALLER_INFO_H(EXTRA_LAYOUT_B_PAD) + +#define EXTRA2_LAYOUT_L REL_W(EXTRA2_LAYOUT_L_PAD) +#define EXTRA2_LAYOUT_R REL_W(EXTRA2_LAYOUT_R_PAD) +#define EXTRA2_LAYOUT_T REL_CALLER_INFO_H(EXTRA2_LAYOUT_T_PAD) +#define EXTRA2_LAYOUT_B REL_CALLER_INFO_H(EXTRA2_LAYOUT_B_PAD) + +#define EXTRA3_LAYOUT_L REL_W(EXTRA3_LAYOUT_L_PAD) +#define EXTRA3_LAYOUT_R REL_W(EXTRA3_LAYOUT_R_PAD) +#define EXTRA3_LAYOUT_T REL_CALLER_INFO_H(EXTRA3_LAYOUT_T_PAD) +#define EXTRA3_LAYOUT_B REL_CALLER_INFO_H(EXTRA3_LAYOUT_B_PAD) + +#define REL_EXTRA_LAYOUT_H(y) ((y)/EXTRA_LAYOUT_HEIGHT) + +#define EXTRA_LAYOUT_TEXT_WIDTH 450 +#define EXTRA_LAYOUT_TEXT_HEIGHT 72 +#define EXTRA_LAYOUT_TEXT_L_PAD 15 +#define EXTRA_LAYOUT_TEXT_R_PAD (EXTRA_LAYOUT_TEXT_L_PAD+EXTRA_LAYOUT_TEXT_WIDTH) +#define EXTRA_LAYOUT_TEXT_T_PAD (12) +#define EXTRA_LAYOUT_TEXT_B_PAD (EXTRA_LAYOUT_TEXT_T_PAD+EXTRA_LAYOUT_TEXT_HEIGHT) + +#define EXTRA_LAYOUT_TEXT_L REL_W(EXTRA_LAYOUT_TEXT_L_PAD) +#define EXTRA_LAYOUT_TEXT_R REL_W(EXTRA_LAYOUT_TEXT_R_PAD) +#define EXTRA_LAYOUT_TEXT_T REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_TEXT_T_PAD) +#define EXTRA_LAYOUT_TEXT_B REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_TEXT_B_PAD) + +#define EXTRA_LAYOUT_RESUME_TEXT_WIDTH 365 +#define EXTRA_LAYOUT_RESUME_TEXT_HEIGHT 96 +#define EXTRA_LAYOUT_RESUME_TEXT_L_PAD 25 +#define EXTRA_LAYOUT_RESUME_TEXT_R_PAD (EXTRA_LAYOUT_RESUME_TEXT_L_PAD+EXTRA_LAYOUT_RESUME_TEXT_WIDTH) +#define EXTRA_LAYOUT_RESUME_TEXT_T_PAD 0 +#define EXTRA_LAYOUT_RESUME_TEXT_B_PAD (EXTRA_LAYOUT_RESUME_TEXT_T_PAD+EXTRA_LAYOUT_RESUME_TEXT_HEIGHT) + +#define EXTRA_LAYOUT_RESUME_TEXT_L REL_W(EXTRA_LAYOUT_RESUME_TEXT_L_PAD) +#define EXTRA_LAYOUT_RESUME_TEXT_R REL_W(EXTRA_LAYOUT_RESUME_TEXT_R_PAD) +#define EXTRA_LAYOUT_RESUME_TEXT_T REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_TEXT_T_PAD) +#define EXTRA_LAYOUT_RESUME_TEXT_B REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_TEXT_B_PAD) + +#define EXTRA_LAYOUT_RESUME_ICON_WIDTH 27 +#define EXTRA_LAYOUT_RESUME_ICON_HEIGHT 27 +#define EXTRA_LAYOUT_RESUME_ICON_L_PAD 339 +#define EXTRA_LAYOUT_RESUME_ICON_R_PAD (EXTRA_LAYOUT_RESUME_ICON_L_PAD+EXTRA_LAYOUT_RESUME_ICON_WIDTH) +#define EXTRA_LAYOUT_RESUME_ICON_T_PAD INDICATOR_HEIGHT +#define EXTRA_LAYOUT_RESUME_ICON_B_PAD (EXTRA_LAYOUT_RESUME_ICON_T_PAD+72) + +#define EXTRA_LAYOUT_RESUME_ICON_L REL_W(EXTRA_LAYOUT_RESUME_ICON_L_PAD) +#define EXTRA_LAYOUT_RESUME_ICON_R REL_W(EXTRA_LAYOUT_RESUME_ICON_R_PAD) +#define EXTRA_LAYOUT_RESUME_ICON_T REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_ICON_T_PAD) +#define EXTRA_LAYOUT_RESUME_ICON_B REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_ICON_B_PAD) + +#define EXTRA_LAYOUT_EXTRA_VOL_ICON_L_PAD (EXTRA_LAYOUT_RESUME_ICON_L_PAD-34) +#define EXTRA_LAYOUT_EXTRA_VOL_ICON_R_PAD (EXTRA_LAYOUT_EXTRA_VOL_ICON_L_PAD+EXTRA_LAYOUT_RESUME_ICON_WIDTH) + +#define EXTRA_LAYOUT_EXTRA_VOL_ICON_L REL_W(EXTRA_LAYOUT_EXTRA_VOL_ICON_L_PAD) +#define EXTRA_LAYOUT_EXTRA_VOL_ICON_R REL_W(EXTRA_LAYOUT_EXTRA_VOL_ICON_R_PAD) + +#define HELD_CALL_CALLER_ID_WIDTH 74 +#define HELD_CALL_CALLER_ID_HEIGHT EXTRA_LAYOUT_HEIGHT +#define HELD_CALL_CALLER_INFO_GAP 25 +#define HELD_CALL_TEXT_WIDTH 186 +#define HELD_CALL_TEXT_HEIGHT EXTRA_LAYOUT_HEIGHT +#define HELD_CALL_BTN_WIDTH 60 +#define HELD_CALL_BTN_HEIGHT EXTRA_LAYOUT_HEIGHT +#define HELD_CALL_BTN_GAP 20 + +#define HELD_CALL_CALLER_ID_L REL_W(15) +#define HELD_CALL_CALLER_ID_R REL_W(15+HELD_CALL_CALLER_ID_WIDTH) +#define HELD_CALL_CALLER_ID_T REL_EXTRA_LAYOUT_H(0) +#define HELD_CALL_CALLER_ID_B REL_EXTRA_LAYOUT_H(HELD_CALL_CALLER_ID_T+HELD_CALL_CALLER_ID_HEIGHT) + +#define HELD_CALL_TEXT_L_PAD (20) +#define HELD_CALL_TEXT_T_PAD 0 + +#define HELD_CALL_TEXT_L REL_W(HELD_CALL_TEXT_L_PAD) +#define HELD_CALL_TEXT_R REL_W(HELD_CALL_TEXT_L_PAD+440) +#define HELD_CALL_TEXT_T REL_EXTRA_LAYOUT_H(HELD_CALL_TEXT_T_PAD) +#define HELD_CALL_TEXT_B REL_EXTRA_LAYOUT_H(HELD_CALL_TEXT_T_PAD+54) + +#define HELD_CALL_BTN1_L_PAD (0) +#define HELD_CALL_BTN1_T_PAD 50 + +#define HELD_CALL_BTN1_L REL_W(HELD_CALL_BTN1_L_PAD) +#define HELD_CALL_BTN1_R REL_W(HELD_CALL_BTN1_L_PAD+239) +#define HELD_CALL_BTN1_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD) +#define HELD_CALL_BTN1_BG_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+98) +#define HELD_CALL_BTN1_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+60) +#define HELD_CALL_BTN1_TXT_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+60) +#define HELD_CALL_BTN1_TXT_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+60+25) + +#define HELD_CALL_BTN2_L_PAD 240 +#define HELD_CALL_BTN2_T_PAD 50 + +#define HELD_CALL_BTN2_L REL_W(HELD_CALL_BTN2_L_PAD) +#define HELD_CALL_BTN2_R REL_W(HELD_CALL_BTN2_L_PAD+240) +#define HELD_CALL_BTN2_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD) +#define HELD_CALL_BTN2_BG_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+98) +#define HELD_CALL_BTN2_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+60) +#define HELD_CALL_BTN2_TXT_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+60) +#define HELD_CALL_BTN2_TXT_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+60+25) + +#define MANAGE_TEXT_WIDTH 280 +#define MANAGE_TEXT_HEIGHT EXTRA_LAYOUT_HEIGHT + +#define MANAGE_TEXT_L_PAD (15+HELD_CALL_CALLER_ID_WIDTH+HELD_CALL_CALLER_INFO_GAP) +#define MANAGE_TEXT_T_PAD 0 + +#define MANAGE_TEXT_L REL_W(MANAGE_TEXT_L_PAD) +#define MANAGE_TEXT_R REL_W(MANAGE_TEXT_L_PAD+MANAGE_TEXT_WIDTH) +#define MANAGE_TEXT_T REL_EXTRA_LAYOUT_H(MANAGE_TEXT_T_PAD) +#define MANAGE_TEXT_B REL_EXTRA_LAYOUT_H(MANAGE_TEXT_T_PAD+MANAGE_TEXT_HEIGHT) + +/* + * End of Caller info layout + */ + + +/* +* Lock Screen Layout +*/ + +#define LOCK_SCREEN_LAYER_WIDTH MAIN_SCREEN_W +#define LOCK_SCREEN_LAYER_HEIGHT MAIN_SCREEN_H + +#define LOCK_SCREEN_ICON_TOP_PAD 230 +#define LOCK_SCREEN_ICON_HEIGHT 270 + +#define REL_LOCK_SCREEN_W(x) ((x)/LOCK_SCREEN_LAYER_WIDTH) +#define REL_LOCK_SCREEN_H(y) ((y)/LOCK_SCREEN_LAYER_HEIGHT) + +#define LOCK_SCREEN_ICON_L REL_LOCK_SCREEN_W(0) +#define LOCK_SCREEN_ICON_R REL_LOCK_SCREEN_W(LOCK_SCREEN_LAYER_WIDTH) +#define LOCK_SCREEN_ICON_T REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD) +#define LOCK_SCREEN_ICON_B REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD+LOCK_SCREEN_ICON_HEIGHT) + +#define LOCK_SCREEN_VERTICAL_GAP 20 +#define LOCK_SCREEN_TEXT_LEFT_PADDING 15 +#define LOCK_SCREEN_TEXT_RIGHT_PADDING 15 +#define LOCK_SCREEN_TEXT_HEIGHT 144 + +#define EXTRA_VOL_OUTER_L_PAD (-204) +#define EXTRA_VOL_OUTER_WIDTH 544 +#define EXTRA_VOL_OUTER_T_PAD 438 +#define EXTRA_VOL_OUTER_HEIGHT 544 + +#define EXTRA_VOL_INNER_CIRCLE_L_PAD 23 +#define EXTRA_VOL_INNER_CIRCLE_WIDTH 90 +#define EXTRA_VOL_INNER_CIRCLE_T_PAD 665 +#define EXTRA_VOL_INNER_CIRCLE_HEIGHT 90 + +#define END_CALL_OUTER_L_PAD 140 +#define END_CALL_OUTER_WIDTH 544 +#define END_CALL_OUTER_T_PAD EXTRA_VOL_OUTER_T_PAD +#define END_CALL_OUTER_HEIGHT 544 + +#define END_CALL_INNER_CIRCLE_L_PAD 367 +#define END_CALL_INNER_CIRCLE_WIDTH 90 +#define END_CALL_INNER_CIRCLE_T_PAD EXTRA_VOL_INNER_CIRCLE_T_PAD +#define END_CALL_INNER_CIRCLE_HEIGHT 90 + +#define LOCK_SCREEN_TEXT_L REL_LOCK_SCREEN_W(LOCK_SCREEN_TEXT_LEFT_PADDING) +#define LOCK_SCREEN_TEXT_R REL_LOCK_SCREEN_W(LOCK_SCREEN_LAYER_WIDTH-LOCK_SCREEN_TEXT_RIGHT_PADDING) +#define LOCK_SCREEN_TEXT_T REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD+LOCK_SCREEN_ICON_HEIGHT+LOCK_SCREEN_VERTICAL_GAP) +#define LOCK_SCREEN_TEXT_B REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD+LOCK_SCREEN_ICON_HEIGHT+LOCK_SCREEN_VERTICAL_GAP+LOCK_SCREEN_TEXT_HEIGHT) + +#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_L REL_W(EXTRA_VOL_INNER_CIRCLE_L_PAD) +#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_R REL_W(EXTRA_VOL_INNER_CIRCLE_L_PAD+EXTRA_VOL_INNER_CIRCLE_WIDTH) +#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_T REL_H(EXTRA_VOL_INNER_CIRCLE_T_PAD) +#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_B REL_H(EXTRA_VOL_INNER_CIRCLE_T_PAD+EXTRA_VOL_INNER_CIRCLE_HEIGHT) + +#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_L REL_W(EXTRA_VOL_OUTER_L_PAD) +#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_R REL_W(EXTRA_VOL_OUTER_L_PAD+EXTRA_VOL_OUTER_WIDTH) +#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_T REL_H(EXTRA_VOL_OUTER_T_PAD) +#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_B REL_H(EXTRA_VOL_OUTER_T_PAD+EXTRA_VOL_OUTER_HEIGHT) + +#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_L REL_W(END_CALL_INNER_CIRCLE_L_PAD) +#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_R REL_W(END_CALL_INNER_CIRCLE_L_PAD+END_CALL_INNER_CIRCLE_WIDTH) +#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_T REL_H(END_CALL_INNER_CIRCLE_T_PAD) +#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_B REL_H(END_CALL_INNER_CIRCLE_T_PAD+END_CALL_INNER_CIRCLE_HEIGHT) + +#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_L REL_W(END_CALL_OUTER_L_PAD) +#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_R REL_W(END_CALL_OUTER_L_PAD+END_CALL_OUTER_WIDTH) +#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_T REL_H(END_CALL_OUTER_T_PAD) +#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_B REL_H(END_CALL_OUTER_T_PAD+END_CALL_OUTER_HEIGHT) + +/* +* End of Lock Screen Layout +*/ + +#endif /*_CALLUI_VIEW_LAYOUT_WVGA_H_*/ diff --git a/include/callui-view-lock-screen.h b/include/callui-view-lock-screen.h new file mode 100755 index 0000000..e717f5f --- /dev/null +++ b/include/callui-view-lock-screen.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef _VCUI_VIEW_LOCK_SCREEN_H_ +#define _VCUI_VIEW_LOCK_SCREEN_H_ + +#include "callui.h" + +typedef struct _lock_sccreen_data { + Evas_Object *layout; + Evas_Object *hit_rect; + + Ecore_Timer *no_lock_timer; + bool is_locked; + +} lock_screen_data_t; + +lock_screen_data_t *_callui_lock_screen_create_layout(call_view_data_t *view_data); +void _callui_lock_screen_refresh_timer(call_view_data_t *view_data); +void _callui_lock_screen_start_timer(void); +void _callui_lock_screen_stop_timer(void); +void _callui_lock_screen_unlock_screen(call_view_data_t *view_data); +void _callui_lock_screen_delete_layout(lock_screen_data_t *lock_screen_priv); +gboolean _callui_lock_screen_is_lockscreen_shown(); +void _callui_lock_screen_show_layout(lock_screen_data_t *lock_screen_priv); +void _callui_lock_screen_hide_layout(lock_screen_data_t *lock_screen_priv); + +#endif //_VCUI_VIEW_LOCK_SCREEN_H_ + diff --git a/include/callui-view-manager.h b/include/callui-view-manager.h new file mode 100644 index 0000000..fb28f7e --- /dev/null +++ b/include/callui-view-manager.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_VM_H_ +#define __CALLUI_VM_H_ + +#include + +typedef enum { + VIEW_DIALLING_VIEW = 0, + VIEW_INCOMING_LOCK_VIEW, + VIEW_INCALL_ONECALL_VIEW, + VIEW_INCALL_MULTICALL_SPLIT_VIEW, + VIEW_INCALL_MULTICALL_CONF_VIEW, + VIEW_INCALL_MULTICALL_LIST_VIEW, + VIEW_ENDCALL_VIEW, + VIEW_QUICKPANEL_VIEW, + VIEW_MAX +} callui_view_id_t; + +struct _view_data; + +typedef int (*create_cb) (struct _view_data *view_data, unsigned int param1, void *param2, void *appdata); +typedef int (*update_cb) (struct _view_data *view_data, void *update_data); +typedef int (*destroy_cb) (struct _view_data *view_data); +typedef int (*show_cb) (struct _view_data *view_data, void *appdata); +typedef int (*hide_cb) (struct _view_data *view_data); +typedef int (*rotate_cb) (struct _view_data *view_data); + +typedef struct _view_data { + callui_view_id_t type; //CM_UI to do removed vcui_app_call_data_t *app_data; + + create_cb onCreate; + update_cb onUpdate; + destroy_cb onDestroy; + show_cb onShow; + hide_cb onHide; + rotate_cb onRotate; + + Evas_Object *layout; + void *priv; +} call_view_data_t; + +typedef struct _view_manager_data view_manager_data_t; + +view_manager_data_t *_callvm_init(); +void _callvm_view_change(callui_view_id_t view_id, unsigned int param1, void *param2, void *appdata); +callui_view_id_t _callvm_get_top_view_id(view_manager_data_t *view_manager_handle); +void _callvm_view_auto_change(void *appdata); +void _callvm_terminate_app_or_view_change(void *appdata); +call_view_data_t * _callvm_get_call_view_data(void *ad, callui_view_id_t view_id); +void _callvm_set_call_view_data(void *appdata, callui_view_id_t view_id,call_view_data_t *vd); +Evas_Object *_callvm_get_view_layout(void *appdata); +void _callvm_reset_call_view_data(void *appdata, callui_view_id_t view_id); + +#endif //__CALLUI_VM_H_ diff --git a/include/callui-view-multi-call-conf.h b/include/callui-view-multi-call-conf.h new file mode 100755 index 0000000..4abc99a --- /dev/null +++ b/include/callui-view-multi-call-conf.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef _CALLUI_VIEW_MULTI_CALL_CONF_H_ +#define _CALLUI_VIEW_MULTI_CALL_CONF_H_ + +#include "callui-view-manager.h" + +call_view_data_t *_callui_view_multi_call_conf_new(callui_app_data_t *ad); + +#endif /*_CALLUI_VIEW_MULTI_CALL_CONF_H_*/ + diff --git a/include/callui-view-multi-call-list.h b/include/callui-view-multi-call-list.h new file mode 100755 index 0000000..2f61538 --- /dev/null +++ b/include/callui-view-multi-call-list.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef _CALLUI_VIEW_MULTI_CALL_LIST_H_ +#define _CALLUI_VIEW_MULTI_CALL_LIST_H_ + + +call_view_data_t *_callui_view_multi_call_list_new(callui_app_data_t *ad); +#endif diff --git a/include/callui-view-multi-call-split.h b/include/callui-view-multi-call-split.h new file mode 100644 index 0000000..19c2f76 --- /dev/null +++ b/include/callui-view-multi-call-split.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef _CALLUI_VIEW_MULTI_CALL_SPLIT_H_ +#define _CALLUI_VIEW_MULTI_CALL_SPLIT_H_ + +#include "callui-view-manager.h" + +/** + * @param[in] ad Application data + * @return new split view data + */ +call_view_data_t *_callui_view_multi_call_split_new(callui_app_data_t *ad); + +#endif //_CALLUI_VIEW_MULTI_CALL_SPLIT_H_ + diff --git a/include/callui-view-quickpanel.h b/include/callui-view-quickpanel.h new file mode 100644 index 0000000..a7514aa --- /dev/null +++ b/include/callui-view-quickpanel.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __VCUI_VIEW_QUICKPANEL_H_ +#define __VCUI_VIEW_QUICKPANEL_H_ + +typedef struct callui_view_qp_priv callui_view_qp_priv_t; + +/*voice_call_view_data_t*/ +call_view_data_t *_callui_view_qp_new(callui_app_data_t * ad); +void _callui_view_qp_hide(callui_app_data_t *ad); +void _callui_view_qp_install_window(callui_app_data_t *ad); +void _callui_view_qp_uninstall_window(callui_app_data_t *ad); +void _callui_view_qp_update_text_status(char *txt_status); +Evas_Object *_callui_create_quickpanel_mute_button(void *data, Eina_Bool bdisable); +Evas_Object *_callui_create_quickpanel_speaker_button(void *data, Eina_Bool bdisable); +void _callui_view_quickpanel_change(); +void _callui_view_qp_set_call_timer(Evas_Object *qp_layout, char *pcall_timer); + +#endif /*__VCUI_VIEW_QUICKPANEL_H_*/ diff --git a/include/callui-view-single-call.h b/include/callui-view-single-call.h new file mode 100644 index 0000000..bbf3cb0 --- /dev/null +++ b/include/callui-view-single-call.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_ONECALL_VIEW_H_ +#define __CALLUI_ONECALL_VIEW_H_ + +#include "callui.h" +#include "callui-view-manager.h" + +typedef struct incall_one_view_priv incall_one_view_priv_t; + +call_view_data_t *_callui_view_single_call_new(callui_app_data_t *ad); + +#endif //__CALLUI_ONECALL_VIEW_H_ diff --git a/include/callui.h b/include/callui.h new file mode 100755 index 0000000..c6e06ba --- /dev/null +++ b/include/callui.h @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_H_ +#define __CALLUI_H_ + +#include +#include +#include +#include +#include + +#include "callui-view-manager.h" +#include "callui-view-lock-screen.h" + +#ifndef CALLUI_EXPORT_API +#define CALLUI_EXPORT_API __attribute__ ((visibility("default"))) +#endif + +#ifndef CALLUI_LOG_TAG +#define CALLUI_LOG_TAG "CALLUI" +#endif + +#define info(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_INFO, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); } +#define dbg(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_DEBUG, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); } +#define warn(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_WARN, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); } +#define err(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_ERROR, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); } +#define fatal(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_FATAL, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); } + +#define sec_err(fmt, arg...) {SECURE_LOGE(CALLUI_LOG_TAG, "<%s:%d> " fmt"\n", __func__, __LINE__, ##arg); } +#define sec_warn(fmt, arg...) {SECURE_LOGW(CALLUI_LOG_TAG, "<%s:%d> " fmt"\n", __func__, __LINE__, ##arg); } +#define sec_dbg(fmt, arg...) {SECURE_LOGD(CALLUI_LOG_TAG, "<%s:%d> " fmt"\n", __func__, __LINE__, ##arg); } + +#ifndef CALLUI_RETURN_IF_FAIL +#define CALLUI_RETURN_IF_FAIL(check_condition) {\ + if (!(check_condition)) \ + { \ + err("%s: Failed", #check_condition); \ + return; \ + } \ +} +#endif + +#ifndef CALLUI_RETURN_VALUE_IF_FAIL +#define CALLUI_RETURN_VALUE_IF_FAIL(check_condition, value) {\ + if (!(check_condition)) \ + { \ + err("%s: Failed", #check_condition); \ + return value; \ + } \ +} +#endif + +#ifndef CALLUI_RETURN_NULL_IF_FAIL +#define CALLUI_RETURN_NULL_IF_FAIL(check_condition) {\ + if (!(check_condition)) \ + { \ + err("%s: Failed", #check_condition); \ + return NULL; \ + } \ +} +#endif + +#define MSG_PKG "org.tizen.message" + +#define MASK_ICON IMGDIR"/call_photo_id_mask.png" +#define MULTI_CALL_LIST_MASK_ICON IMGDIR"/call_resume_play_mask.png" + +#define EDJ_NAME EDJDIR"/call.edj" +#define CALL_THEME EDJDIR"/call_theme.edj" +#define CALL_GENLIST_THEME EDJDIR"/call_genlist_theme.edj" + +#ifndef _EDJ +#define _EDJ(obj) elm_layout_edje_get(obj) +#endif + +#define CALLUI_TEXT_DOMAIN "call-ui" +#define _(s) dgettext(CALLUI_TEXT_DOMAIN, s) + +#define GRP_MAIN_LY "main_ly" +#define GRP_KEYPAD "keypad" +#define GRP_MULTICALL "multicall-list" +#define GRP_REJECT_MSG "reject_with_msg" +#define GRP_QUICKPANEL "quickpanel" +#define GRP_QUICKPANEL_LS "quickpanel_ls" +#define GRP_SEPARATOR_LAYOUT "separator-layout" +#define GRP_SEPARATOR_LAYOUT_1BUTTON "separator-layout-1button" +#define GRP_SEPARATOR_LAYOUT_2BUTTON "separator-layout-2button" +#define GRP_BUTTON_LAYOUT "button-layout" +#define APP_CONTROL_OPERATION_DURING_CALL "http://tizen.org/appcontrol/oparation/during_call" +#define APP_CONTROL_OPERATION_MESSAGE_REJECT "http://tizen.org/appcontrol/operation/message_reject" +#define APP_CONTROL_OPERATION_END_CALL "http://tizen.org/appcontrol/operation/end_call" +#define GRP_CALLER_INFO "caller-info" +#define GRP_MANAGE_CALLS "manage-calls" +#define GRP_EXTRA_VOLUME "extra-volume" +#define GRP_LOCK_ACCEPT "lock_accept" +#define GRP_LOCK_REJECT "lock_reject" +#define GRP_LOCK_REJECT_WITH_MSG "lock_reject_with_msg" + +#define MAIN_WIN_WVGA_W 480 +#define MAIN_WIN_WVGA_H 800 + +#define CALLUI_DISPLAY_NAME_LENGTH_MAX (255+1) /**< Voiecall Display Name Max Length */ +#define CALLUI_IMAGE_PATH_LENGTH_MAX (255+1) /**< Max File length for image */ +#define CALLUI_RINGTONE_PATH_LENGTH_MAX (255+1) /**< Max File length for Ringtone */ +#define CALLUI_VIB_PATH_LENGTH_MAX (255+1) /**< Max File length for Vibration */ +#define CALLUI_DATA_LENGTH_MAX (255+1) /**< Max data length for misc */ +#define CALLUI_PHONE_NUMBER_LENGTH_MAX (82+1) /**< Maximum length of a phone number */ +#define CALLUI_FORMATTED_NUMBER_LENGTH_MAX (164+1) /**< Maximum length of a phone number */ +#define CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX (82+10+1) /**< Maximum length of a display phone number */ +#define CALLUI_PHONE_NAME_LENGTH_MAX (80+1) /**< Maximum length of a calling name */ +#define CALLUI_PHONE_SUBADDRESS_LENGTH_MAX (40+1) /**< Maximum length of a SUB address */ +#define CALLUI_PHONE_USSD_LENGTH_MAX (182+1) /**< Maximum length of a phone number */ +#define CALLUI_MAX_CALL_GROUP_MEMBER 5 /**< Maximum number of members in a group */ +#define CALLUI_MAX_CALL_MEMBER 8 /**< This is the maximum number of members possible */ +#define CALLUI_INVALID_CALL_ID 0 /**< This is the invalid entry for call ID */ + +#define NO_HANDLE 0 + +//typedef struct appdata callui_app_data_t; +typedef struct _call_contact_data_t { + gint person_id; /**< Contact index of the Caller */ + char call_disp_name[CALLUI_DISPLAY_NAME_LENGTH_MAX]; /**< Caller display name */ + char caller_id_path[CALLUI_IMAGE_PATH_LENGTH_MAX]; /**< Caller image path */ +} call_contact_data_t; + +typedef struct _call_data_t { + unsigned int call_id; + cm_call_direction_e call_direction; + char call_num[CALLUI_PHONE_NUMBER_LENGTH_MAX]; + char call_disp_num[CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX]; /**< Caller display number */ + long start_time; + cm_call_type_e call_type; /**< Specifies type of call (voice, data, emergency) */ + cm_call_state_e call_state; /**< Current Call state */ + int member_count; /**< Whether Call is in Conference or not and indicate the number of members in that conference*/ + gboolean is_emergency; /**< is emergency*/ + cm_call_domain_e call_domain; /**< Current Call domain */ + call_contact_data_t call_ct_info; /**< Contact information */ +}call_data_t; + +typedef struct appdata { + Evas *evas; + Evas_Object *win; + Evas_Object *win_conformant; + Evas_Object *nf; + Evas_Object *bg; + + /* Main Layout contents Start */ + Evas_Object *main_ly; + /* Main Layout contents End */ + Ecore_X_Atom quickpanel_scroll_state; /* Quick panel scrollable state */ + call_view_data_t *view_data; + + Evas_Object *ctxpopup; + Evas_Object *second_call_popup; + Evas_Object *bt_popup; + + view_manager_data_t *view_manager_handle; + + bool multi_call_list_end_clicked; + + lock_screen_data_t *lock_screen_handle; + + int root_w; /** + + + + + + + + + + diff --git a/org.tizen.call-ui.xml b/org.tizen.call-ui.xml new file mode 100755 index 0000000..c26e077 --- /dev/null +++ b/org.tizen.call-ui.xml @@ -0,0 +1,18 @@ + + + + Call UI Application + + + + + + + + + + + + http://tizen.org/privilege/notification + + diff --git a/packaging/org.tizen.call-ui.spec b/packaging/org.tizen.call-ui.spec new file mode 100755 index 0000000..c2756b9 --- /dev/null +++ b/packaging/org.tizen.call-ui.spec @@ -0,0 +1,74 @@ +Name: org.tizen.call-ui +Summary: Call UI Application +Version: 0.0.1 +Release: 1 +License: Apache-2.0 +Group: devel +Source0: %{name}-%{version}.tar.gz + +%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(appsvc) +BuildRequires: pkgconfig(callmgr_client) +BuildRequires: pkgconfig(ecore-x) +BuildRequires: pkgconfig(msg-service) +BuildRequires: pkgconfig(efl-extension) +BuildRequires: pkgconfig(utilX) +BuildRequires: cmake +BuildRequires: gettext-tools +BuildRequires: edje-tools +BuildRequires: pkgconfig(capi-network-bluetooth) +BuildRequires: pkgconfig(capi-network-connection) +BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(minicontrol-provider) +BuildRequires: pkgconfig(contacts-service2) +BuildRequires: pkgconfig(capi-system-device) +BuildRequires: pkgconfig(notification) +BuildRequires: pkgconfig(capi-system-runtime-info) +BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(capi-ui-efl-util) + +%description +Call UI application. + +%prep +%setup -q + +%build +export CFLAGS="${CFLAGS} -fvisibility=hidden" +export CXXFLAGS="${CXXFLAGS} -fvisibility-inlines-hidden -fvisibility=hidden" +export FFLAGS="${FFLAGS} -fvisibility-inlines-hidden -fvisibility=hidden" +%define PREFIX /usr +%define APPDIR %{PREFIX}/apps +%define PKGDIR %{APPDIR}/%{name} +%define BINDIR %{PKGDIR}/bin +%define RESDIR %{PKGDIR}/res + +cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +%make_install + +#install license file +mkdir -p %{buildroot}/usr/share/license +cp LICENSE %{buildroot}/usr/share/license/%{name} + +%post + +%files +%manifest %{name}.manifest +%defattr(-,root,root,-) +%{BINDIR}/* +%{RESDIR}/* +/usr/share/packages/* +/usr/share/license/%{name} +#/etc/smack/accesses2.d/%{name}.rule +/etc/smack/accesses.d/%{name}.efl diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt new file mode 100644 index 0000000..8368710 --- /dev/null +++ b/po/CMakeLists.txt @@ -0,0 +1,24 @@ +# for i18n + +SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${pofile}") + GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE) + SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND( + OUTPUT ${moFile} + COMMAND ${MSGFMT} -o ${moFile} ${absPofile} + DEPENDS ${absPofile} + ) + INSTALL(FILES ${moFile} + DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..62dcf4a --- /dev/null +++ b/po/ar.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "إضافة إلى جهات الاتصال" + +msgid "IDS_COM_SK_CANCEL" +msgstr "إلغاء" + +msgid "IDS_COM_SK_OK" +msgstr "موافق" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "إنشاء جهة اتصال" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "رسالة" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "رقم الطوارئ" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "الرجوع إلى المكالمة" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "فشل الإرسال." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "رفض الاتصال مع رسالة" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "انتقال" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "لوحة المفاتيح" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "للتبديل إلى استخدام جهاز البلوتوث، سيتم تشغيل البلوتوث." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "مكالمات فائتة" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "لا يمكن تشغيل الصوت الإضافي أثناء توصيل سماعات الأذن أو سماعة الرأس البلوتوث." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "لا يمكن تشغيل الصوت الإضافي أثناء توصيل سماعات الأذن." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "لا يمكن تشغيل الصوت الإضافي أثناء توصيل سماعة الرأس البلوتوث." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "جاري الاتصال..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "مكالمة فائتة" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "تحويل" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "الخدمات" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "استئناف المكالمة" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "إنهاء المكالمة الجماعية" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "إنهاء المكالمة مع %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "إنهاء كل المكالمات الحالية" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "مكالمة متعددة الأطراف" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "انقر نقراً مزدوجاً فوق رمز القفل لإلغاء قفل الجهاز" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "تشغيل البلوتوث" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "الرد على مكالمة" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "عرض تفاصيل جهة الاتصال" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "تحديث الموجود" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "مكبر الصوت" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "استئناف" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "رفض" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "كتم" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "إدارة" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "تعليق" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "جهات الاتصال" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "إنشاء رسالة لإرسالها" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "اتصال" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "البلوتوث" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "إضافة مكالمة" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "قبول" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "مع %d من الأشخاص" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "غير معروف" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "تعليق الاتصال بـ %s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "في انتظار" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "لا توجد رسائل" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "دمج" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "مكالمة واردة" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "تعليق مكالمة جارية" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "إنهاء المكالمات النشطة (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "جارٍ الاتصال عبر %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "متصلة عبر %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "تم الاتصال" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "تم إنهاء المكالمة" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d قيد التعليق" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "وضع %s قيد التعليق" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "اجتماع" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "العودة إلى شاشة الاتصال" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "مكالمة مرفوضة تلقائيا" + diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..5afae48 --- /dev/null +++ b/po/az.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Kontaktlara əlavə et" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Ləğv et" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Ad yaz" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mesaj" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Təcili yardım nömrəsi" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Zəng etmək üçün geri qayıdın" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Göndərmək mümkün olmadı." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Mesaj ilə zəngdən imtina edin" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Əvəz et" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Klaviat." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth cihazdan istifadəyə keçmək üçün Bluetooth yandırılacaq." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "buraxılmış zənglər" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Bluetooth qulaqlığı və ya qulaqlıqlar qoşulan zaman çox yüksək səsi yandırmaq olmaz." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Qulaqlıqlar qoşulan zaman çox yüksək səsi yandırmaq olmaz." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Bluetooth qulaqlığı qoşulan zaman çox yüksək səsi yandırmaq olmaz." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Yığılır..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Buraxılmış zəng" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Köçürülmə" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM Xidmətləri" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Zəngi bərpa et" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Konfrans zəngi bitir" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%s ilə zəngi bitir" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Bütün cari zəngləri bitir" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konfrans zəngi" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Cihazı kiliddən açmaq üçün kilid nişanına iki dəfə vurun" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetooth-u yandırın" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Zəngə cavab ver" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Kontakt məlumatına bax" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Mvcd olanı yenlə" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Dinamik" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Davam et" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Ä°mtina et" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Səssiz" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Ä°darə et" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Gözlət" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontaktlar" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Göndərmək üçün mesaj yarat" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Zəng" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Zng əlv.et" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Qəbul et" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d nəfərlə" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Naməlum" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s gözləməyə qoyulur" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Gözlədilr" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Mesaj yoxdur" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Birləşdir" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Gələn zəng" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Aktiv zəngi gözlədin" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Aktiv zəngləri bitir (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s ilə yığılır..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s ilə qoşulmuşdur" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Qoşulmuşdur" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Zəng bitdi" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d gözləmə" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s-i gözlət" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konfrans" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Zəng ekranına qayıt" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Avto-imtina edilmiş zəng" + diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..13c4472 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Добави към Тел. Указ." + +msgid "IDS_COM_SK_CANCEL" +msgstr "Отмени" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Създай запис" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Съобщение" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Номер за спешно повикване" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Назад към повикването" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Неуспешно изпращане." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Отхвърляне пов. със съобщение" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Замени" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Клавиат." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "За да превключите на използване на вашето Bluetooth устройство, Bluetooth ще бъде включен." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Пропyснати разговори" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Допълнителната сила на звука не може да бъде включена, докато има свързани слушалки или Bluetooth слушалка." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Допълнителната сила на звука не може да бъде включена, докато има свързани слушалки." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Допълнителната сила на звука не може да бъде включена, докато има свързана Bluetooth слушалка." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Набиране..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Пропуснат разговор" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Прехвърли" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM услуги" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Подновяване на разговор" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Прекратяване на конферентен разговор" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Край на разговора с %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Край на всички текущи повиквания" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Конферентен разговор" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Докоснете двукратно иконата за заключване, за да отключите устройството" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Включване на Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Отговаряне на повикване" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Преглед подроб. за контакт" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Актуал. съществ." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Високог" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Подновяв." + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Отказ" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Заглуш." + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Управление" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Задръж" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Указател" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Съставяне съобщ. за изпращане" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Повикване" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Доб. разг." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Приеми" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "С %d души" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Няма информация" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Разговорът с %s е задържан" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Задържане" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Няма съобщения" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Сливане" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Входящо повикване" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Задръж акт. разговор" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Край на активните (%d) разговори" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Набиране чрез %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Свързано чрез %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Свързано" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Разговорът завършен" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d задърж." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Задържане на %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Конферентен" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Връщане на екрана на пов." + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Автом. отхвърлено повикв." + diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..15de080 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Afegeix a Contactes" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancel" + +msgid "IDS_COM_SK_OK" +msgstr "Acceptar" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Crea contacte" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Missatge" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Número d'emergència" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Torna a la trucada" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Error en enviar" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rebutjar trucada amb missatge" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Intercanviar" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teclat" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Per canviar a utilitzar el seu dispositiu Bluetooth, s'activarà Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Trucades perdudes" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "El volum extra no es pot activar mentre els auriculars o els auriculars Bluetooth estan connectats." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "El volum extra no es pot activar mentre els auriculars estan connectats." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "El volum extra no es pot activar mentre els auriculars Bluetooth estan connectats." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Marcant..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Trucada perduda" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferir" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Serveis SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Reprendre trucada" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Finalitzar multiconferència" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Finalitzar trucada amb %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Finalitzar totes les trucades actuals" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Multiconferència" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Toqui dos cops la icona bloquejar per desbloquejar el dispositiu" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Activar el Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Respondre trucada" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Veure detalls del contacte" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Actual existents" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Altaveu" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Reprendre" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rebutjar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silenci" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gestionar" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Retenir" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contactes" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Redactar missatge per enviar" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Trucar" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Af trucada" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Acceptar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Amb %d persones" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Desconegut" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Posant %s en espera" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Retinguda" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "No hi ha cap missatge" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Fusionar" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Trucada d'entrada" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Retenir truc activa" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Finalitzar les trucades actives (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Marcant amb %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connectat amb %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connectat" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Trucada finalitzada" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d en esp" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Posar %s en espera" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferència" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Tornar a pant de trucada" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Trucada rebutjada auto" + diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..e85741e --- /dev/null +++ b/po/cs.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Přidat do Kontaktů" + +msgid "IDS_COM_SK_CANCEL" +msgstr "ZruÅ¡it" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Vytvořit kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Zpráva" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Číslo tísňového volání" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Zpět k hovoru" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Odeslání se nezdařilo." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Odmítnout hovor se zprávou" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Přepnout" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Klávesnice" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Chcete-li přepnout na zařízení Bluetooth, Bluetooth bude zapnuto." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Nepř. hovory" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Když jsou připojená sluchátka nebo sluchátka Bluetooth, nelze zapnout Dodatečnou hlasitost." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Když jsou připojená sluchátka, nelze zapnout Dodatečnou hlasitost." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Když jsou připojená sluchátka Bluetooth, nelze zapnout Dodatečnou hlasitost." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Připojuji hovor..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "ZmeÅ¡kaný hovor" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Přenos" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Služby karty SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Pokračovat v hovoru" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Ukončit konferenční hovor" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Ukončit hovor s %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Ukončit vÅ¡echny aktuální hovory" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenční hovor" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Poklepáním na ikonu zámku odemknete zařízení" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Zapnout Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Přijmout hovor" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Zobrazit detaily kontaktu" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Akt. stávající" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Reprod." + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Pokračovat" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Odmítnout" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Ztlumit" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Spravovat" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Podržet" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakty" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Vytvořit zprávu pro odeslání" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Volat" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Př. hovor" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Přijmout" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Počet účastníků: %d" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Neznámé" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Přidržení hovoru s %s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Za hovoru" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Žádné zprávy" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Sloučit" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Příchozí hovor" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Držet aktivní hovor" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Ukončit aktivní hovory (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Volám přes %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Připojen přes %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Připojeno" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Hovor ukončen" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d přidrž." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Přidržet %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konference" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Zpět na obrazovku hovoru" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom. odmítnutý hovor" + diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..5da1435 --- /dev/null +++ b/po/da.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Føj til kontakter" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Annullér" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Opret kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Besked" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Nødopkaldsnummer" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Tilbage til opkald" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Afsendelse mislykkedes." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Afvis opkald med besked" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Skift" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tastatur" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Hvis du skifter til at bruge din Bluetooth-enhed, bliver Bluetooth aktiveret." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Ubesvarede opkald" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ekstra lydstyrke kan ikke aktiveres, mens øretelefoner eller Bluetooth-headset er tilsluttet." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Ekstra lydstyrke kan ikke aktiveres, mens øretelefoner er tilsluttet." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ekstra lydstyrke kan ikke aktiveres, mens Bluetooth-headset er tilsluttet." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Ringer op..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Ubesvaret opkald" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Overfør" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-tjenester" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Genoptag samtale" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Afslut konferenceopkald" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Afslut opkald med %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Afslut alle aktuelle opkald" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenceopkald" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dobbelttryk pÃ¥ lÃ¥seikonet for lÃ¥se din enhed op" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Tænd for Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Besvar opkald" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Se kontaktdetaljer" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Opd. eksister." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Højttaler" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Genoptag" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Afvis" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Lydløs" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "HÃ¥ndter" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Sæt pÃ¥ hold" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakter" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Skriv den besked, du vil sende" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Opkald" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Tilf. opk." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Besvar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Med %d personer" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Ukendt" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Sætter %s pÃ¥ hold" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "PÃ¥ hold" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Ingen meddelelser" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Flet" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "IndgÃ¥ende opkald" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Hold aktivt opkald" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Afslut aktive opkald (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Ringer via %s ..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Forbundet via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Forbundet" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Opkald afsluttet" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d pÃ¥ hold" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Sæt %s pÃ¥ hold" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konference" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Tilbage til opkaldsskærm" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autoafviste opkald" + diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..6eb3bae --- /dev/null +++ b/po/de.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Zu Kontakten hinzufügen" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Abbrechen" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Neuer Kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Nachricht" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Notrufnummer" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Zurück zu Anruf" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Senden fehlgeschlagen" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Anruf mit Nachricht abweisen" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Tauschen" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tastenfeld" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Zur Verwendung Ihres Bluetooth-Geräts wird Bluetooth eingeschaltet." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Anr. in Abwesenheit" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Zusätzliche Lautstärke kann nicht eingeschaltet werden, solange Kopfhörer oder ein Bluetooth-Headset angeschlossen sind." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Zusätzliche Lautstärke kann nicht eingeschaltet werden, solange Kopfhörer angeschlossen sind." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Zusätzliche Lautstärke kann nicht eingeschaltet werden, solange ein Bluetooth-Headset angeschlossen ist." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Wählen ..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Anruf in Abwesenheit" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Übertragen" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-Dienste" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Anruf fortsetzen" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Telefonkonferenz beenden" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Anruf mit %s beenden" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Alle Anrufe beenden" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenz" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Tippen Sie zweimal auf das Sperrsymbol, um das Gerät zu entsperren." + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetooth einschalten" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Anruf annehmen" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Kontaktdetails anzeigen" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Zu Kontakt hzfg." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Lautsprecher" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Fortsetzen" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Abweisen" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Stumm" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Verwalten" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Halten" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakte" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Nachricht zum Senden verfassen" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Anruf" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Anruf hzfg." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Annehmen" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Mit %d Personen" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Unbekannt" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s halten" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Gehalten" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Keine Nachrichten" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Konferenz" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Eingehender Anruf" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Aktiven Anruf halten" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Aktive Anrufe beenden (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Wählen über %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Verbindung über %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Verbunden" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Anruf beendet" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d paus." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Anruf von %s halten" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferenz" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Zurück zum Anrufbildschirm" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom. abgelehnter Anruf" + diff --git a/po/el_GR.po b/po/el_GR.po new file mode 100644 index 0000000..2a67f06 --- /dev/null +++ b/po/el_GR.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Προσθήκη στις Επαφές" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Άκυρο" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Δημ/ργία επαφής" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Μήνυμα" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Αριθμός έκτακτης ανάγκης" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Επιστροφή στην κλήση" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Αποτυχία αποστολής." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Απόρριψη κλήσης με μήνυμα" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Εναλλ." + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Πληκτρολ." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Για να κάνετε εναλλαγή στη χρήση τάση συσκευής Bluetooth, θα ενεργοποιηθεί το Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Αναπάντητες" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της επιπλέον έντασης όταν είναι συνδεδεμένα τα ακουστικά ή το σετ μικροφώνου-ακουστικών Bluetooth." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της επιπλέον έντασης όταν είναι συνδεδεμένα τα ακουστικά." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της επιπλέον έντασης όταν είναι συνδεδεμένο το σετ μικροφώνου-ακουστικών Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Κλήση..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Αναπάντητη κλήση" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Μεταφορά" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Υπηρεσίες SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Συνέχιση κλήσης" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Τερματισμός κλήσης συνδιάσκεψης" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Τερματισμός κλήσης με %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Τερματισμός όλων των τρεχουσών κλήσεων" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Τηλεφωνική συνδιάσκεψη" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Πατήστε δύο φορές το εικονίδιο κλειδώματος, για να ξεκλειδώσετε τη συσκευή σας" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Ενεργοποίηση Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Απάντηση κλήσης" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Προβολή στοιχείων επαφής" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Ενημ. υπαρχόντων" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Ηχείο" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Συνέχεια" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Απόρριψη" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Σίγαση" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Διαχείριση" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Αναμονή" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Επαφές" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Σύνταξη μηνύματος για αποστολή" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Κλήση" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Πρ. κλήσ." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Αποδοχή" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Με %d άτομα" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Άγνωστο" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Θέτοντας %s σε αναμονή" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Αναμονή" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Κανένα μήνυμα" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Συγχώνευση" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Εισερχόμενη κλήση" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Ενερ. κλήση σε κράτ." + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Τερματισμός ενεργών κλήσεων (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Κλήση μέσω %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Συνδέθηκε μέσω %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Συνδέθηκε" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "H κλήση τερματίστ." + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d σε ανα." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Ενεργοποίηση αναμονής για %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Συνδιάσκεψη" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Επιστροφή στην οθ. κλήσης" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Αυτ. απόρριψη κλήσης" + diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..508ef0f --- /dev/null +++ b/po/en.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Add to Contacts" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancel" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Create contact" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Message" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Emergency number" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Back to call" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Sending failed." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Reject call with message" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Swap" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Keypad" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "To switch to using your Bluetooth device, Bluetooth will be turned on." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Missed calls" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume cannot be turned on while earphones or Bluetooth headset connected." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Extra volume cannot be turned on while earphones connected." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume cannot be turned on while Bluetooth headset connected." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Dialling..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Missed call" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transfer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM services" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Resume call" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "End conference call" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "End call with %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "End all current calls" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conference call" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Double tap the lock icon to unlock your device" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Turn on Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Answer call" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "View contact details" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Update existing" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Speaker" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Resume" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Reject" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Mute" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Manage" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Hold" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacts" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Compose message to send" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Call" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Add call" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Accept" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "With %d people" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Unknown" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Putting %s on hold" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "On hold" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "No messages" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Merge" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Incoming call" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Hold active call" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "End active calls (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Dialling via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connected via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connected" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Call ended" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d on hold" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Put %s on hold" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conference" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Return to call screen" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Auto rejected call" + diff --git a/po/en_PH.po b/po/en_PH.po new file mode 100644 index 0000000..29b2c87 --- /dev/null +++ b/po/en_PH.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Add to contacts" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancel" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Create contact" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Message" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Emergency number" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Back to call" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Sending failed." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Reject call with message" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Swap" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Keypad" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "To switch to using your Bluetooth device, Bluetooth will be turned on." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Missed calls" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume cannot be turned on while earphones or Bluetooth headset connected." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Extra volume cannot be turned on while earphones connected." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume cannot be turned on while Bluetooth headset connected." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Dialing..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Missed call." + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transfer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM services" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Resume call" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "End conference call" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "End call with %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "End all current calls" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conference call" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Double tap the lock icon to unlock your device" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Turn on Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Answer call" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "View contact details" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Update existing" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Speaker" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Resume" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Reject" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Mute" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Manage" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Hold" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacts" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Compose message to send" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Call" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Add call" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Accept" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "With %d people" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Unknown" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Putting %s on hold" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "On hold" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "No messages" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Merge" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Incoming call" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Hold active call" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "End active calls (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Dialing via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connected via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connected" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Call ended" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d on hold" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Put %s on hold" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conference" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Return to call screen" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Auto rejected call" + diff --git a/po/en_US.po b/po/en_US.po new file mode 100644 index 0000000..d3f8d38 --- /dev/null +++ b/po/en_US.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Add to contacts" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancel" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Create contact" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Message" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Emergency number" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Back to call" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Sending failed" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Reject call with message" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Swap" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Keypad" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "To switch to using your Bluetooth device, Bluetooth will be turned on." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Missed calls" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume cannot be turned on while earphones or Bluetooth headset connected." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Extra volume cannot be turned on while earphones connected." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume cannot be turned on while Bluetooth headset connected." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Dialing..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Missed call" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transfer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM services" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Resume call" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "End conference call" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "End call with %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "End all current calls" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conference call" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Double tap the lock icon to unlock your device" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Turn on Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Answer call" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "View contact details" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Update existing" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Speaker" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Resume" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Reject" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Mute" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Manage" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Hold" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacts" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Compose message to send" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Call" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Add call" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Accept" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "With %d people" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Unknown" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Putting %s on hold" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "On hold" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "No messages" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Merge" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Incoming call" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Hold active call" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "End active calls (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Dialing via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connected via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connected" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Call ended" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d on hold" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Put %s on hold" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conference" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Return to call screen" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Auto rejected call" + diff --git a/po/es_ES.po b/po/es_ES.po new file mode 100644 index 0000000..e6c4fc2 --- /dev/null +++ b/po/es_ES.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Añadir a Contactos" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_SK_OK" +msgstr "Aceptar" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Crear contacto" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mensajes" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Emergencias" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Volver a la llamada" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Error al enviar" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rechazar llamada con mensaje" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Cambiar" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Para usar el dispositivo Bluetooth, se activará el Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Llams perd" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "El volumen extra no se puede activar mientras que el auricular Bluetooth o los auriculares convencionales estén conectados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "El volumen extra no se puede activar mientras que los auriculares estén conectados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "El volumen extra no se puede activar mientras que el auricular Bluetooth esté conectado." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Marcando..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Llamada perdida" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferir" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Servicios SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Reanudar llamada" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Finalizar llamada de conferencia" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Finalizar llamada con %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Finalizar todas las llamadas actuales" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Multiconferencia" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Pulse dos veces el icono de bloqueo para desbloquear su dispositivo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Activar Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Responder llamada" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Ver detalles de contacto" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Actualiz. exist." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Altavoz" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Reanudar" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rechazar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silencio" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gestionar" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Retener" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contactos" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Crear mensaje para enviar" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Llamar" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Añadir llamada" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Aceptar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Con %d personas" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Desconocido" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Poniendo %s en espera" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "En espera" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "No hay mensajes" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Fusionar" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Llamada entrante" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Poner llam act esper" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Finalizar llamadas activas (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Marcando con %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Conectado por %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Conectado" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Fin llamada" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d en esp" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Poner a %s en espera" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferencia" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Volver a pantalla llamada" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Llamada rechazada auto" + diff --git a/po/es_US.po b/po/es_US.po new file mode 100644 index 0000000..7aba116 --- /dev/null +++ b/po/es_US.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Añadir a Contactos" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_SK_OK" +msgstr "Aceptar" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Crear contacto" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mensaje" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Emergencia" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Volver a la llamada" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Error al enviar." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rechazar llamada con un mensaje" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Cambiar" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Para usar el dispositivo Bluetooth, se activará el Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Llamadas perdidas" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "El volumen extra no se puede activar mientras el auricular o el auricular Bluetooth estén conectados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "El volumen extra no se puede activar mientras el auricular esté conectado." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "El volumen extra no se puede activar mientras el auricular Bluetooth esté conectado." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Marcando..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Llamada perdida" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferir" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Servicios SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Reanudar llamada" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Finalizar multiconferencia" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Finalizar llamada con %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Terminar todas las llamada actuales" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Multiconferencia" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Pulsar el ícono de bloqueo dos veces para desbloquear el dispositivo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Activar Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Responder llamada" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Ver detalles de contacto" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Actualizar" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Altavoz" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Reanudar" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rechazar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silenciar" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Administrar" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Retener" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contactos" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Redactar mensaje para enviar" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Llamar" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Añadir" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Aceptar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Con %d personas" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Desconocido" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Poner a %s en espera" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "En espera" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "No hay mensajes" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Conferencia" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Llamada entrante" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Llam. act. en espera" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Finalizar llamadas activas (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Marcando vía %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Conectado a %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Conectado" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Llamada finalizada" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d en espera" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Poner a %s en espera" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Multiconferencia" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Volver a pantalla llamada" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Llamada rechazada auto." + diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..ccdb9fc --- /dev/null +++ b/po/et.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Lisa kontaktidesse" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Tühista" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Loo kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Sõnum" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Hädaabinumber" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Tagasi kõne juurde" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Saatmine nurjus." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Keeldu sõnumiga" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Vaheta" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Klahvid" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth-seadme kasutamiseks lülitatakse Bluetooth sisse." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Vastamata" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Lisahelitugevust ei saa sisse lülitada sel ajal, kui kõrvaklapid või Bluetooth-peakomplekt on ühendatud." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Lisahelitugevust ei saa sisse lülitada sel ajal, kui kõrvaklapid on ühendatud." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Lisahelitugevust ei saa sisse lülitada sel ajal, kui Bluetooth-peakomplekt on ühendatud." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Ühenduse loomine..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Vastamata kõne" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Edasta" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-teenused" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Jätka kõnet" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Lõpeta konverentskõne" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Lõpeta kõne kontaktiga %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Lõpeta kõik aktiivsed kõned" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Liitu konverentskõnega" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Seadme avamiseks toksake kaks korda lukuikooni" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Lülita Bluetooth sisse" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Vasta kõnele" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Kuva kontakti üksikasjad" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Uuenda praegune" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Kõlar" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Taasta" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Keeldu" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Vaigista" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Halda" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Ootele" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontaktid" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Koosta sõnum saatmiseks" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Helista" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Lisa kõne" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Nõustu" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Koos %d inimesega" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Tundmatu" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Kõne kontaktiga %s pannakse ootele" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Ootel" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Sõnumid puuduvad" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Ühenda" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Sissetulev kõne" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Aktiivne kõne ootele" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Lõpeta aktiivne kõne (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Valimine üksuse %s kaudu..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Ühendatud üksuse %s kaudu" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Ühendatud" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Kõne lõppes" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d ootel" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Pane %s ootele" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konverentskõne" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Naase kõneekraanile" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom. keeldutud kõne" + diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..1e8b3b8 --- /dev/null +++ b/po/eu.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Kontaktuetara gehitu" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Ezeztatu" + +msgid "IDS_COM_SK_OK" +msgstr "Ados" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Kontaktua sortu" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mezua" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Larrialdietarako zenbakia" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Deira itzuli" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Bidaltzerakoan akatsa" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Ukatu deia mezuaz" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Ordezkatu" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teklatua" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Zure Bluetooth gailua erabiltzen hasteko, Bluetootha piztuko da." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Galdutako deiak" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ezin da bolumen gehigarria piztu aurikularrak edo Bluetooth aurikularrak konektatuta badaude." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Ezin da bolumen gehigarria piztu aurikularrak konektatuta badaude." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ezin da bolumen gehigarria piztu Bluetooth aurikularrak konektatuta badaude." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Markatzen..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Galdutako deia" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferitu" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM zerbitzuak" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Berreskuratu deia" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Amaitu konferentzia deia" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Amaitu %s-(r)ekin duzun deia" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Amaitu oraingo dei guztiak" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Hizketaldi deia" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Ukitu bi aldiz blokeo ikonoa, gailua desblokeatzeko" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Piztu Bluetootha" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Erantzun deia" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Ikusi kontaktu xehetasunak" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Eguner. daudenak" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Bozgor." + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Berrabiar." + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Ukatu" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Isilarazi" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Kudeatu" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Mantendu" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontaktuak" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Idatzi bidaltzeko mezua" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Deitu" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetootha" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Gehi. deia" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Onartu" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d pertsonarekin" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Ezezaguna" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s zain jartzen" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Egonean" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Mezurik ez" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Bateratu" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Sarrerako deia" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Eutsi dei aktiboa" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Amaitu aktibo dauden deiak (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s bidez markatzen..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s bidez konektatuta" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Konektatuta" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Deia amaituta" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d egonean" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Jarri %s zain" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferentzia" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Itzuli dei pantailara" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Ukatu deia automatikoki" + diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..170fccb --- /dev/null +++ b/po/fi.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Lisää yhteystietoihin" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Peruuta" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Luo yhteystieto" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Viesti" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Hätänumero" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Takaisin puheluun" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Lähetys epäonnistui." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Hylkää puhelu viestillä" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Vaihda" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Nronäpp." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth otetaan käyttöön, jotta voit siirtyä käyttämään Bluetooth-laitetta." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Ei vast. puh" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Lisävoimakkuutta ei voi ottaa käyttöön, kun kuulokkeet tai Bluetooth-kuulokemikrofoni on yhdistetty." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Lisävoimakkuutta ei voi ottaa käyttöön, kun kuulokkeet on yhdistetty." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Lisävoimakkuutta ei voi ottaa käyttöön, kun Bluetooth-kuulokemikrofoni on yhdistetty." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Soitetaan..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Vastaamaton puhelu" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Siirrä" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-palvelut" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Jatka puhelua" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Lopeta neuvottelupuhelu" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Lopeta puhelu henkilön %s kanssa" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Lopeta kaikki käynnissä olevat puhelut" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Neuvottelupuhelu" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Poista laitteen lukitus kaksoisnapauttamalla lukon kuvaketta" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Käynnistä Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Vastaa puheluun" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Näytä yhteystiedot" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Päivitä nykyiset" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Kaiutin" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Jatka" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Hylkää" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Mykistä" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Hallinta" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Pitoon" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Yhteystiedot" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Luo lähetettävä viesti" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Puhelu" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Lisää puh." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Vastaa" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d ihmisen kanssa" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Tuntematon" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s on asetettu pitoon" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Pidossa" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Ei viestejä" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Yhdistä" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Saapuva puhelu" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Akt. puhelu pitoon" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Lopeta aktiiviset puhelut (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Soitto kortilta %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Yhdistetty kortilta %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Yhdistetty" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Puhelu päättyi" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d pidossa" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Aseta %s pitoon" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Neuvottelu" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Palaa puhelunäyttöön" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom. hylätty puhelu" + diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..96b1b70 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Ajouter aux contacts" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Annuler" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Créer un contact" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Message" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Numéro d'urgence" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Retour à l'appel" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Échec de l'envoi." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rejeter l'appel avec un message" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Permuter" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Clavier" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Pour passer en mode Bluetooth sur votre appareil, le Bluetooth va être activé." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Appels manqués" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs ou un casque Bluetooth sont connectés." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs sont connectés." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Impossible d'utiliser le volume supplémentaire lorsqu'un casque Bluetooth est connecté." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Composition..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Appel manqué" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transférer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Services SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Reprendre l'appel" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Interrompre la conférence audio" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Terminer l'appel avec %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Terminer tous les appels en cours" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conférence téléphonique" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Appuyer deux fois sur l'icône de verrouillage pour déverrouiller l'appareil" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Activer Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Répondre à l'appel" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Afficher les détails" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "MAJ cont. exist." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "HP" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Reprendre" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Refuser" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Muet" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gérer" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Attente" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacts" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Composer le message à envoyer" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Appeler" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Ajouter" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Accepter" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Avec %d personnes" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Appel masqué" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Mettre %s en attente" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Attente" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Aucun message" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Fusionner" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Appel entrant" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Mettre en attente" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Terminer appels actifs (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Numérotation via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connecté via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connecté" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Appel terminé" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d en att." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Mettre %s en attente" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conférence" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Revenir à l'écran d'appel" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Appel rejeté auto" + diff --git a/po/fr_CA.po b/po/fr_CA.po new file mode 100644 index 0000000..20c1d7a --- /dev/null +++ b/po/fr_CA.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Ajouter aux contacts" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Annuler" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Nouveau contact" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Message" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Numéro d'urgence" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Retour à l'appel" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Échec de l'envoi." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rejeter l'appel avec un message" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Permuter" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Clavier" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Pour passer en mode Bluetooth sur votre appareil, le Bluetooth va être activé." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Appels manqués" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs ou un casque Bluetooth sont connectés." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs sont connectés." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Impossible d'utiliser le volume supplémentaire lorsqu'un casque Bluetooth est connecté." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Composition..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Appel manqué" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transférer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Services SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Reprendre l'appel" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Interrompre la conférence audio" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Terminer l'appel avec %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Terminer tous les appels en cours" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conférence téléphonique" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Touchez deux fois sur l'icône de verrouillage pour déverrouiller l'appareil" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Activer Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Répondre à l'appel" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Afficher les détails" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "MÀJ contact" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "HP" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Reprendre" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Refuser" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Muet" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gérer" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Attente" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacts" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Composer le message à envoyer" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Appel" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Ajouter" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Accepter" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Avec %d personnes" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Appel masqué" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Mettre %s en attente" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "En attente" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Aucun message" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Fusionner" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Appel entrant" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Mettre en attente" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Terminer appels actifs (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Numérotation via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connecté via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connecté" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Appel terminé" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d en att." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Mettre %s en attente" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conférence" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Revenir à l'écran d'appel" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Appel rejeté auto" + diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..3f8e477 --- /dev/null +++ b/po/ga.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Cuir le Teagmhálaithe" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cuir ar ceal" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Déan teagmhálaí" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Teachtaireacht" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Uimhir éigeandála" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Siar chuig glao" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Theip ar sheoladh." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Diúltaigh do ghlao le tcht" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Malartú" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Eochaircheap" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Casfar Bluetooth air le haistriú chuig do gléas Bluetooth a úsáid" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Glaonna caillte" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ní féidir airde bhreise a chasadh air agus cluasáin nó gléas cinn Bluetooth ceangailte." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Ní féidir airde bhreise a chasadh air agus na cluasáin ceangailte." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ní féidir airde bhreise a chasadh air agus gléas cinn Bluetooth ceangailte." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Ag diailiú..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Glao caillte" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Aistrigh" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Seirbhísí SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Téigh ar ais chuig an nglao" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Scoir glao comhdhála" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Scoir glao le %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Scoir gach glao reatha" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Glao comhdhála" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Déthapáil an cnaipe Glasáil le do ghléas a dhíghlasáil" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Cas Bluetooth air" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Freagair glao" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Amh. ar shonraí teagmhálaí" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Nuashonraigh é" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Callaire" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Atosaigh" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Diúltaigh" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Balbh" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Bainistigh" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Ar Fionraí" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Teagmhálaithe" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Cum teachtaireacht le seoladh" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Glaoigh" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Glao leis" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Glac leis" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Le %d duine" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Anaithnid" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s á chur ar fionraí" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Ar fionraí" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Níl teachtaireachtaí ann" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Cumasc" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Glao isteach" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Fionraigh glao gníomhach" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Críochnaigh glaonna gníomhacha (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Diailiú le %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Nasctha trí %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Nasctha" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Glao scortha" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d ar fionraí" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Cuir %s ar fionraí" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Comhdháil" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Fill ar an scáileán glao" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Glao diúlt. go huathoib." + diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..c1270aa --- /dev/null +++ b/po/gl.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Engadir a Contactos" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_SK_OK" +msgstr "Aceptar" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Crear contacto" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mensaxe" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Número de urxencia" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Volver á chamada" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Erro de envío" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rexeitar chamada cunha mensaxe" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Cambiar" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Para cambiar a usar o dispositivo Bluetooth, o Bluetooth activarase." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Chamadas perdidas" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Non se pode activar Volume extra cos auriculares ou o auricular Bluetooth conectados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Non se pode activar Volume extra cos auriculares conectados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Non se pode activar Volume extra cos auriculares Bluetooth conectados." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Marcando..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Chamada perdida" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferir" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Aplicacións SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Continuar chamada" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Finalizar chamada de conferencia" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Finalizar chamada con %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Finalizar todas as chamadas actuais" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Multiconferencia" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Toca dúas veces na icona de bloqueo para desbloquear o dispositivo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Activar o Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Responder chamada" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Ver detalles do contacto" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Actualizar exist" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Altof." + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Continuar" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rexeitar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silenc." + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Xestionar" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "En esp." + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contactos" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Redactar mensaxe para enviar" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Chamar" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Eng cham" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Aceptar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Con %d persoas" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Descoñecido" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Colocando a %s en espera" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "En espera" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Non hai mensaxes" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Fusionar" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Chamada entrante" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Manter chamada act." + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Finalizar chamadas activas (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Marcando con %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Conectado por %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Conectado" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Chamada finalizada" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d en esp." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Poñer %s en espera" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferencia" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Volver á pantalla chamada" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Chamada rexeitada autom." + diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 0000000..aea9889 --- /dev/null +++ b/po/hi.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "संपर्को में जोड़ें" + +msgid "IDS_COM_SK_CANCEL" +msgstr "रद्द" + +msgid "IDS_COM_SK_OK" +msgstr "ओके" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "संपर्क बनाएं" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "सन्देश" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "आपातकालीन नंबर" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "कॉल पर वापस" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "भेजना विफल हुआ।" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "संदेश के साथ कॉल अस्वीकारें" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "स्वैप" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "कीपैड" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "अपने ब्लूटूथ डिवाइस का उपयोग करने हेतु स्विच करने के लिए, ब्लूटूथ को चालू किया जाएगा।" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "छूटी कॉल्स" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "इयरफ़ोन्स या ब्‍लूटूथ हेडसेट कनेक्ट रहने के दौरान अतिरिक्त वॉल्यूम चालू नहीं किया जा सकता है।" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "इयरफ़ोन्स कनेक्ट रहने के दौरान अतिरिक्त वॉल्यूम चालू नहीं किया जा सकता।" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "ब्‍लूटूथ हेडसेट कनेक्ट रहने के दौरान अतिरिक्त वॉल्यूम चालू नहीं किया जा सकता।" + +msgid "IDS_CALL_POP_DIALLING" +msgstr "डायल हो रहा है..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "छूटी कॉल" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "स्थानांतरण" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM सेवाएँ" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "कॉल फिर शुरू करें" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "कॉन्‍फ़्रेंस कॉल समाप्त करें" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%s के साथ कॉल समाप्त करें" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "सभी चालू कॉल्स समाप्त करें" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "कॉन्फ्रेंस कॉल" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "अपने डिवाइस को अनलॉक करने के लिए लॉक चिह्न पर दो बार टैप करें" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "ब्लूटूथ चालू करें" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "कॉल का उत्तर दें" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "संपर्क विवरण देखें" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "मौजूदा अपडेट करें" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "स्पीकर" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "पुनः शुरू" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "अस्वीकारे" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "मूक" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "प्रबंधित करें" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "होल्ड" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "सं‍पर्क" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "भेजने के लिए सन्देश लिखें" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "कॉल" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "ब्लूटूथ" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "कॉल जोड़ें" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "स्‍वीकारे" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d लोगों के साथ" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "अज्ञात" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s को प्रतीक्षा में रख रहे है" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "होल्‍ड पर" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "सन्देश नहीं" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "मिलाएं" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "आनेवाली कॉल" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "सक्रिय कॉल होल्ड करें" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "सक्रिय कॉल समाप्त करें (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s के द्वारा डायल कर रहा है..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s द्वारा कनेक्ट किया गया" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "कनेक्ट किया गया" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "कॉल समाप्त" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d होल्ड पर" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s होल्ड पर रखें" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "कॉन्‍फ़्रेंस" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "कॉल स्क्रीन पर वापस जाएँ" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "स्वतः अस्वीकृत कॉल" + diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..cb26109 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Dodaj u Imenik" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Prekid" + +msgid "IDS_COM_SK_OK" +msgstr "U redu" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Novi kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Poruka" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "SOS broj" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Natrag na poziv" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Slanje neuspjeÅ¡no." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Odbijanje poziva\nuz poruku" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Zamijeni" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tipkovnica" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Za prebacivanje na koriÅ¡tenje Bluetooth uređaja uključit će se Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "PropuÅ¡teni pozivi" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Nije moguće uključiti dodatnu glasnoću dok su uključene sluÅ¡alice ili Bluetooth sluÅ¡alice." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Nije moguće uključiti dodatnu glasnoću dok su uključene sluÅ¡alice." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Nije moguće uključiti dodatnu glasnoću dok su uključene Bluetooth sluÅ¡alice." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Pozivanje..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "PropuÅ¡teni poziv" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Prijenos" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM usluge" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Nastavak poziva" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Prekini konferencijski poziv" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Prekid poziva s %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Prekini sve trenutne pozive" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferencijski poziv" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dvaput dodirnite ikonu zaključavanja da biste otključali uređaj" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Uključi Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Preuzmi poziv" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Detalji kontakta" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Aktualiziraj" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Zvučnik" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Nastavi" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Odbaci" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "BeÅ¡umno" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Uredi" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Čekanje" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Imenik" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Sastavi poruku za slanje" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Poziv" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Dodaj poziv" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Prihvati" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "S %d ljudi" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Nepoznato" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Staviti %s na čekanje" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Na ček." + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nema poruka" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Spoji" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Dolazni poziv" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Preuzmi drugi poziv" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Prekini aktivne pozive (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Biranje putem %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Povezano putem %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Spojen" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "ZavrÅ¡en poziv" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d na ček." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Stavi %s na čekanje" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferencija" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Natrag na zaslon za poziv." + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Poziv auto. odbačen" + diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..250822f --- /dev/null +++ b/po/hu.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Kapcsolatokhoz ad" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Mégse" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Új névjegy" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Üzenet" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Segélyhívó szám" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Vissza a híváshoz" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "A küldés sikertelen." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Híváselutasítás üzenetben" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Átvált" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Bill.-zet" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Ha átvált a Bluetooth-eszköz használatára, bekapcsol a Bluetooth funkció." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Nem fogadott" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Csatlakoztatott fülhallgató vagy Bluetooth-headset mellett nem kapcsolható be a többlethangerő." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Csatlakoztatott fülhallgató mellett nem kapcsolható be a többlethangerő." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Csatlakoztatott Bluetooth-headset mellett nem kapcsolható be a többlethangerő." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Hívás..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Nem fogadott hívás" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Átad" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-szolgáltatások" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Hívás folytatása" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Konferenciahívás befejezése" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%s partnerrel folytatott hívás befejezése" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Minden zajló hívás befejezése" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenciahívás" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Az eszköz feloldásához érintse meg kétszer a Lakat ikont" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Kapcsolja be a Bluetooth-t" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Hívás fogadása" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Névjegyadatok megtekintése" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Megl. frissítése" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Hangsz." + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Folytatás" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Elutasít" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Némít" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Kezelés" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Tart" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Névjegyek" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Elküldendő üzenet írása" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Hívás" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Új hívás" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Fogad" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d résztvevő" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Ismeretlen" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s tartásba helyezése" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Tartásban" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nincs üzenet" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Egyesítés" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Bejövő hívás" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Aktív hívás tartása" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Aktív hívások bontása (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Hívás a(z) %s használatával..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s használatával kapcsolódott" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Kapcsolódva" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Hívás vége" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d tartva" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s tartásba helyezése" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferencia" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Vissza a hívásképernyőhöz" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Aut. elutasított hívás" + diff --git a/po/hy.po b/po/hy.po new file mode 100644 index 0000000..341b267 --- /dev/null +++ b/po/hy.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Ավելացնել Կոնտակտներում" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Չեղարկել" + +msgid "IDS_COM_SK_OK" +msgstr "Ընդունել" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Ստեղծել Õ¯Õ¸Õ¶Õ¿Õ¡Õ¯Õ¿" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Հաղորդագրություն" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Վթարային համար" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "ÔµÕ¿ Õ¤Õ¡Õ¼Õ¶Õ¡Õ¬ Õ¯Õ¡Õ¶Õ¹Õ«Õ¶" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Ուղարկումը ձախողվեց:" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Մերժել Õ¦Õ¡Õ¶Õ£Õ¨ հաղորդագրությամբ" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Փոխարկում" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Ստեղնաշար" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Ձեր Bluetooth սարքով փոխարկելու համար միացրեք Bluetooth-Õ¨:" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Բցթղծ կանչեր" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ձայնի լրացուցիչ ուժգնությունը Õ¹Õ« կարող միացվել, երբ ականջակալները Õ¯Õ¡Õ´ Bluetooth Õ£Õ¬Õ­Õ¡ÕµÕ«Õ¶ Õ°Õ¥Õ¼Õ¡Õ­Õ¸Õ½Õ¨ միացված Õ¥Õ¶:" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Ձայնի լրացուցիչ ուժգնությունը Õ¹Õ« կարող միացվել, երբ ականջակալները միացված Õ¥Õ¶:" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ձայնի լրացուցիչ ուժգնությունը Õ¹Õ« կարող միացվել, երբ Bluetooth Õ£Õ¬Õ­Õ¡ÕµÕ«Õ¶ Õ°Õ¥Õ¼Õ¡Õ­Õ¸Õ½Õ¨ միացված Õ§:" + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Համարհավաքում..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Բացթողած Õ¦Õ¡Õ¶Õ£" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Փոխանցել" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM ծառայություններ" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Վերսկսել Õ¯Õ¡Õ¶Õ¹Õ¨" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Ավարտել Õ°Õ¥Õ¼Õ¡Õ­Õ¸Õ½Õ¡ÕµÕ«Õ¶ խորհրդակցությունը" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Ավարտել Õ¯Õ¡Õ¶Õ¹Õ¨ %sÕ« Õ°Õ¥Õ¿" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Ավարտել բոլոր ընթացիկ կանչերը" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Հեռախոսային կոնֆերանս" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Կրկնակի թակեք Õ¯Õ¸Õ²ÕºÕ´Õ¡Õ¶ պատկերակը՝ սարքն արգելաբացելու համար" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Միացնել Bluetooth-Õ¨" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Պատասխանել Õ¯Õ¡Õ¶Õ¹Õ«Õ¶" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Ô´Õ«Õ¿Õ¥Õ¬ Õ¯Õ¸Õ¶Õ¿Õ¡Õ¯Õ¿Õ¡ÕµÕ«Õ¶ տվյալներ" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Թարմացնել Õ¥Õ²Õ¡Õ®Õ¨" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Բրձրխոս" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Վերսկսել" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Մերժել" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Ô±Õ¶Õ±Õ¡ÕµÕ¶" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Կառավարել" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Պահել" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Կոնտակտներ" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Հղրդգրթյուն գրել ուղարկելու հր" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Ô¿Õ¡Õ¶Õ¹" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Ավլց. Õ¯Õ¡Õ¶Õ¹" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Ընդունել" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d հոգու Õ°Õ¥Õ¿" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Ô±Õ¶Õ°Õ¡ÕµÕ¿" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s հետաձգվում Õ§" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Սպասման Õ´Õ¥Õ» Õ§" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Հաղորդագրություններ Õ¹Õ¯Õ¡Õ¶" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Միավորել" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Մուտքային Õ¯Õ¡Õ¶Õ¹" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Պահել Õ¡Õ¯Õ¿Õ«Õ¾ Õ¦Õ¡Õ¶Õ£Õ¨" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Ավարտել Õ¡Õ¯Õ¿Õ«Õ¾ կանչերը (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Համարը հավաքվում Õ§ %s-Õ¸Õ¾..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Միացված Õ§ %s-Õ¸Õ¾" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Միացված Õ§" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Ô¿Õ¡Õ¶Õ¹Õ¶ ավարտված Õ§" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d` Õ½ÕºÕ¡Õ½Õ¸Õ²" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Հետաձգել %sÕ« Õ¯Õ¡Õ¶Õ¹Õ¨" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Կոնֆերանս" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Վերադառնալ Õ¯Õ¡Õ¶Õ¹Õ« էկրան" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Ինքնաբերաբար մերժված Õ¦Õ¡Õ¶Õ£" + diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..da9e689 --- /dev/null +++ b/po/is.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Bæta við tengiliði" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Hætta við" + +msgid "IDS_COM_SK_OK" +msgstr "Í lagi" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Nýr tengiliður" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Skilaboð" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Neyðarnúmer" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Aftur í símtal" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Sending mistókst." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Hafna símtali með skilaboðum" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Skipta" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Takkaborð" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Til að hægt sé að nota Bluetooth-tækið þitt verður kveikt á Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Ósvöruð símtöl" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ekki er hægt að kveikja á auknum hljóðstyrk þegar heyrnartól eða Bluetooth-höfuðtól eru tengd." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Ekki er hægt að kveikja á auknum hljóðstyrk þegar heyrnartól eru tengd." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ekki er hægt að kveikja á auknum hljóðstyrk þegar Bluetooth-höfuðtól eru tengd." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Verið er að hringja..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Ósvarað" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Flytja" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-þjónusta" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Halda símtali áfram" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Ljúka símafundi" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Ljúka símtali við %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Ljúka öllum símtölum" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Símafundur" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Pikkaðu tvisvar á lástáknið til að taka tækið úr lás" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Kveikja á Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Svara símtali" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Skoða samskiptaupplýsingar" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Uppfæra" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Hátalari" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Halda áfr." + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Hafna" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Hljóð af" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Umsjón" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Setja í bið" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Símaskrá" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Skrifa skilaboð til að senda" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Símtal" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Símtal" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Samþykkja" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Með %d aðilum" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Óþekkt" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Setja %s í bið" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Í bið" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Engin boð" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Sameina" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Móttekið símtal" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Virkt símtal í bið" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Ljúka símtali í gangi (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Hringt um %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Tengt gegnum %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Tengt" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Símtali lokið" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d í bið" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Setja %s í bið" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Símafundur" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Fara aftur á símtalsskjá" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Sjálfkrafa hafnað símtal" + diff --git a/po/it_IT.po b/po/it_IT.po new file mode 100644 index 0000000..9d566be --- /dev/null +++ b/po/it_IT.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Aggiungi a Rubrica" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Annulla" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Aggiungi" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Messaggio" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Numero di emergenza" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Torna alla chiamata" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Invio non riuscito." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rifiuta chiamata con messaggio" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Scambia" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tastiera" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Il Bluetooth verrà attivato per iniziare a usare il dispositivo Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Chiamate perse" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Non è possibile attivare il volume aggiuntivo quando gli auricolari o l'auricolare Bluetooth sono connessi." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Non è possibile attivare il volume aggiuntivo quando gli auricolari sono connessi." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Non è possibile attivare il volume aggiuntivo quando l'auricolare Bluetooth è connesso." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Composizione..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Chiamata persa" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Trasferisci" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Servizi SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Riprendi chiamata" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Termina conferenza" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Termina chiamata con %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Termina tutte le chiamate correnti" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conferenza" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Toccate due volte l'icona Blocca per sbloccare il dispositivo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Attiva Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Rispondi" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Vedi dettagli contatto" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Aggiorna" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Vivavoce" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Riprendi" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rifiuta" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Muto" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gestisci" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "In attesa" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Rubrica" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Crea messaggio da inviare" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Chiama" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Chiama" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Accetta" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Con %d persone" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Sconosciuto" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Metti %s in attesa" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "In attesa" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nessun messaggio" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Unisci" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Chiamata in arrivo" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Ch. attiva in attesa" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Termina chiamate attive (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Composizione con %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Connesso con %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Connesso" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Chiamata terminata" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d in att." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Metti %s in attesa" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferenza" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Ritorna a scherm. chiamata" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Chiamata rifiutata autom." + diff --git a/po/ja_JP.po b/po/ja_JP.po new file mode 100644 index 0000000..31b2dc5 --- /dev/null +++ b/po/ja_JP.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "連絡先に追加" + +msgid "IDS_COM_SK_CANCEL" +msgstr "キャンセル" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "連絡先を登録" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "メッセージ" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "緊急通報番号" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "通話に戻る" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "送信に失敗しました。" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "着信拒否時にメッセージを送信" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "切替" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "キーパッド" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetoothデバイスを使用するために、[Bluetooth]をONにします。" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "不在着信" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "イヤホンやBluetoothヘッドセットを接続しているときは、[最大音量]をONにできません。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "イヤホンを接続しているときは、[最大音量]をONにできません。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Bluetoothヘッドセットを接続しているときは、[最大音量]をONにできません。" + +msgid "IDS_CALL_POP_DIALLING" +msgstr "発信中..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "不在着信" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "転送" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIMサービス" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "通話を再開" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "電話会議を終了" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%sとの通話を終了" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "全ての通話を終了" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "グループ通話" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "端末のロックを解除するには、ロックアイコンをダブルタップしてください" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "BluetoothをON" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "着信に応答" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "連絡先の詳細を表示" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "連絡先を更新" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "スピーカー" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "再開" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "拒否" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "消音" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "管理" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "保留" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "連絡先" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "送信するメッセージを作成" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "発信" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "通話を追加" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "応答" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d人と通話中" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "通知不可能" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%sとの通話を保留" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "保留中" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "メッセージが​ありません" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "グループ通話" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "音声着信" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "現在の通話を保留" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "アクティブ通話を終了する(%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%sで発信中..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%sで接続" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "接続中" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "通話終了" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d件保留中" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%sとの通話を保留" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "会議" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "通話画面に戻る" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "自動着信拒否" + diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..ca3f275 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "კონტაქტებში დამატება" + +msgid "IDS_COM_SK_CANCEL" +msgstr "გაუქმება" + +msgid "IDS_COM_SK_OK" +msgstr "კი" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "კონტაქტის შექმნა" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "შეტყობინება" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "გადაუდებელი ზარის ნომრები" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "ზარზე დაბრუნება" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "ვერ გაიგზავნა." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "ზარის უარყოფა შეტყობინებით" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "გადართვა" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "კლავიატ." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth აპარატის გამოყენებაზე გადართვისას Bluetooth ჩაირთვება." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "გამორჩენილი ზარები" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "ხმის დამატებითი სიმაღლე ვერ ჩაირთვება, სანამ მიერთებულია Bluetooth გარნიტურა ან ყურსასმენი." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "ხმის დამატებითი სიმაღლე ვერ ჩაირთვება, სანამ მიერთებულია ყურსასმენი." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "ხმის დამატებითი სიმაღლე ვერ ჩაირთვება, სანამ მიერთებულია Bluetooth გარნიტურა." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "იკრიფება..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "გამოტოვებული ზარი" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "გადაცემა" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM მომსახურება" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "ზარის გაგრძელება" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "საკონფერენციო ზარის დასრულება" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "ზარის დასრულება %s-თან" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "ყველა მიმდინარე ზარის დასრულება" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "კონფერენც-ზარი" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "მოწყობილობის განსაბლოკად ორჯერ შეეხეთ დაბლოკვის ნიშანს" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetooth-ის ჩართვა" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "პასუხი ზარზე" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "იხ. საკონტაქტო მონაცემები" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "განახლდეს არსებ." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "დინამ." + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "გაგრძელება" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "უარყოფა" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "უხმო" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "მართვა" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "დაკავება" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "კონტაქტები" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "შეადგინეთ გასაგზავნი წერილი" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "დარეკვა" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "ზარის დამ." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "მიღება" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d ადამიანით" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "უცნობი" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s-ის დაკავება" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "დაკავებული" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "წერილები არ არის" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "გაერთიანება" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "შემოსული ზარი" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "აქტიური ზრ. დაკავება" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "აქტიური ზარების დასრულება (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "ირეკება %s-ით..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "კავშირი %s-ით" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "დაკავშირებული" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "ზარი დასრულდა" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d იცდის" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "გადადეთ %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "კონფერენცია" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "ზარის ეკრანზე დაბრუნება" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "ავტოუარყოფილი ზარი" + diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..4aa7186 --- /dev/null +++ b/po/kk.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Кітапшаға қосыңыз" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Тоқтату" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Байланыс кітапшасын құру" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Хабарлама" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Төтенше қызмет нөмірі" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Қайта қоңырау шалу" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Жіберілген үзіліп кеті." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Қоңыраудан хабар арқылы бас тарту" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Ауыстыру" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Пернетақ." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth құрылғысын пайдалануды қосу үшін Bluetooth іске қосылады." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Қабылданбаған" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Құлаққап немесе Bluetooth гарнитурасы қосылғанда қосымша дыбыс іске қосылмайды." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Құлаққап қосылғанда қосымша дыбыс іске қосылмайды." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Bluetooth гарнитурасы қосылғанда қосымша дыбыс іске қосылмайды." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Терілуде..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Қабылданбаған қоңырау" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Трансфер" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM- қызметі" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Қоңырауды қалпына келтіру" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Конф.қоң-Ò£ соңы" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Қоңырауды %s арқылы аяқтау" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Барлық ағымдық қоңырауларды аяқтау" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Конференциалық қоңырау" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Құрылғы құлпын алу үшін, құлып белгішесін екі рет түртіңіз" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetooth қосу" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Жауа қоңырауы" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Контакт мәлімет-н көрсету" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Барын жаңарту" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Динамик" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Жалғастыру" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Қабылдамау" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Дыбыссыз" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Басқару" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Ұстау" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Контактілер" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Жіберу үшін хабар жазу" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Қоңырау" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Қоңы. қосу" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Қабылдау" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d адаммен" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Белгісіз" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s ұстауға қою" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Ұсталуда" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Хабарлама жоқ" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Біріктіру" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Қабылданған қоңырау" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Белс. қоңыр-ды ұстау" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Белсенді қоңырауларды аяқтау (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s арқылы теруде..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s арқылы қосылған" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Қосылды" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Коңырау аяқталды" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d ұстал." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s ұстап тұрыңыз" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Конференция" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Қоңырау экранына оралу" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Авто қабылданбаған қңру" + diff --git a/po/ko_KR.po b/po/ko_KR.po new file mode 100644 index 0000000..19e0f3c --- /dev/null +++ b/po/ko_KR.po @@ -0,0 +1,179 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "연락처에 추가" + +msgid "IDS_COM_SK_CANCEL" +msgstr "취소" + +msgid "IDS_COM_SK_OK" +msgstr "확인" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "새 연락처 추가" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "메시지" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "긴급 전화번호" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "통화로 돌아가기" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "보내지 못하였습니다." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "메시지로 전화 거절" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "전환" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "키패드" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "블루투스 디바이스를 사용하려면 블루투스를 실행하세요." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "부재중 전화" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "이어폰 또는 블루투스 헤드셋이 연결된 경우 [추가 음량 높이기]를 실행할 수 없습니다." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "이어폰이 연결된 경우 [추가 음량 높이기]를 실행할 수 없습니다." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "블루투스 헤드셋이 연결된 경우 [추가 음량 높이기]를 실행할 수 없습니다." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "전화 연결 중..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "부재중 전화" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "상대방 전화 연결" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM 서비스" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "다시 통화" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "컨퍼런스 콜 종료" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%s 님의 통화 종료" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "모든 통화 종료" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "컨퍼런스 콜" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "디바이스 잠금을 해제하려면 잠금 아이콘을 두 번 누르세요" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "블루투스 실행" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "전화받기" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "연락처 상세정보 보기" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "기존 연락처에 추가" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "한뼘통화" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "계속" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "거절" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "내 소리 차단" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "관리" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "대기" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "연락처" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "보낼 메시지 작성" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "통화" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "블루투스" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "통화 추가" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "통화" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d명과 함께 통화 중" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "번호정보 없음" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s 님의 통화 대기" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "대기 중" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "메시지가 없습니다" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "통합" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "수신전화" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "현재 통화 보류" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "현재 통화(%d) 종료" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s로 전화 연결 중..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s로 연결" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "연결됨" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "통화 종료" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d명 대기" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s 님의 통화 대기" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "컨퍼런스 콜" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "통화 화면으로 돌아가기" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "자동 거절된 전화" diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..e5b1335 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Ä®traukti į adresatus" + +msgid "IDS_COM_SK_CANCEL" +msgstr "AtÅ¡aukti" + +msgid "IDS_COM_SK_OK" +msgstr "Gerai" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Kurti adresatą" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Žinutė" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Pagalbos numeris" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Grįžti į pokalbį" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "IÅ¡siųsti nepavyko." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Atmesti skambutį žinute" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Sukeisti" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Klaviat." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Jei norite pradėti naudotis „Bluetooth“ įrenginiu, įjunkite „Bluetooth“." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Pral.skamb." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Papildomo garsumo funkcijos negalima įjungti, kai prijungtos ausinės arba „Bluetooth“ ausinės." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Papildomo garsumo funkcijos negalima įjungti, kai prijungtos ausinės." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Papildomo garsumo funkcijos negalima įjungti, kai prijungtos „Bluetooth“ ausinės." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Jungiamasi..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Neatsakytas skambutis" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Perkelti" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM paslaugos" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Atnaujinti skambutį" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Baigti konferencinį skambutį" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Baigti pokalbį su %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Baigti visus dabartinius skambučius" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konf. skambutis" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dukart bakstelėkite užrakinimo piktogramą ir atrakinkite įrenginį" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Ä®jungti „Bluetooth“" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Atsiliepti į skambutį" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "PeržiÅ«rėti adresato infor." + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Naujinti esamus" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Garsiak." + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Atnaujinti" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Atmesti" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Nutildyti" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Tvarkyti" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Atidėti" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Adresatai" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Kurti siunčiamą žinutę" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Skamb." + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Ä®tr. skam." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Priimti" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Su %d žmon." + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Nežinomas" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "sulaikius pokalbį su %s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Atidėtas" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Žinučių nėra" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Sujungti" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Ä®einantis skambutis" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Sulaik. aktyvų skam." + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Baigti aktyvius skambučius (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Skambinama naudojant %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Prisijungta naudojant %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Prisijungta" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Pokalbis baigtas" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d sulaik." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Pokalbis su %s sulaikytas" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferencija" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Grįžti į skambinimo ekraną" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Automat. atmesti skambutį" + diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..f93fa79 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Pievienot kontaktiem" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Atcelt" + +msgid "IDS_COM_SK_OK" +msgstr "Labi" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Izveidot kontaktu" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Ziņa" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Ārkārtas numurs" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Atpakaļ uz zvanu" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Neizdevās nosÅ«tÄ«t." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "NoraidÄ«t zvanu ar ziņu" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Pārslēgt" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "TastatÅ«ra" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Lai pārslēgtos uz Bluetooth ierÄ«ces lietoÅ¡anu, tiks ieslēgta funkcija Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Neatb.zvani" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Papildu skaļumu nevar ieslēgt, kamēr ir pievienotas austiņas vai Bluetooth brÄ«vroku ierÄ«ce." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Papildu skaļumu nevar ieslēgt, kamēr ir pievienotas austiņas." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Papildu skaļumu nevar ieslēgt, kamēr ir pievienota Bluetooth brÄ«vroku ierÄ«ce." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Savienojas..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Neatbildēts zvans" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "PārsÅ«tÄ«t" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM pakalpojumi" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Atsākt sarunu" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Beigt konferences zvanu" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Beigt sarunu ar %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Beigt visas paÅ¡reizējās sarunas" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferences zvans" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Veiciet dubultskārienu uz bloķēšanas ikonas, lai atbloķētu ierÄ«ci" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Ieslēgt Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Atbildēšana uz zvanu" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "SkatÄ«t kontakta datus" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Atjaun. esoÅ¡o" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Skaļrunis" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Atsākt" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Atteikt" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Izsl. sk." + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "PārvaldÄ«t" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Aizturēt" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakti" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Izveidojiet ziņu, lai sÅ«tÄ«tu" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Zvans" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Piev. zv." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Pieņemt" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Ar %d personām" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Nezināms" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Aiztur sarunu ar %s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Aizt.sar." + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nav ziņu" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Apvienot" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "IenākoÅ¡ais zvans" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Aiztur. aktÄ«vu zvanu" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Beigt aktÄ«vās sarunas (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Zvana, izmantojot %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Savienots, izmantojot %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Savienots" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Saruna ir pabeigta" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d aiztur." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Aizturēt sarunu ar %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konference" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Atgriezties zvana ekrānā" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom. noraidÄ«ts zvans" + diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..1e7ef7a --- /dev/null +++ b/po/mk.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Додај во Контакти" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Откажи" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Нов запис" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Порака" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "SOS број" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Назад на повикот" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Неуспешно праќање." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Одбивање повик со порака" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Префрли" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Тастатура" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "За да се префрли на користење на Вашиот уред Bluetooth, ќе се вклучи Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "пропуштени повици" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Дополнителната гласност не може да се вклучи додека се поврзани слушалки или слушалка Bluetooth." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Дополнителната гласност не може да се вклучи кога се поврзани слушалки." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Дополнителната гласност не може да се вклучи кога е поврзана слушалка Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Бирање..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Пропуштен повик" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Пренеси" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM услуги" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Продолжи повик" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Заврши конференција" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Заврши повик со %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Заврши ги сите моментални повици" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Конференција" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Допрете ја двапати иконата за заклучување за да го отклучите уредот" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Вклучи Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Одговори на повик" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Види детали за контакт" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Ажур. постојни" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Звучник" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Продолжи" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Отфрли" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Иск.мик" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Уреди" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "На чекање" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Именик" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Состави порака за праќање" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Повик" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Дод. повик" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Прифати" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Со %d луѓе" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Непознато" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s се задржува" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "На чекање" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Нема пораки" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Преклопи" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Дојдовен повик" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Задржи акт. повик" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Прекини активни повици (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Се бира преку %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Поврзано преку %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Поврзано" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Повикот заврши" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d на чек." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Ставете го %s на чекање" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Конференција" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Врати се на екран на повик" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Автом. одбиен повик" + diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..661bb7f --- /dev/null +++ b/po/nb.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Legg til i Kontakter" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Avbryt" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Opprett kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Melding" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Nødnummer" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Tilbake til anrop" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Mislykket..." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Avvis anrop med melding" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Bytt" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tastatur" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth blir slÃ¥tt pÃ¥ for Ã¥ bytte til Ã¥ bruke Bluetooth-enheten." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Tapte anrop" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ekstra volum kan ikke være slÃ¥tt pÃ¥ mens øretelefoner eller Bluetooth-hodesett er koblet til." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Ekstra volum kan ikke være slÃ¥tt pÃ¥ mens øretelefoner er koblet til." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Ekstra volum kan ikke være slÃ¥tt pÃ¥ mens Bluetooth-hodesett er koblet til." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Ringer opp..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Ubesvart anrop" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Overfør" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-tjenester" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Gjenoppta samtale" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Avslutt konferansesamtale" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Avslutt samtale med %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Avslutt alle gjeldende samtaler" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Telefonmøte" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Trykk raskt to ganger pÃ¥ lÃ¥seikonet for Ã¥ lÃ¥se opp enheten" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "SlÃ¥ pÃ¥ Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Besvar anrop" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Vis kontaktdetaljer" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Oppdater kontakt" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Høyttaler" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Fortsett" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Avvis" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Lyd av" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Admin." + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Parker" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakter" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Skriv meldingen du vil sende" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Ring" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Nytt anrop" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Godta" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Med %d personer" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Ukjent" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Setter %s pÃ¥ vent" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "PÃ¥ vent" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Ingen meldinger" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "SlÃ¥ sammen" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Innkommende anrop" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Akt. samt. pÃ¥ vent" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Avslutte aktive samtaler (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Ringer via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Koblet til via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Tilkoblet" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Samtale avsluttet" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d pÃ¥ vent" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Sett %s pÃ¥ vent" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferanse" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "GÃ¥ tilbake til samt.skj.b." + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autoavvist anrop" + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..10b0b2b --- /dev/null +++ b/po/nl.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Toevoegen aan contacten" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Annuleren" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Contact toevoegen" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Bericht" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Alarmnummer" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Terug naar oproep" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Verzenden mislukt." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Oproep met bericht weigeren" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Wisselen" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Toetsenbord" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Als u wilt overschakelen naar uw Bluetooth-apparaat, wordt Bluetooth ingeschakeld." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Gemiste oproepen" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume kan niet worden ingeschakeld wanneer oortelefoons of Bluetooth-headset zijn aangesloten." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Extra volume kan niet worden ingeschakeld wanneer oortelefoons zijn aangesloten." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra volume kan niet worden ingeschakeld wanneer Bluetooth-headset is aangesloten." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Kiezen..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Gemiste oproep" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Doorverbinden" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-diensten" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Oproep hervatten" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Einde vergaderoproep" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Oproep beëindigen met %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Alle huidige oproepen beëindigen" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Vergaderoproep" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Tik twee keer op het pictogram Vergrendelen om uw apparaat te ontgrendelen" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetooth inschakelen" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Oproep aannemen" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Contactdetails weergeven" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Best. bijwerken" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Luidspreker" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Hervatten" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Weigeren" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Stil" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Beheren" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "In wacht" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacten" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Bericht schrijven en verzenden" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Bellen" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Nieuwe opr." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Aannemen" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Met %d personen" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Onbekend" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s in de wacht zetten" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "In wacht" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Geen berichten" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Samenvoegen" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Inkomende oproep" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Huidige opr in wacht" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Actieve oproepen (%d) beëindigen" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Kiezen via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Verbonden via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Verbonden" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Oproep beëindigd" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d in wacht" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s in de wacht zetten" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Vergaderen" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Terug naar oproepscherm" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom geweigerde oproep" + diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..230d29a --- /dev/null +++ b/po/pl.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Dodaj do kontaktów" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Anuluj" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Utwórz kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Wiadomość" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Numer alarmowy" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Powrót do połączenia" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Błąd wysyłania" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Odrzuć połącz. i wyślij wiadomość" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Zamień" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Klawiat." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Aby przełączyć na korzystanie z urządzenia Bluetooth, łącze Bluetooth zostanie włączone." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Nieodebrane" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Nie można włączyć dodatkowej głośności, gdy są podłączone słuchawki lub zestaw słuchawkowy Bluetooth." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Nie można włączyć dodatkowej głośności, gdy są podłączone słuchawki." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Nie można włączyć dodatkowej głośności, gdy jest podłączony zestaw słuchawkowy Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Wybieranie numeru..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Połączenie nieodebrane" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transfer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Usługi SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Wznów połączenie" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Zakończ połączenie konferencyjne" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Zakończ połączenie z %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Zakończ wszystkie bieżące połączenia" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferencja" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dotknij dwukrotnie ikony blokowania, aby odblokować urządzenie" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Włączanie funkcji Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Odebranie połączenia" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Wyświetl szczeg. kontaktu" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Akt. istniejący" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Głośnik" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Wznów" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Odrzuć" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Wycisz" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Zarządzaj" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Zawieś" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakty" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Utwórz wiadomość do wysłania" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Połącz" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Dod. poł." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Akceptuj" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Z %d osobami" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Numer Prywatny" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Zawieszanie połączenia z %s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Zawiesz." + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Brak wiadomości" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Dodaj" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Połączenie" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Zawieś aktywne poł." + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Zakończ aktywne połączenia (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Wybieranie przez %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Połączono przez %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Połączono" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Rozłączono" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "Zaw.: %d" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Zawieś połączenie z %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferencja" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Wróć do ekranu połączenia" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Poł. odrzucone autom." + diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..2ba9f26 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Adicionar aos Contatos" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Novo contato" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mensagem" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Número de emergência" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Voltar à chamada" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Falha de envio." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Recusar chamada com mensagem" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Alternar" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Para alternar para usar seu dispositivo Bluetooth, o Bluetooth será ativado." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Chamadas perdidas" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "O Volume adicional não pode ser ativado durante a conexão dos fones de ouvido ou fone de ouvido Bluetooth." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "O Volume adicional não pode ser ativado durante a conexão do fone de ouvido." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "O Volume adicional não pode ser ativado durante a conexão do fone de ouvido Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Discando..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Chamada Perdida" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferir" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Serviços SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Recuperar chamada" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Encerrar chamada em conferência" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Encerrar a chamada com %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Encerrar todas as chamadas atuais" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conferência" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Toque duas vezes no ícone de bloqueio para desbloquear seu dispositivo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Ativar Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Atender chamada" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Exibir detalhes do contato" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Atualiz. exist." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Viva-voz" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Continuar" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rejeitar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silenciar" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gerenciar" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Espera" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contatos" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Escrever mensagem para enviar" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Chamar" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Ad. Cham." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Aceitar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Com %d pessoas" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Desconhecido" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Colocar %s em espera" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Em espera" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nenhuma mensagem" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Conferên." + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Chamada recebida" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Ch. ativa em espera" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Encerrar chamadas ativas (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Chamando pelo %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Conectado por %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Conectado" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Chamada encerrada" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d espera" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Colocar %s em espera" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferência" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Retornar à tela de chamada" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Chamada recusada autom." + diff --git a/po/pt_PT.po b/po/pt_PT.po new file mode 100644 index 0000000..6a59dfe --- /dev/null +++ b/po/pt_PT.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Adicionar aos contactos" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Criar contacto" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mensagem" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Número de emergência" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Regressar à chamada" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Falha no envio." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Rejeitar chamadas com mensagem" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Alternar" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Para mudar para a utilização do seu dispositivo Bluetooth, o Bluetooth vai ser ligado." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Ch. perdidas" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Volume extra não pode ser ligado com os auriculares ou o auricular Bluetooth ligados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Volume extra não pode ser ligado com os auriculares ligados." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Volume extra não pode ser ligado com o auricular Bluetooth ligado." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "A marcar..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Chamada não atendida" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transferência" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Serviços SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Retomar a chamada" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Terminar chamada de conferência" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Terminar chamada com %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Terminar todas chamadas actuais" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Chamada de conferência" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Tocar duas vezes no ícone de bloqueio para desbloquear o seu dispositivo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Ligar Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Atender chamada" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Ver detalhes do contacto" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Actualizar" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Altifalante" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Retomar" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rejeitar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silenciar" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gerir" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Reter" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contactos" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Compor mensagem para enviar" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Chamada" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Adicionar" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Aceitar" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Com %d pessoas" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Desconhecido" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Colocar %s em espera" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Em espera" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nenhuma mensagem" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Unir" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Chamada recebida" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Col. ch. act. em es." + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Terminar chamadas activas (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "A marcar via %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Ligado via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Ligado" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Chamada terminada" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d espera" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Pôr %s em espera" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferência" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Regressar a ecrã chamada" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Chamada rejeitada autom." + diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..fef712d --- /dev/null +++ b/po/ro.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Adăugare la Contacte" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Anulare" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Creare contact" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mesaj" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Număr de urgenţă" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Înapoi la apel" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Trimitere eşuată" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Respingere apel cu mesaj" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Schimb." + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tastatură" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Pentru a trece la utilizarea dispozitivului Bluetooth, caracteristica Bluetooth va fi activată." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Apel. pierd." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Volumul suplimentar nu poate fi activat când sunt conectate căştile sau casca Bluetooth." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Volumul suplimentar nu poate fi activat când sunt conectate căştile." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Volumul suplimentar nu poate fi activat când este conectată casca Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Apelare nr...." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Apel pierdut" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Transfer" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Servicii SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Reluare apel" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Încheiere apel conferinţă" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "ÎncheiaÅ£i apelul cu %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "ÎncheiaÅ£i toate apelurile actuale" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Conferinţă prin telefon" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "AtingeÅ£i de două ori pictograma de deblocare pentru a debloca dispozitivul" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "ActivaÅ£i Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Preluare apel" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Vizualiz. detalii contact" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Act. existentă" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Difuzor" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Reluare" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Resping." + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Mc. oprit" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Gestionare" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "În aşteptare" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Contacte" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Compunere mesaj de trimis" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Apel" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Ad. apel" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Acceptare" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Cu %d persoane" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Necunoscut" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Se trece %s în aşteptare" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "În aşt." + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nici un mesaj" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Îmbinare" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Apel de intrare" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "ReÅ£inere apel activ" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Terminare apeluri active (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Se apelează prin %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Conectat prin %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Conectat" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Apel terminat" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d în aşt." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "PuneÅ£i în aşteptare numărul %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Conferinţă" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Înapoi la ecranul de apel" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Apel respins automat" + diff --git a/po/ru_RU.po b/po/ru_RU.po new file mode 100644 index 0000000..9ef8d45 --- /dev/null +++ b/po/ru_RU.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Добавить в Контакты" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Отмена" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Создать контакт" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Сообщение" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Экстренная служба" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Вернуться к вызову" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Сбой при отправке." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Отклонить вызов и отправить SMS" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Переключить" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Клавиатура" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Для переключения на использование устройства Bluetooth будет включена функция Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Пропущенные" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Невозможно использовать дополнительную громкость, если подключена гарнитура Bluetooth или наушники." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Невозможно использовать дополнительную громкость, если подключены наушники." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Невозможно использовать дополнительную громкость, если подключена гарнитура Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Вызов..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Пропущенный вызов" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Перевести" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Услуги SIM-карты" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Возобновить вызов" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Завершить конференц-вызов" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Завершить вызов с %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Завершить все текущие вызовы" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Конференция" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Чтобы разблокировать устройство, дважды нажмите значок блокировки" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Включить Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Ответить на вызов" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Просм. сведений о контакте" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Обновить контакт" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Динамик" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Возобнов." + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Отказ" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Звук" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Функции" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Удержать" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Контакты" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Создать сообщение для отправки" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Вызов" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Доб. вызов" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Принять" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Число участников: %d" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Неизвестно" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Помещение вызова %s на удержание" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Удержание" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Нет сообщений" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Объединить" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Входящий вызов" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Удержать акт. вызов" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Завершить активные вызовы (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Вызов с %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Подключен через %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Подключено" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Вызов завершен" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "Удерж.: %d" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Поместить %s на удержание" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Конференция" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Возврат на экран вызова" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Автоотклоненный вызов" + diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..5d01d41 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "PridaÅ¥ do kontaktov" + +msgid "IDS_COM_SK_CANCEL" +msgstr "ZruÅ¡iÅ¥" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "VytvoriÅ¥ kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Správa" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Tiesňové číslo" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Späť na hovor" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Odosielanie sa nepodarilo." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "OdmietnuÅ¥ hovor s odoslaním správy" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Prepnúť" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Kláv." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Ak chcete prepnúť na používanie vášho zariadenia Bluetooth, zapne sa spojenie Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "ZmeÅ¡k. hov." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra hlasitosÅ¥ nemožno zapnúť počas pripojenia slúchadla s mikrofónom Bluetooth alebo slúchadiel." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Extra hlasitosÅ¥ nemožno zapnúť počas pripojenia slúchadiel." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Extra hlasitosÅ¥ nemožno zapnúť počas pripojenia slúchadla s mikrofónom Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Vytáčanie..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "ZmeÅ¡kaný hovor" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "PresmerovaÅ¥" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Služby karty SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "PokračovaÅ¥ v hovore" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "UkončiÅ¥ konferenčný hovor" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "UkončiÅ¥ hovor s účastníkom %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "UkončiÅ¥ vÅ¡etky aktuálne hovory" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenčný hovor" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dvojitým Å¥uknutím na ikonu zámku môžete odomknúť zariadenie" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Zapnúť Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "PrijaÅ¥ hovor" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "ZobraziÅ¥ kontaktné údaje" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Aktual. exist." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Reproduktor" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "PokračovaÅ¥" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "OdmietnuÅ¥" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "StlmiÅ¥" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "SpravovaÅ¥" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "PodržaÅ¥" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakty" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "NapísaÅ¥ správu na odoslanie" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Hovor" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Pr. hovor" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "PrijaÅ¥" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "S %d ľuďmi" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Neznáme" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s sa podrží" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Podržaný" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Žiadne správy" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "ZlúčiÅ¥" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Prichádzajúci hovor" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Podrž. aktívny hovor" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "UkončiÅ¥ aktívne hovory (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Vytáča sa cez %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Pripojené cez %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Pripojené" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Hovor bol ukončený" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d podrž." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "PodržaÅ¥ hovor s účastníkom %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferencia" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Návrat na obrazovku hovoru" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Autom. odmietnutý hovor" + diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..ebb228e --- /dev/null +++ b/po/sl.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Dodaj nov stik" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Prekliči" + +msgid "IDS_COM_SK_OK" +msgstr "V redu" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Ustvari stik" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Sporočilo" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Å tevilka za klic v sili" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Nazaj na klic" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "PoÅ¡iljanje ni uspelo." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Zavrnite klic s sporočilom" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Menjaj" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tipkovn." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Zaradi preklopa na uporabo naprave Bluetooth se bo vklopil vmesnik Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Neodgovorjeni klici" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Funkcije Dodana glasnost ni mogoče vklopiti, če so priključene sluÅ¡alke ali sluÅ¡alka Bluetooth." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Funkcije Dodana glasnost ni mogoče vklopiti, če so priključene sluÅ¡alke." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Funkcije Dodana glasnost ni mogoče vklopiti, če je priključena sluÅ¡alka Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Kličem..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Neodgovorjen klic" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Prenesi" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Storitve SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Nadaljuj klic" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Končaj konferenčni klic" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Končaj klic z osebo %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Končaj vse trenutne klice" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenčni klic" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dvakrat pritisnite ikono za zaklepanje, da odklenete napravo" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Vklopite Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Sprejmite klic" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Prikaz podrobnosti stika" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Posod. obstoječe" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Zvočnik" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Nadaljuj" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Zavrni" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Nemo" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Uredi" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Zadrži" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Stiki" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Sest. sporočila za poÅ¡iljanje" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Klic" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Dodaj klic" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Sprejmi" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "S toliko ljudmi: %d" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Neznano" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Daj osebo %s na čakanje" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Zadržano" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Ni sporočil" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Združi" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Dohodni klic" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Zadrži aktivni klic" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Končaj aktivne klice (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Klic prek %s ..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Povezano prek %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Povezano" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Klic je končan" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d na čak." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Dajte osebo %s na čakanje" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferenca" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Vrnitev na zaslon klica" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Samodejno zavrnjen klic" + diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..6318cb3 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Dodaj u kontakte" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Otkaži" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Kreiraj kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Poruka" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Broj za hitne pozive" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Povratak na poziv" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Slanje neuspeÅ¡no." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Odbaci poziv uz slanje poruke" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Zameni" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tastatura" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Za prelazak korišćenja Bluetooth uređaja, Bluetooth će biti uključen." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "PropuÅ¡teni pozivi" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Dodatna jačina zvuka ne može da se uključi dok su povezane sluÅ¡alice ili Bluetooth sluÅ¡alice." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Dodatna jačina zvuka ne može da se uključi dok su povezane sluÅ¡alice." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Dodatna jačina zvuka ne može da se uključi dok su povezane Bluetooth sluÅ¡alice." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Biranje..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "PropuÅ¡ten poziv" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Prebaci" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Usluge SIM kartice" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Nastavi poziv" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Prekini konferencijski poziv" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Prekini poziv sa osobom %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Prekini sve trenutne pozive" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferencijski poziv" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dvaput kucni ikonu za zaključavanje da bi otključao/la uređaj" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Uključi Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Odgovori na poziv" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Prikaži detalje o kontaktu" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Ažur. postojeći" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Zvučnik" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Nastavi" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Odbaci" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Isklj.ton" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Upravljaj" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Čekanje" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakti" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Sastavi poruku za slanje" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Poziv" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Dodaj poz." + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Prihvati" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Sa %d osobe/a" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Nepoznato" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Stavljanje %s na čekanje" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Na ček." + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Nema poruka" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Preklopi" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Dolazni poziv" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Akt. poz. na čekanje" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Prekini aktivne pozive (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Biranje putem %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Povezan putem %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Povezano" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Poziv je zavrÅ¡en" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "Čeka: %d" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Stavi osobu %s na čekanje" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferencija" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Vrati se na ekran poziva" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Automatski odbijeni poziv" + diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..d3894ca --- /dev/null +++ b/po/sv.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Lägg till i Kontakter" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Avbryt" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Skapa kontakt" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Meddelande" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Nummer för nödsituationer" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Tillbaka till samtal" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Sändningsfel." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Avvisa samtal med meddelande" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Växla" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Knappsats" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Om du växlar till att använda din Bluetooth-enhet, aktiveras Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Missade samtal" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Det gÃ¥r inte att slÃ¥ pÃ¥ extra volym när hörlurar eller ett Bluetooth-headset har anslutits." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Det gÃ¥r inte att slÃ¥ pÃ¥ extra volym när hörlurar är anslutna." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Det gÃ¥r inte att slÃ¥ pÃ¥ extra volym när ett Bluetooth-headset är anslutet." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Ringer upp..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Missat samtal" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Överför" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-tjänster" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Återuppta samtalet" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Avsluta konferenssamtal" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Avsluta samtal med %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Avsluta alla aktuella samtal" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferenssamtal" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Dubbeltryck pÃ¥ lÃ¥sikonen om du vill lÃ¥sa upp enheten" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "SlÃ¥ pÃ¥ Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Svara pÃ¥ samtal" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Visa kontaktinformation" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Uppdat. befintl." + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Högtalare" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Fortsätt" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Avvisa" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Ljud av" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Hantera" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Parkera" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontakter" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Skriv medd. som ska skickas" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Samtal" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "L t samtal" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Svara" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Med %d personer" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Okänd" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Parkerar %s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Parkerat" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Inga meddelanden" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Sammanfoga" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Inkommande samtal" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Parkera akt. samtal" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Avsluta aktiva samtal (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Ringer via %s ..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Ansluten via %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Ansluten" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Samtalet avslutades" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d park." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Parkera %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferens" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "ÅtergÃ¥ till samtalsskärm" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Automatavvisat samtal" + diff --git a/po/tr_TR.po b/po/tr_TR.po new file mode 100644 index 0000000..ee074dc --- /dev/null +++ b/po/tr_TR.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Rehbere ekle" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Ä°ptal" + +msgid "IDS_COM_SK_OK" +msgstr "Tamam" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Yeni kişi ekle" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Mesaj" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Acil durum numarası" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Çağrıya dön" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Gönderme başarısız." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Aramayı mesajla reddet" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Değiştir" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Tuşlar" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth cihazınızı kullanmaya geçmek için Bluetooth açılır." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Cevapsız arama" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Kulaklık veya Bluetooth kulaklık bağlıyken ekstra ses açılamaz." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Kulaklık bağlıyken ekstra ses açılamaz." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Bluetooth kulaklık bağlıyken ekstra ses açılamaz." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Aranıyor..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Cevapsız arama" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Ä°letim" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Servisler" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Aramayı sürdür" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Konferans aramasını sonlandır" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%s ile aramayı sonlandır" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Tüm geçerli aramaları sonlandır" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferans görüşmesi" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Cihazınızın kilidini açmak için kilit simgesine çift dokunun" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetooth'u aç" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Aramayı yanıtla" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Kişi ayrıntlarnı görüntüle" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Kişiyi güncelle" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Hoparlör" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Sürdür" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Reddet" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Sessiz" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Yönet" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Beklet" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kişiler" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Göndermek için mesaj yaz" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Arama" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Çağrı ekle" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Kabul et" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%d kişiyle" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Gizli numara" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s bekletiliyor" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Beklemede" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Mesaj yok" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Birleştir" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Gelen arama" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Aktif görüşme beklet" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Aktif çağrıları sonlandır (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s ile aranıyor..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s ile bağlandı" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Bağlandı" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Arama sonlandırıldı" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d beklmde" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%s kişisini beklemeye al" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferans" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Arama ekranına dön" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Oto reddedilmiş arama" + diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..a9096ff --- /dev/null +++ b/po/uk.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Додати в контакти" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Скасувати" + +msgid "IDS_COM_SK_OK" +msgstr "ОК" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Створити контакт" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Повідом." + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Екстрений виклик" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Повернутися до виклику" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Збій надсилання." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Відхилити виклик із повідомленням" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Замінити" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Клавіат." + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Для переключення на пристрій Bluetooth буде ввімкнено функцію Bluetooth." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Проп. вик-и" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Додаткову гучність неможливо ввімкнути під час підключення гарнітури Bluetooth або навушників." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Додаткову гучність неможливо ввімкнути під час підключення навушників." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Додаткову гучність неможливо ввімкнути під час підключення гарнітури Bluetooth." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Набір..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Пропущений виклик" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Перевести" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "Послуги SIM" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Поновити виклик" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Завершити конференц-виклик" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "Завершення виклику із абонентом %s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Завершення усіх поточних викликів" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Конференц-зв'язок" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Двічі торкніться значка блокування, щоб розблокувати пристрій" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Увімкніть Bluetooth" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Відповідь на виклик" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Переглянути контактні дані" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Оновити існуючий" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Динамік" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Поновити" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Відхилити" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Вимк.звук" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Керування" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Утримання" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Контакти" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Створ. повідом. для надсилання" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Виклик" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Дод.виклик" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Прийняти" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "Із %d абонентами" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Невідомо" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Переведення абонента %s на утримання" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Утрим." + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Немає повідомлень" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Об'єднати" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Вхідний виклик" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Утрим.активн.виклик" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Завершити активні виклики (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "Набір номера через %s..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "Підключено через %s" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Підключено" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Виклик завершено" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d на утр." + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "Перев.абонента %s на утримання" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Конференція" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Повернутися на екр.виклику" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Автовідхилений виклик" + diff --git a/po/uz.po b/po/uz.po new file mode 100644 index 0000000..c26d975 --- /dev/null +++ b/po/uz.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "Kontaktlarga qo‘shish" + +msgid "IDS_COM_SK_CANCEL" +msgstr "Bekor qilish" + +msgid "IDS_COM_SK_OK" +msgstr "OK" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "Kontakt yaratish" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "Xabar" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "Favqulodda raqam" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "Qo‘ng‘iroqqa qaytish" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "Yuborib bo‘lmadi." + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "Qo‘ng‘iroqni xabar bilan rad etish" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "Almashish" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "Klaviatura" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "Bluetooth qurilmangizdan foydalanishga o‘tish uchun Bluetooth yoqiladi." + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "Jav-siz qo‘." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Oddiy quloqlik yoki Bluetooth quloqligi ulanganda ortiqcha ovozni yoqib bo‘lmaydi." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "Quloqlik ulanganda ortiqcha ovozni yoqib bo‘lmaydi." + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "Bluetooth quloqligi ulanganda ortiqcha ovozni yoqib bo‘lmaydi." + +msgid "IDS_CALL_POP_DIALLING" +msgstr "Terilmoqda..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Qabul qilinmagan qo‘ng‘iroq" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "Uzatish" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM-karta xizmatlari" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "Qo‘ng‘iroqni davom ettirish" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "Konferens qo‘ng‘iroqni tugatish" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "%s bilan qo‘ng‘iroqni tugatish" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "Barcha joriy qo‘ng‘iroqlarni tugatish" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "Konferensiya qo'ng'irog'i" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "Qurilmangizni blokdan chiqarish uchun bloklash ikonachasiga ikki marta teging" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "Bluetoothni yoqish" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "Qo‘ng‘iroqqa javob berish" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "Kontakt ma’l-ni ko‘rsat" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "Mavjudni yangila" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "Dinamik" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "Davom et" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "Rad etish" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Ovozsiz" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "Boshqarish" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "Kutish" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "Kontaktlar" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "Yuborish uhcun xabar yaratish" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "Qo‘ng‘ir." + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "Bluetooth" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "Qo‘n.qo‘sh" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "Qabul qil" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "%dta odam bilan" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "Noma’lum" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%sni kutish rejimiga qo‘yish" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "Kutish" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "Xabarlar yo‘q" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "Birlashtirish" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "Kiruvchi qo‘ng‘iroq" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "Faol qo‘n-ni ush/tur" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "Faol qo‘ng‘iroqlarni yakunlash (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "%s orqali raqam terilmoqda..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "%s orqali ulangan" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "Ulangan" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "Qo‘ng‘. yakunlandi" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d kutish" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "%sni kutish rejimiga qo‘yish" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "Konferensiya" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "Qo‘ng‘iroq ekraniga qayt" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "Qo‘n-ni avtomatik rad et" + diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..da26912 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "添加到联系人" + +msgid "IDS_COM_SK_CANCEL" +msgstr "取消" + +msgid "IDS_COM_SK_OK" +msgstr "确定" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "新建联系人" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "信息" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "紧急号码" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "返回通话" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "发送失败" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "用信息拒绝通话" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "切换" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "键盘" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "若要切换至使用您的蓝牙设备,蓝牙将开启。" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "未接来电" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "连接耳机或蓝牙耳机时无法开启更大音量。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "连接耳机时无法开启更大音量。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "连接蓝牙耳机时无法开启更大音量。" + +msgid "IDS_CALL_POP_DIALLING" +msgstr "拨号中..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "未接来电" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "转换" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM卡服务" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "恢复通话" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "结束电话会议" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "结束%s" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "结束当前通话" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "电话会议" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "双击锁定图标以解锁您的设备" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "开启蓝牙" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "接听电话" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "查看联系人详情" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "更新现有联系人" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "扬声器" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "继续" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "拒绝" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "静音" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "管理" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "保持" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "联系人" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "编写信息以发送" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "通话" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "蓝牙" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "添加通话" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "接听" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "与 %d 人" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "未知" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "保持%s" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "保持中" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "无信息" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "合并" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "来电" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "保持通话" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "结束当前通话 (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "正在通过 %s 拨号..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "已通过 %s 连接" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "已连接" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "通话已结束" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d 个保持中" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "保持 %s" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "多方通话" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "返回至通话屏幕" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "自动拒绝通话" + diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..8d674ec --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "加到聯絡人" + +msgid "IDS_COM_SK_CANCEL" +msgstr "取消" + +msgid "IDS_COM_SK_OK" +msgstr "確定" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "建立聯絡人" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "訊息" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "緊急號碼" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "返回通話" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "發送失敗。" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "發訊息以拒絕來電" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "切換" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "鍵盤" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "若要切換至使用您的藍牙裝置,藍牙將被開啟。" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "未接電話" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "在耳機或藍牙耳機連接時無法開啟額外音量。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "在耳機連接時無法開啟額外音量。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "在藍牙耳機連接時無法開啟額外音量。" + +msgid "IDS_CALL_POP_DIALLING" +msgstr "正在撥號..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "未接電話" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "轉送" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM 卡服務" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "繼續通話" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "結束電話會議" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "結束與 %s 的通話" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "結束目前通話" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "電話會議" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "輕觸兩下鎖定圖示以解鎖您的裝置" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "開啟藍牙" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "接聽電話" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "檢視聯絡人詳細資料" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "更新現有的" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "揚聲器" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "繼續" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "拒絕" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "靜音" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "管理" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "保留" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "聯絡人" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "撰寫訊息以發送" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "通話" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "藍牙" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "加入通話" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "接受" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "與 %d 人" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "未知" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "保留與 %s 的通話" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "保留中" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "無訊息" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "合併" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "來電" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "保留當前通話" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "結束啟動中的通話(%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "正在透過 %s 撥打..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "已透過 %s 連接" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "已連接" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "通話已結束" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d 位已保留" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "保留與 %s 的通話" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "會議" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "返回至通話螢幕" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "自動拒絕來電" + diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..be702c9 --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,180 @@ +msgid "IDS_COM_OPT_ADD_TO_CONTACTS" +msgstr "新增至聯絡人" + +msgid "IDS_COM_SK_CANCEL" +msgstr "取消" + +msgid "IDS_COM_SK_OK" +msgstr "確定" + +msgid "IDS_COM_OPT_CREATE_CONTACT" +msgstr "建立聯絡人" + +msgid "IDS_COM_BODY_MESSAGE" +msgstr "訊息" + +msgid "IDS_COM_BODY_EMERGENCY_NUMBER" +msgstr "緊急電話號碼" + +msgid "IDS_COM_BODY_BACK_TO_CALL" +msgstr "返回通話" + +msgid "IDS_MSGC_POP_SENDINGFAILED" +msgstr "傳送失敗" + +msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE" +msgstr "以訊息拒接來電" + +msgid "IDS_CALL_SK_MULTICALL_SWAP" +msgstr "切換" + +msgid "IDS_CALL_SK3_KEYPAD" +msgstr "鍵盤" + +msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON" +msgstr "若要切換為使用您的藍牙裝置,將開啟藍牙。" + +msgid "IDS_CALL_POP_MISSED_CALLS_ABB" +msgstr "未接電話" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED" +msgstr "連接耳機或藍牙耳機時無法開啟最大音量。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED" +msgstr "連接耳機時無法開啟最大音量。" + +msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED" +msgstr "連接藍牙耳機時無法開啟最大音量。" + +msgid "IDS_CALL_POP_DIALLING" +msgstr "正在撥號..." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "未接電話" + +msgid "IDS_CALL_OPT_TRANSFER" +msgstr "轉移" + +msgid "IDS_CALL_OPT_SIM_SERVICES" +msgstr "SIM 卡服務" + +msgid "IDS_CALL_OPT_RESUME_CALL" +msgstr "繼續通話" + +msgid "IDS_CALL_OPT_END_CONFERENCE_CALL" +msgstr "結束電話會議" + +msgid "IDS_CALL_OPT_END_CALL_WITH_PS" +msgstr "結束與 %s 的通話" + +msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS" +msgstr "結束目前所有的通話" + +msgid "IDS_CALL_OPT_CONFERENCE_CALL" +msgstr "電話會議" + +msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE" +msgstr "輕觸兩下鎖定圖示來解鎖您的裝置" + +msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB" +msgstr "開啟藍牙" + +msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB" +msgstr "接聽來電" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB" +msgstr "檢視聯絡人詳細資訊" + +msgid "IDS_CALL_BUTTON_UPDATE_EXISTING" +msgstr "更新現有的" + +msgid "IDS_CALL_BUTTON_SPEAKER" +msgstr "喇叭" + +msgid "IDS_CALL_BUTTON_RESUME_ABB" +msgstr "繼續" + +msgid "IDS_CALL_BUTTON_REJECT" +msgstr "拒絕" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "靜音" + +msgid "IDS_CALL_BUTTON_MANAGE" +msgstr "管理" + +msgid "IDS_CALL_BUTTON_HOLD" +msgstr "保留" + +msgid "IDS_CALL_BUTTON_CONTACTS" +msgstr "聯絡人" + +msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB" +msgstr "撰寫要傳送的訊息" + +msgid "IDS_CALL_BUTTON_CALL" +msgstr "通話" + +msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB" +msgstr "藍牙" + +msgid "IDS_CALL_BUTTON_ADD_CALL" +msgstr "新增通話" + +msgid "IDS_CALL_BUTTON_ACCEPT" +msgstr "接受" + +msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB" +msgstr "和 %d 個人" + +msgid "IDS_CALL_BODY_UNKNOWN" +msgstr "未知" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "保留與 %s 的通話" + +msgid "IDS_CALL_BODY_ON_HOLD_ABB" +msgstr "保留" + +msgid "IDS_CALL_BODY_NO_MESSAGES" +msgstr "無訊息" + +msgid "IDS_CALL_BODY_MERGE_T_CALL" +msgstr "合併通話" + +msgid "IDS_CALL_BODY_INCOMING_CALL" +msgstr "來電" + +msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" +msgstr "保留當前通話" + +msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" +msgstr "結束當前通話 (%d)" + +msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2" +msgstr "正在經由 %s 撥號..." + +msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2" +msgstr "已透過 %s 連接" + +msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB" +msgstr "已連線" + +msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB" +msgstr "通話已結束" + +msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB" +msgstr "%d 保留中" + +msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB" +msgstr "保留 %s 的來電" + +msgid "IDS_CALL_BODY_CONFERENCE" +msgstr "會議" + +msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB" +msgstr "返回通話螢幕" + +msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL" +msgstr "自動拒接的來電" + diff --git a/res/call_edc/call.edc b/res/call_edc/call.edc new file mode 100755 index 0000000..de77158 --- /dev/null +++ b/res/call_edc/call.edc @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../../include/callui-view-layout-wvga.h" +#include "../../include/callui-view-layout-hd.h" +#include "edc_image_macro.edc" + +#define IMG_SRC_DIR "/res/images" +#define IMG_ICN_DIR "/res/images/icon" + +images { + image: IMG_SRC_DIR/"vc_keypad_btn_normal.jpg" COMP; + image: IMG_SRC_DIR/"vc_keypad_btn_press.png" COMP; + image: IMG_SRC_DIR/"vc_keypad_btn_voice_mail_icon.png" COMP; + image: IMG_SRC_DIR/"vc_keypad_btn_mute_icon.png" COMP; + image: IMG_SRC_DIR/"call_during_record.png" COMP; + image: IMG_SRC_DIR/"call_pattern_bg.png" COMP; + image: IMG_SRC_DIR/"call_inline_button_open.png" COMP; + image: IMG_SRC_DIR/"call_inline_button_close.png" COMP; + image: IMG_SRC_DIR/"call_inline_button_close_1.png" COMP; + image: IMG_SRC_DIR/"call_photo_id_outer.png" COMP; + image: IMG_SRC_DIR/"call_photo_id.png" COMP; + image: IMG_SRC_DIR/"call_photo_id_mask.png" COMP; + image: IMG_SRC_DIR/"call_button_div_01.png" COMP; + image: IMG_SRC_DIR/"call_btn_circle.png" COMP; + image: IMG_SRC_DIR/"Call_button_bg_accept_reject.png" COMP; + image: IMG_SRC_DIR/"call_btn_ic_accept.png" COMP; + image: IMG_SRC_DIR/"Call_button_bg_reject.png" COMP; + image: IMG_SRC_DIR/"call_btn_ic_reject.png" COMP; + image: IMG_SRC_DIR/"call_button_circle.png" COMP; + image: IMG_SRC_DIR/"call_button_accept_circle_arrow.png" COMP; + image: IMG_SRC_DIR/"call_button_reject_circle_arrow.png" COMP; + image: IMG_SRC_DIR/"call_button_accept_arrow.png" COMP; + image: IMG_SRC_DIR/"call_button_reject_arrow.png" COMP; + image: IMG_SRC_DIR/"call_button_div_02.png" COMP; + image: IMG_SRC_DIR/"call_button_div_03.png" COMP; + image: IMG_SRC_DIR/"call_button_div_04.png" COMP; + image: IMG_SRC_DIR/"keypad_bg_div.png" COMP; + image: IMG_SRC_DIR/"keypad_input_del.png" COMP; + image: IMG_SRC_DIR/"keypad_number_00.png" COMP; + image: IMG_SRC_DIR/"keypad_number_01.png" COMP; + image: IMG_SRC_DIR/"keypad_number_02.png" COMP; + image: IMG_SRC_DIR/"keypad_number_03.png" COMP; + image: IMG_SRC_DIR/"keypad_number_04.png" COMP; + image: IMG_SRC_DIR/"keypad_number_05.png" COMP; + image: IMG_SRC_DIR/"keypad_number_06.png" COMP; + image: IMG_SRC_DIR/"keypad_number_07.png" COMP; + image: IMG_SRC_DIR/"keypad_number_08.png" COMP; + image: IMG_SRC_DIR/"keypad_number_09.png" COMP; + image: IMG_SRC_DIR/"keypad_number_asterisk.png" COMP; + image: IMG_SRC_DIR/"keypad_number_sharp.png" COMP; + image: IMG_SRC_DIR/"keypad_english_01.png" COMP; + image: IMG_SRC_DIR/"keypad_english_02.png" COMP; + image: IMG_SRC_DIR/"keypad_english_03.png" COMP; + image: IMG_SRC_DIR/"keypad_english_04.png" COMP; + image: IMG_SRC_DIR/"keypad_english_05.png" COMP; + image: IMG_SRC_DIR/"keypad_english_06.png" COMP; + image: IMG_SRC_DIR/"keypad_english_07.png" COMP; + image: IMG_SRC_DIR/"keypad_english_08.png" COMP; + image: IMG_SRC_DIR/"keypad_english_13.png" COMP; + image: IMG_SRC_DIR/"call_lock_icon.png" COMP; + image: IMG_SRC_DIR/"call_photo_id_emergency.png" COMP; + image: IMG_SRC_DIR/"call_photo_id_conference.png" COMP; + image: IMG_SRC_DIR/"call_extra_play.png" COMP; + image: IMG_SRC_DIR/"call_during_volume.png" COMP; + image: IMG_SRC_DIR/"call_extra_merge.png" COMP; + image: IMG_SRC_DIR/"call_extra_swap.png" COMP; + image: IMG_SRC_DIR/"call_resume_add.png" COMP; + image: IMG_SRC_DIR/"call_ic_controll_01.png" COMP; + image: IMG_SRC_DIR/"call_ic_controll_02.png" COMP; + image: IMG_SRC_DIR/"call_resume_group_icon.png" COMP; + image: IMG_SRC_DIR/"call_resume_play_bg.png" COMP; + image: IMG_SRC_DIR/"Call_controller.png" COMP; + image: IMG_SRC_DIR/"sound_volume_popup_bg.#.png" COMP; + image: IMG_SRC_DIR/"call_vivo.png" COMP; + image: IMG_SRC_DIR/"call_claro.png" COMP; + image: IMG_SRC_DIR/"call_oi.png" COMP; + image: IMG_SRC_DIR/"call_tim.png" COMP; + image: IMG_SRC_DIR/"call_open_bg.png" COMP; + image: IMG_SRC_DIR/"call_open_arrow_2.png" COMP; + image: IMG_SRC_DIR/"call_open_arrow_01.png" COMP; + image: IMG_SRC_DIR/"call_photo_id_bg.png" COMP; + image: IMG_SRC_DIR/"quick_extra_press.png" COMP; + image: IMG_SRC_DIR/"quick_extra.png" COMP; + image: IMG_SRC_DIR/"quick_extra_off_press.png" COMP; + image: IMG_SRC_DIR/"quick_extra_off.png" COMP; + image: IMG_SRC_DIR/"quick_end.png" COMP; + image: IMG_SRC_DIR/"quick_end_press.png" COMP; + image: IMG_SRC_DIR/"call_button_bg_line_accept_reject.png" COMP; + image: IMG_SRC_DIR/"lock_circle_line_camera_drag.png" COMP; + image: IMG_SRC_DIR/"lock_circle_line_camera.png" COMP; + image: IMG_SRC_DIR/"without_proximity_seneor_bg.png" COMP; + image: IMG_ICN_DIR/"call_button_add.png" COMP; + image: IMG_SRC_DIR/"handler_btn_02.png" COMP; + image: IMG_SRC_DIR/"button_edit_bg_new.png" COMP; + image: IMG_SRC_DIR/"call_btn_circle_02.png" COMP; + image: IMG_SRC_DIR/"background.png" COMP; + image: IMG_SRC_DIR/"background_dim.png" COMP; +} + +collections { + base_scale: 2.6; + + RESOURCE_IMAGE("vc_volume_icon.png", IMG_SRC_DIR/"vc_volume_icon.png"); + RESOURCE_IMAGE("vc_volume_icon_bt.png", IMG_SRC_DIR/"vc_volume_icon_bt.png"); + RESOURCE_IMAGE("vc_volume_mute_icon.png", IMG_SRC_DIR/"vc_volume_mute_icon.png"); + RESOURCE_IMAGE("call_resume_icon.png", IMG_SRC_DIR/"call_resume_icon.png"); + RESOURCE_IMAGE("call_button_add.png", IMG_ICN_DIR/"call_button_add.png"); + RESOURCE_IMAGE("call_button_icon_01.png", IMG_SRC_DIR/"call_button_icon_01.png"); + RESOURCE_IMAGE("call_inline_button_close.png", IMG_SRC_DIR/"call_inline_button_close.png"); + RESOURCE_IMAGE("call_inline_button_close_1.png", IMG_SRC_DIR/"call_inline_button_close_1.png"); + RESOURCE_IMAGE("call_button_icon_04.png", IMG_SRC_DIR/"call_button_icon_04.png"); + RESOURCE_IMAGE("call_button_icon_03.png", IMG_SRC_DIR/"call_button_icon_03.png"); + RESOURCE_IMAGE("call_button_icon_02.png", IMG_SRC_DIR/"call_button_icon_02.png"); + RESOURCE_IMAGE("call_dual_sim_1.png", IMG_SRC_DIR/"call_dual_sim_1.png"); + RESOURCE_IMAGE("call_dual_sim_2.png", IMG_SRC_DIR/"call_dual_sim_2.png"); + RESOURCE_IMAGE("call_dual_sim_bg.png", IMG_SRC_DIR/"call_dual_sim_bg.png"); + RESOURCE_IMAGE("logs_icon_sim_1.png", IMG_SRC_DIR/"logs_icon_sim_1.png"); + RESOURCE_IMAGE("logs_icon_sim_2.png", IMG_SRC_DIR/"logs_icon_sim_2.png"); + RESOURCE_IMAGE("logs_icon_sim_heart.png", IMG_SRC_DIR/"logs_icon_sim_heart.png"); + RESOURCE_IMAGE("logs_icon_sim_home.png", IMG_SRC_DIR/"logs_icon_sim_home.png"); + RESOURCE_IMAGE("logs_icon_sim_internet.png", IMG_SRC_DIR/"logs_icon_sim_internet.png"); + RESOURCE_IMAGE("logs_icon_sim_data.png", IMG_SRC_DIR/"logs_icon_sim_data.png"); + RESOURCE_IMAGE("logs_icon_sim_office.png", IMG_SRC_DIR/"logs_icon_sim_office.png"); + RESOURCE_IMAGE("logs_icon_sim_phone.png", IMG_SRC_DIR/"logs_icon_sim_phone.png"); + RESOURCE_IMAGE("logs_icon_sim_messages.png", IMG_SRC_DIR/"logs_icon_sim_messages.png"); + #include "callui-view-button-layout.edc" + #include "callui-view-caller-info.edc" + #include "callui-view-incoming-lock.edc" + #include "callui-view-multi-call-list.edc" + #include "callui-keypad.edc" + #include "callui-view-main-layout.edc" + #include "callui_view_end_call.edc" + #include "callui-view-lock-screen.edc" + #include "callui-view-quick-pannel.edc" + #include "callui-view-quick-pannel-landscape.edc" + #include "callui_view_incoming_active.edc" + #include "callui-view-one-hold-in-conference.edc" + #include "callui-view-elements.edc" +} diff --git a/res/call_edc/callui-keypad.edc b/res/call_edc/callui-keypad.edc new file mode 100755 index 0000000..e8ed4e8 --- /dev/null +++ b/res/call_edc/callui-keypad.edc @@ -0,0 +1,404 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +#define VC_KEYPAD_MAIN_SUB_TEXT_FONT "Samsung Sans Num45v:style=Light" + +#define PART_KEYPAD_CUSTOM_ONE_ICON(txt, column, row, left_icon) \ + part { \ + name: txt; \ + type: RECT; \ + scale: 1; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: (column * (KEYPAD_EACH_BTN_W + KEYPAD_DIVIDER_SIZE) / TOTAL_W) (row * (KEYPAD_EACH_BTN_H + KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect";} \ + rel2 { relative: (((column + 1) * KEYPAD_EACH_BTN_W + column * KEYPAD_DIVIDER_SIZE) / TOTAL_W) (((row + 1) * KEYPAD_EACH_BTN_H + row * KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect"; } \ + fixed: 1 1; \ + color_class: "AO005_C"; \ + } \ + description { \ + state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color_class: "AO005P"; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { \ + name: txt"_left"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + aspect: 0.0 1.0; \ + aspect_preference: SOURCE; \ + rel1 { relative: (KEYPAD_BTN_OFFSET_X / KEYPAD_EACH_BTN_W) (KEYPAD_BTN_OFFSET_Y / KEYPAD_EACH_BTN_H); to: txt;} \ + rel2 { relative: ((KEYPAD_BTN_OFFSET_X + KEYPAD_BTN_ICON_W) / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H) / KEYPAD_EACH_BTN_H); to: txt;} \ + align: 0.5 0.5; \ + image.normal: left_icon;\ + color_class: "AO003"; \ + aspect_preference: SOURCE; \ + visible: 1; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over_"txt; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1 { relative: 0 0; to: txt; } \ + rel2 { relative: 1 1; to: txt; } \ + color: 0 0 0 0; \ + } \ + } + +#define PART_KEYPAD_CUSTOM_TWO_ICON(txt, column, row, left_icon, right_icon) \ + part { \ + name: txt; \ + type: RECT; \ + scale: 1; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: (column * (KEYPAD_EACH_BTN_W + KEYPAD_DIVIDER_SIZE) / TOTAL_W) (row * (KEYPAD_EACH_BTN_H + KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect";} \ + rel2 { relative: (((column + 1) * KEYPAD_EACH_BTN_W + column * KEYPAD_DIVIDER_SIZE) / TOTAL_W) (((row + 1) * KEYPAD_EACH_BTN_H + row * KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect"; } \ + fixed: 1 1; \ + color_class: "AO005_C"; \ + } \ + description { \ + state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color_class: "AO005P"; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { \ + name: txt"_left"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + aspect: 0.0 1.0; \ + aspect_preference: SOURCE; \ + rel1 { relative: (KEYPAD_BTN_OFFSET_X / KEYPAD_EACH_BTN_W) (KEYPAD_BTN_OFFSET_Y / KEYPAD_EACH_BTN_H); to: txt;} \ + rel2 { relative: ((KEYPAD_BTN_OFFSET_X + KEYPAD_BTN_ICON_W) / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H) / KEYPAD_EACH_BTN_H); to: txt;} \ + image.normal: left_icon;\ + color_class: "AO003"; \ + aspect_preference: SOURCE; \ + visible: 1; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { \ + name: txt"_right"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + aspect: 1.0 1.0; \ + aspect_preference: SOURCE; \ + rel1 { relative: (KEYPAD_BTN_OFFSET_X / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H) / KEYPAD_EACH_BTN_H); to: txt;} \ + rel2 { relative: ((KEYPAD_BTN_OFFSET_X + KEYPAD_BTN_ICON_W) / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H + KEYPAD_BTN_LETTERS_H) / KEYPAD_EACH_BTN_H); to: txt;} \ + align: 0.5 0.5; \ + image.normal: right_icon; \ + color_class: "AO004_C"; \ + aspect_preference: SOURCE; \ + visible: 1; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over_"txt; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1 { relative: 0 0; to: txt; } \ + rel2 { relative: 1 1; to: txt; } \ + color: 0 0 0 0; \ + } \ + } + +#define PROG_KEYPAD(txt) \ + program { \ + name: "down_"txt; \ + signal: "mouse,down,*"; \ + source: "over_"txt; \ + script { \ + set_state(PART:txt, "pressed", 0.0); \ + emit("pad_down", txt); \ + } \ + } \ + program { \ + name: "ani_"txt; \ + signal: "ani"; \ + source: "over_"txt; \ + action: STATE_SET "default" 0.0; \ + transition: SINUSOIDAL 0.1; \ + target: txt; \ + } \ + program { \ + name: "up_"txt; \ + signal: "mouse,up,1"; \ + source: "over_"txt; \ + script { \ + set_state(PART:txt, "default", 0.0); \ + emit("pad_up", txt); \ + emit("ani", "over_"txt); \ + } \ + } \ + program { \ + name: "clicked_"txt; \ + signal: "mouse,clicked,1"; \ + source: "over_"txt; \ + script { \ + emit("pad_clicked", txt); \ + } \ + } + +group{ + name: "keypad"; + parts { + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + part { + name: "keypad_arrow_bg"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + color: 0 0 0 0; + rel1 { relative: 0.0 ((KEYPAD_AREA_H - KEYPAD_H - KEYPAD_ARROW_BTN_BG_H) / KEYPAD_AREA_H); to: "background";} + rel2 { relative: 1.0 ((KEYPAD_AREA_H - KEYPAD_H) / KEYPAD_AREA_H); to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "sweep_area"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 ((KEYPAD_AREA_H - KEYPAD_H) / KEYPAD_AREA_H); to: "background";} + } + } + + part { + name: "keypad_arrow_rect"; + type: RECT; + mouse_events:1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + color: 0 0 0 0; + rel1 { relative: 225/480 6/42; to: "keypad_arrow_bg";} + rel2 { relative: 255/480 29/42; to: "keypad_arrow_bg";} + } + } + + part { + name: "keypad_down_arw"; + type: IMAGE; + mouse_events:1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 {relative: 0 0; to: "keypad_arrow_rect";} + rel2 {relative: 1 1; to: "keypad_arrow_rect";} + align: 0.5 0.0; + image { + normal: IMG_SRC_DIR/"call_open_arrow_2.png"; + } + max: -1 3; + fixed: 0 1; + aspect_preference: HORIZONTAL; + visible: 1; + } + description { + state: "move" 0.0; + rel1 { relative: 0 0; to: "keypad_arrow_rect";} + rel2 { relative: 1 1; to: "keypad_arrow_rect";} + image { + normal: IMG_SRC_DIR/"call_open_arrow_2.png"; + } + aspect_preference: SOURCE; + align: 0.5 1.0; + } + } + + part { name: "keypad_btns/rect"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 ((KEYPAD_AREA_H - KEYPAD_H) / KEYPAD_AREA_H); to: "background"; } + rel2 { relative: 1.0 1.0; to: "background"; } + color_class: "AO008"; + fixed: 1 1; + visible: 1; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + PART_KEYPAD_CUSTOM_ONE_ICON("1", 0, 0, IMG_SRC_DIR/"keypad_number_01.png") + PART_KEYPAD_CUSTOM_TWO_ICON("2", 1, 0, IMG_SRC_DIR/"keypad_number_02.png", IMG_SRC_DIR/"keypad_english_01.png") + PART_KEYPAD_CUSTOM_TWO_ICON("3", 2, 0, IMG_SRC_DIR/"keypad_number_03.png", IMG_SRC_DIR/"keypad_english_02.png") + PART_KEYPAD_CUSTOM_TWO_ICON("4", 0, 1, IMG_SRC_DIR/"keypad_number_04.png", IMG_SRC_DIR/"keypad_english_03.png") + PART_KEYPAD_CUSTOM_TWO_ICON("5", 1, 1, IMG_SRC_DIR/"keypad_number_05.png", IMG_SRC_DIR/"keypad_english_04.png") + PART_KEYPAD_CUSTOM_TWO_ICON("6", 2, 1, IMG_SRC_DIR/"keypad_number_06.png", IMG_SRC_DIR/"keypad_english_05.png") + PART_KEYPAD_CUSTOM_TWO_ICON("7", 0, 2, IMG_SRC_DIR/"keypad_number_07.png", IMG_SRC_DIR/"keypad_english_06.png") + PART_KEYPAD_CUSTOM_TWO_ICON("8", 1, 2, IMG_SRC_DIR/"keypad_number_08.png", IMG_SRC_DIR/"keypad_english_07.png") + PART_KEYPAD_CUSTOM_TWO_ICON("9", 2, 2, IMG_SRC_DIR/"keypad_number_09.png", IMG_SRC_DIR/"keypad_english_08.png") + PART_KEYPAD_CUSTOM_ONE_ICON("star", 0, 3, IMG_SRC_DIR/"keypad_number_asterisk.png") + PART_KEYPAD_CUSTOM_ONE_ICON("0", 1, 3, IMG_SRC_DIR/"keypad_number_00.png") + PART_KEYPAD_CUSTOM_ONE_ICON("sharp", 2, 3, IMG_SRC_DIR/"keypad_number_sharp.png") + } + + programs{ + script { + public animation_cnt; + } + + program { name: "show_keypadbtn"; + signal: "SHOW"; + source: "KEYPADBTN"; + action: STATE_SET "show" 0.0; + //target: "keypad/area"; + target: "keypad_arrow_bg"; + target: "keypad_btns/rect"; + //target: "keypad_btns/bg"; + } + + program { + name: "init_animation"; + signal: "init"; + source: "down_arrow"; + action: STATE_SET "default" 0.0; + target: "keypad_down_arw"; + script { + set_int(animation_cnt, 0); + } + } + + program { + name: "start_animation"; + signal: "start_animation"; + source: "down_arrow"; + action: STATE_SET "default" 0.0; + target: "keypad_down_arw"; + after: "move_arrow"; + } + + program { + name: "move_arrow"; + signal: "move"; + source: "down_arrow"; + action: STATE_SET "move" 0.0; + target: "keypad_down_arw"; + transition: DECELERATE 0.6; + after: "repeat"; + } + + program { + name: "repeat"; + script { + set_int(animation_cnt, get_int(animation_cnt)+1); + if (get_int(animation_cnt) >= 2) { + set_int(animation_cnt, 0); + } + else { + run_program(PROGRAM:"start_animation"); + } + } + } + + PROG_KEYPAD("1") + PROG_KEYPAD("2") + PROG_KEYPAD("3") + PROG_KEYPAD("4") + PROG_KEYPAD("5") + PROG_KEYPAD("6") + PROG_KEYPAD("7") + PROG_KEYPAD("8") + PROG_KEYPAD("9") + PROG_KEYPAD("star") + PROG_KEYPAD("0") + PROG_KEYPAD("sharp") + } +} diff --git a/res/call_edc/callui-view-button-layout.edc b/res/call_edc/callui-view-button-layout.edc new file mode 100755 index 0000000..af2ed4c --- /dev/null +++ b/res/call_edc/callui-view-button-layout.edc @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" +#include "../../include/callui-view-caller-info-defines.h" + +#define SWL_BUTTON(part_name, left, top, right, bottom) \ + part { name: part_name; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: left top; to: "background";} \ + rel2 { relative: right bottom; to: "background";} \ + } \ + } + +group{ + name: "button-layout"; + parts{ + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + //color: COLOR_BG_ALPHA; + color_class: "AO001"; + } + } + + /*part { name: "swl_bg_image"; + type: IMAGE; + mouse_events:1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "background"; } + rel2 { relative: 1 1; to: "background"; } + align: 0.5 0.5; + color_class: AO015; + image { normal: IMG_SRC_DIR/"call_button_div_01.png"; } + } + }*/ + + /*TOP FIRST BUTTON*/ + SWL_BUTTON(PART_TOP_FIRST_BTN, TOP_FIRST_BUTTON_L, TOP_FIRST_BUTTON_T, + TOP_FIRST_BUTTON_R, TOP_FIRST_BUTTON_B) + + /*TOP SECOND BUTTON*/ + SWL_BUTTON(PART_TOP_SECOND_BTN, TOP_SECOND_BUTTON_L, TOP_SECOND_BUTTON_T, + TOP_SECOND_BUTTON_R, TOP_SECOND_BUTTON_B) + + /*TOP THIRD BUTTON*/ + SWL_BUTTON(PART_TOP_THIRD_BTN, TOP_THIRD_BUTTON_L, TOP_THIRD_BUTTON_T, + TOP_THIRD_BUTTON_R, TOP_THIRD_BUTTON_B) + + /*BOTTOM FIRST BUTTON*/ + SWL_BUTTON(PART_BOTTOM_FIRST_BTN, BOTTOM_FIRST_BUTTON_L, BOTTOM_FIRST_BUTTON_T, + BOTTOM_FIRST_BUTTON_R, BOTTOM_FIRST_BUTTON_B) + + /*BOTTOM SECOND BUTTON*/ + SWL_BUTTON(PART_BOTTOM_SECOND_BTN, BOTTOM_SECOND_BUTTON_L, BOTTOM_SECOND_BUTTON_T, + BOTTOM_SECOND_BUTTON_R, BOTTOM_SECOND_BUTTON_B) + + /*BOTTOM THIRD BUTTON*/ + SWL_BUTTON(PART_BOTTOM_THIRD_BTN, BOTTOM_THIRD_BUTTON_L, BOTTOM_THIRD_BUTTON_T, + BOTTOM_THIRD_BUTTON_R, BOTTOM_THIRD_BUTTON_B) + } + + programs{ + } +} + diff --git a/res/call_edc/callui-view-caller-info.edc b/res/call_edc/callui-view-caller-info.edc new file mode 100755 index 0000000..bf993ea --- /dev/null +++ b/res/call_edc/callui-view-caller-info.edc @@ -0,0 +1,769 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +styles { + style { + name: "caller_info_name"; + base: "text_class="ATO002" wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { + name: "caller_info_name_land"; + base: "font="VC_FONT_REGULAR" text_class="ATO002" font_size=28 color=#FFFFFFFF color_class: "ATO002" style=shadow align=center wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "ps" "ps"; + } + style { + name: "easy_caller_info_name"; + base: "font="VC_FONT_REGULAR" text_class="VC_TEXT_CLASS_REGULAR" font_size=28 color=#FFFFFFFF style=shadow align=center wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { + name: "extra_info_txt_style"; + base: "font="VC_FONT_REGULAR" font_size=24 color=#070707FF color_class:"ATO010" align=left text_class="ATO010" wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { + name: "extra_caller_name_style"; + base: "font="VC_FONT_REGULAR" font_size=26 color=#FFFFFF color_class:"ATO027" align=left text_class:"ATO027" wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { + name: "extra_caller_status_style"; + base: "font="VC_FONT_REGULAR" font_size=40 color=#FFFFFF color_class:"ATO007" align=right text_class:"ATO007" wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { + name: "merge_swap_style"; + base: "font="VC_FONT_REGULAR" font_size=24 color=#FFFFFF color_class:"ATO028" align=center text_class:"ATO028" wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { + name: "call_name_light"; + base: "font=Tizen:style=Light text_class="ATO002" font_size=64 color=#FFFFFFFF color_class: "ATO002" align=center color=#FFFFFF ellipsis=1.0"; + } + style { + name: "call_2line_light"; + base: "font=Tizen:style=Light text_class="ATO002" font_size=24 color=#FFFFFFFF color_class: "ATO002" align=center color=#FFFFFF ellipsis=1.0"; + } +} + +group{ + name: "manage-calls"; + parts { + part { + name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + part { + name: "btn"; + type: IMAGE; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "background";} + rel2 {relative: 1.0 1.0; to: "background";} + image { + normal: IMG_SRC_DIR/"call_ic_controll_01.png"; + } + color_class: "AO026"; + align: 0.5 0.5; + } + } + } +} + +group { + name: "extra-volume"; + parts { + part { + name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + + part { + name: "extra_icon"; + type: IMAGE; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "background";} + rel2 { relative: 1.0 1.0; to: "background";} + image.normal:IMG_SRC_DIR/"call_during_volume.png"; + color_class: "AO026"; + align: 0.5 0.5; + visible: 1; + } + } + } +} + +group{ + name: "caller-info"; + parts{ + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + part { + name: "carrier_icon"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: CALLER_INFO_CARRIER_L CALLER_INFO_CARRIER_T; to: "background";} + rel2 {relative: CALLER_INFO_CARRIER_R CALLER_INFO_CARRIER_B; to: "background";} + image.normal:IMG_SRC_DIR/"call_vivo.png"; + aspect_preference: SOURCE; + align: 0.5 0.5; + visible: 0; + } + description { + state: "vivo" 0.0; + inherit: "default" 0.0; + image.normal: IMG_SRC_DIR/"call_vivo.png"; + visible: 1; + } + description { + state: "claro" 0.0; + inherit: "default" 0.0; + image.normal: IMG_SRC_DIR/"call_claro.png"; + visible: 1; + } + description { + state: "oi" 0.0; + inherit: "default" 0.0; + image.normal: IMG_SRC_DIR/"call_oi.png"; + visible: 1; + } + description { + state: "tim" 0.0; + inherit: "default" 0.0; + image.normal: IMG_SRC_DIR/"call_tim.png"; + visible: 1; + } + } + + /*CALLER NAME*/ + part { name: "txt_call_name"; /* call name or number */ + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";} + rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_B; to: "background";} + text { + style: "call_name_light"; + } + } + description { + state: "1line" 0.0; + inherit: "default" 0.0; + rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_1LINE_T; to: "background";} + rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_1LINE_B; to: "background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "ending_2line" 0.0; + inherit: "default" 0.0; + text { + text_class: "ATO030"; + } + color_class: "ATO030"; + } + description { + state: "ending_1line" 0.0; + inherit: "1line" 0.0; + text { + text_class: "ATO030"; + } + color_class: "ATO030"; + } + description { + state: "emergency" 0.0; + rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";} + rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_EMERGENCY_B; to: "background";} + text.size: 64; + text.text_class: "AO008"; + } + } + + part { name: "txt_2nd_area"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_NUMBER_L CALLER_INFO_NUMBER_T; to: "background";} + rel2 { relative: CALLER_INFO_NUMBER_R CALLER_INFO_NUMBER_B; to: "background";} + } + } + + /*CALL NUMBER*/ + part { name: "txt_phone_num"; /* Phone number*/ + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "txt_2nd_area";} + rel2 { relative: 1 1; to: "txt_2nd_area";} + align: 0 0; + text { + fit: 1 1; + style: "call_2line_light"; + } + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "ending_2line" 0.0; + inherit: "default" 0.0; + text { + text_class: "ATO031"; + } + color_class: "ATO031"; + } + description { + state: "ending_1line" 0.0; + inherit: "hide" 0.0; + } + } + + part { name: "caller_id_rect"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: VC_CALLER_ID_LAYOUT_L VC_CALLER_ID_LAYOUT_T; to: "background";} + rel2 { relative: VC_CALLER_ID_LAYOUT_R VC_CALLER_ID_LAYOUT_B; to: "background";} + color: COLOR_BG_ALPHA; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "caller_id_rect";} + rel2 { relative: 1.0 1.0; to: "caller_id_rect";} + fixed: 1 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "caller_id_bg"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "caller_id_rect";} + rel2 { relative: 1.0 1.0; to: "caller_id_rect";} + image { + normal: IMG_SRC_DIR/"call_photo_id_bg.png"; + } + aspect_preference: SOURCE; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "emergency" 0.0; + inherit: "default" 0.0; + color_class: "AO036"; + } + description { + state: "dim" 0.0; + inherit: "default" 0.0; + color_class: "AO151"; + } + } + + part { name: "caller_id_img"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "caller_id_rect";} + rel2 { relative: 1.0 1.0; to: "caller_id_rect";} + image { + normal: IMG_SRC_DIR/"call_photo_id.png"; + } + aspect_preference: SOURCE; + color_class: "AO003L2"; + fixed: 1 1; + align: 0.5 0.5; + visible: 1; + } + description { + state: "emergency" 0.0; + rel1 { relative: 0.0 0.0; to: "caller_id_rect";} + rel2 { relative: 1.0 1.0; to: "caller_id_rect";} + image { + normal: IMG_SRC_DIR/"call_photo_id_emergency.png"; + } + aspect_preference: SOURCE; + fixed: 1 1; + align: 0.5 0.5; + visible: 1; + } + description { + state: "conference" 0.0; + inherit: "default" 0.0; + image { + normal: IMG_SRC_DIR/"call_photo_id_conference.png"; + } + color_class: "AO003L2"; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + /* effect */ + part { name: "caller_id_effect"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: VC_CALLER_ID_EFFECT_L VC_CALLER_ID_EFFECT_T; to: "background";} + rel2 { relative: VC_CALLER_ID_EFFECT_R VC_CALLER_ID_EFFECT_B; to: "background";} + min: 200 200; + max: 200 200; + fixed: 1 1; + align: 0.5 0.5; + } + } + + /*EXTRA INFO - hold, resume, extra volume*/ + part { + name: "extra_info"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: EXTRA_LAYOUT_L EXTRA_LAYOUT_T; to: "background";} + rel2 {relative: EXTRA_LAYOUT_R EXTRA_LAYOUT_B; to: "background";} + color: COLOR_BG_ALPHA; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { + name: "extra1_swl"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: 0 0; to: "extra_info";} + rel2 {relative: 1 1; to: "extra_info";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "extra_info2"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: EXTRA2_LAYOUT_L EXTRA2_LAYOUT_T; to: "background";} + rel2 {relative: EXTRA2_LAYOUT_R EXTRA2_LAYOUT_B; to: "background";} + color: COLOR_BG_ALPHA; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { + name: "extra2_swl"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: 0 0; to: "extra_info2";} + rel2 {relative: 1 1; to: "extra_info2";} + } + } + + part { + name: "divider"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 1; to: "extra_info"; } + rel2 { relative: 1 0; to: "extra_info2"; } + color_class: "AO039"; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { + name: "extra_info3"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: EXTRA3_LAYOUT_L EXTRA3_LAYOUT_T; to: "background";} + rel2 {relative: EXTRA3_LAYOUT_R EXTRA3_LAYOUT_B; to: "background";} + color: COLOR_BG_ALPHA; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { + name: "extra3_swl"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: 0 0; to: "extra_info3";} + rel2 {relative: 1 1; to: "extra_info3";} + } + } + + part { + name: "divider2"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 1; to: "extra_info2"; } + rel2 { relative: 1 0; to: "extra_info3"; } + color_class: "AO039"; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "manage_calls_icon_swallow"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: MANAGE_BTN_L MANAGE_BTN_T; to: "background";} + rel2 { relative: MANAGE_BTN_R MANAGE_BTN_B; to: "background";} + max: 39 39; + min: 39 39; + fixed: 1 1; + align: 0.5 0.5; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + programs { + program { name: "portrait_mode_caller_info"; + signal: "set_portrait_mode"; + source: "hold-caller-info"; + action: STATE_SET "default" 0.0; + target: "txt_2nd_area"; + target: "txt_call_name"; + target: "txt_phone_num"; + } + program { + name: "set_portrait_with_bg"; + signal: "set_portrait"; + source: "caller_info_layout"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + //target: "call_info_bg"; + target: "txt_call_name"; + target: "txt_2nd_area"; + } + + program { + name: "set_portrait_without_bg"; + signal: "set_portrait"; + source: "caller_info_layout_without_bg"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + target: "txt_call_name"; + target: "txt_2nd_area"; +// after: "hide_caller_info_bg"; + } + program { + name: "show_emergency_icon"; + signal: "set_emergency_mode"; + source: ""; + action: STATE_SET "emergency" 0.0; + target: "caller_id_img"; + target: "caller_id_bg"; + target: "txt_call_name"; + } + + program { + name: "show_conference_icon"; + signal: "set_conference_mode"; + source: ""; + action: STATE_SET "conference" 0.0; + target: "caller_id_img"; + after: "caller_name_2line"; + } + + program { + name: "show_extra_info1"; + signal: "show_extra_info1"; + source: ""; + action: STATE_SET "show" 0.0; + target: "extra_info"; + } + program { + name: "hide_extra_info1"; + signal: "hide_extra_info1"; + source: ""; + action: STATE_SET "default" 0.0; + target: "extra_info"; + } + program { + name: "show_extra_info2"; + signal: "show_extra_info2"; + source: ""; + action: STATE_SET "show" 0.0; + target: "divider"; + target: "extra_info2"; + } + program { + name: "hide_extra_info2"; + signal: "hide_extra_info2"; + source: ""; + action: STATE_SET "default" 0.0; + target: "divider"; + target: "extra_info2"; + } + program { + name: "show_extra_info3"; + signal: "show_extra_info3"; + source: ""; + action: STATE_SET "show" 0.0; + target: "divider2"; + target: "extra_info3"; + } + program { + name: "hide_extra_info3"; + signal: "hide_extra_info3"; + source: ""; + action: STATE_SET "default" 0.0; + target: "divider2"; + target: "extra_info3"; + } + + program { + name: "hide_default_cid"; + signal: "hide_default_cid"; + source: ""; + action: STATE_SET "hide" 0.0; + target: "caller_id_img"; + target: "caller_id_bg"; + } + program { + name: "show_cid_thumb"; + action: STATE_SET "show" 0.0; + target: "caller_id"; + } + + program { + name: "show_default_cid"; + signal: "show_default_cid"; + source: ""; + action: STATE_SET "default" 0.0; + target: "caller_id_img"; + target: "caller_id_bg"; + } + program { + name: "hide_cid_thumb"; + action: STATE_SET "hide" 0.0; + target: "caller_id"; + } + program { + name: "hide_cid_all"; + signal: "hide_cid_all"; + source: ""; + action: STATE_SET "hide" 0.0; + target: "caller_id_img"; + target: "caller_id_bg"; + target: "caller_id"; + } + program { + name: "show_cid_all"; + signal: "show_cid_all"; + source: ""; + action: STATE_SET "default" 0.0; + target: "caller_id_img"; + target: "caller_id_bg"; + target: "caller_id"; + } + + program { + name: "show_carrier_vivo"; + signal: "show_carrier_vivo"; + source: ""; + action: STATE_SET "vivo" 0.0; + target: "carrier_icon"; + } + program { + name: "show_carrier_claro"; + signal: "show_carrier_claro"; + source: ""; + action: STATE_SET "claro" 0.0; + target: "carrier_icon"; + } + program { + name: "show_carrier_oi"; + signal: "show_carrier_oi"; + source: ""; + action: STATE_SET "oi" 0.0; + target: "carrier_icon"; + } + program { + name: "show_carrier_tim"; + signal: "show_carrier_tim"; + source: ""; + action: STATE_SET "tim" 0.0; + target: "carrier_icon"; + } + program { + name: "hide_carrier_icon"; + signal: "hide_carrier_icon"; + source: ""; + action: STATE_SET "default" 0.0; + target: "carrier_icon"; + } + program { + name: "caller_name_1line"; + signal: "1line"; + source: "caller_name"; + action: STATE_SET "1line" 0.0; + target: "txt_call_name"; + } + program { + name: "caller_name_2line"; + signal: "2line"; + source: "caller_name"; + action: STATE_SET "default" 0.0; + target: "txt_call_name"; + } + program { + name: "ending_1line"; + signal: "ending_1line"; + source: "caller_info"; + action: STATE_SET "ending_1line" 0.0; + target: "txt_call_name"; + target: "txt_phone_num"; + after: "dim_caller_id"; + } + program { + name: "ending_2line"; + signal: "ending_2line"; + source: "caller_info"; + action: STATE_SET "ending_2line" 0.0; + target: "txt_call_name"; + target: "txt_phone_num"; + after: "dim_caller_id"; + } + program { + name: "dim_caller_id"; + action: STATE_SET "dim" 0.0; + target: "caller_id_bg"; + } + } + } +} diff --git a/res/call_edc/callui-view-elements.edc b/res/call_edc/callui-view-elements.edc new file mode 100644 index 0000000..693fdc0 --- /dev/null +++ b/res/call_edc/callui-view-elements.edc @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../../include/callui-view-elements-defines.h" +#include "../callui-color-classes.h" + +RESOURCE_IMAGE_WITH_MASK(GROUP_THUMBNAIL_186, IMG_SRC_DIR/"call_photo_id_bg.png", PART_SWALLOW_IMAGE) +RESOURCE_IMAGE_WITH_MASK(GROUP_THUMBNAIL_98, IMG_SRC_DIR/"call_btn_circle_02.png", PART_SWALLOW_IMAGE) + +RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE(GROUP_DEFAULT_THUMBNAIL_98, "call_photo_id_98.png", "call_photo_id_bg.png", "AO001", "AO002") +RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE(GROUP_DEFAULT_THUMBNAIL_186, "call_photo_id.png", "call_photo_id_bg.png", "AO001", "AO002") +RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE(GROUP_DEFAULT_CONFERENCE_THUMBNAIL_186, "call_photo_id_conference.png", "call_photo_id_bg.png", "AO001", "AO002") + +RESOURCE_IMAGE_WITH_BG_AND_TOUCH(GROUP_CALL_BTN_IC_SPLIT, "call_btn_ic_split.png", "call_btn_circle_02.png", CALL_BTN_IC_SIZE, CALL_BTN_IC_BG_SIZE, "btn_ic", "btn_ic_split_bg", "btn_ic_split_bg_pressed") +RESOURCE_IMAGE_WITH_BG_AND_TOUCH(GROUP_CALL_BTN_IC_END, "call_btn_ic_end.png", "call_btn_circle_02.png", CALL_BTN_IC_SIZE, CALL_BTN_IC_BG_SIZE, "btn_ic", "btn_ic_end_bg", "btn_ic_end_bg_pressed") \ No newline at end of file diff --git a/res/call_edc/callui-view-incoming-lock.edc b/res/call_edc/callui-view-incoming-lock.edc new file mode 100755 index 0000000..a0f0ba6 --- /dev/null +++ b/res/call_edc/callui-view-incoming-lock.edc @@ -0,0 +1,843 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +#define COLOR_OPACITY_100 255 255 255 255 +#define COLOR_OPACITY_80 255 255 255 204 +#define COLOR_OPACITY_75 255 255 255 191 +#define COLOR_OPACITY_60 255 255 255 153 +#define COLOR_OPACITY_50 255 255 255 128 +#define COLOR_OPACITY_40 255 255 255 102 +#define COLOR_OPACITY_25 255 255 255 64 +#define COLOR_OPACITY_20 255 255 255 51 +#define COLOR_OPACITY_0 255 255 255 0 +#define SHIFT_VALUE (20/720) + +#define CREATE_OUTER_CIRCLE_RECT(part_name, lpos, tpos, rpos, bpos) \ + part { \ + name: part_name; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + color: COLOR_BG_ALPHA; \ + } \ + } + +#define CREATE_OUTER_CIRCLE_CLIP(part_name, lpos, tpos, rpos, bpos) \ + part { \ + name: part_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + } \ + } + +#define CREATE_OUTER_CIRCLE(part_name, reference, icon_name, clip_to_rect, color_code) \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1.0; \ + clip_to: clip_to_rect; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.4 0.4; to: reference; } \ + rel2 { relative: 0.6 0.6; to: reference; } \ + image { \ + normal: IMG_SRC_DIR/icon_name; \ + } \ + align: 0.0 0.5; \ + color_class: color_code; \ + } \ + description { \ + state: "bright" 0.0; \ + inherit: "default" 0.0; \ + rel1 { relative: 0.0 0.0; to: reference; } \ + rel2 { relative: 1.0 1.0; to: reference; } \ + color_class: color_code; \ + } \ + description { \ + state: "bright" 0.1; \ + inherit: "bright" 0.0; \ + color_class: color_code; \ + } \ + description { \ + state: "bright" 0.2; \ + inherit: "bright" 0.0; \ + color_class: color_code; \ + } \ + description { \ + state: "bright" 0.3; \ + inherit: "bright" 0.0; \ + color_class: color_code; \ + } \ + description { \ + state: "show" 0.0; \ + inherit: "bright" 0.0; \ + color_class: color_code; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } + +#define CREATE_INNER_CIRCLE_SIMPLE_IMAGE(part_name, lpos, tpos, rpos, bpos, clip_to_rect, icon_name, color_code) \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 0; \ + repeat_events: 1; \ + scale: 1; \ + clip_to: clip_to_rect; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + image { \ + normal: IMG_SRC_DIR/icon_name; \ + } \ + align: 0.0 0.5; \ + color_class: color_code; \ + aspect_preference: SOURCE; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + +#define CREATE_INNER_CIRCLE_SIMPLE_IMAGE_R(part_name, lpos, tpos, rpos, bpos, icon_name, color_code) \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 0; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + image { \ + normal: IMG_SRC_DIR/icon_name; \ + } \ + align: 0.5 0.5; \ + color_class: color_code; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + +#define CREATE_INNER_CIRCLE(part_name, lpos, tpos, rpos, bpos, icon_name, color_code) \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + image { \ + normal: IMG_SRC_DIR/"call_btn_circle.png"; \ + } \ + align: 0.0 0.5; \ + color_class: color_code; \ + aspect_preference: SOURCE; \ + } \ + description { \ + state: "dim" 0.0; \ + inherit: "default" 0.0; \ + color_class: color_code; \ + color: COLOR_OPACITY_80; \ + } \ + description { \ + state: "dim" 0.1; \ + inherit: "default" 0.0; \ + color_class: color_code; \ + color: COLOR_OPACITY_60; \ + } \ + description { \ + state: "dim" 0.2; \ + inherit: "default" 0.0; \ + color_class: color_code; \ + color: COLOR_OPACITY_40; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + color_class: color_code; \ + color: COLOR_OPACITY_40; \ + } \ + description { \ + state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + color_class: color_code"P"; \ + } \ + } \ + part { \ + name: "call_btn_icon"; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; to: part_name; } \ + rel2 { relative: 1.0 1.0; to: part_name; } \ + image { \ + normal: IMG_SRC_DIR/icon_name; \ + } \ + align: 0.5 0.5; \ + max: MTLOCK_CALL_ICON_W MTLOCK_CALL_ICON_H; \ + min: MTLOCK_CALL_ICON_W MTLOCK_CALL_ICON_H; \ + } \ + } \ + part { \ + name: part_name"_ao"; \ + type: RECT; \ + mouse_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + color: 0 0 0 0; \ + } \ + } + +#define CREATE_ICON(part_name, lpos, tpos, rpos, bpos, normal_icon_name, dim_icon_name) \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + image { \ + normal: IMG_SRC_DIR/normal_icon_name; \ + } \ + align: 0.5 0.5; \ + color: COLOR_OPACITY_100; \ + } \ + description { \ + state: "dim" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: IMG_SRC_DIR/dim_icon_name; \ + } \ + } \ + } + +#define CREATE_ARROW_ICON(part_name, lpos, tpos, rpos, bpos, shift_value, icon_name, color_code, opacity_1, opacity_2, opacity_3, opacity_4, opacity_5) \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: lpos tpos; } \ + rel2 { relative: rpos bpos; } \ + image { \ + normal: icon_name; \ + } \ + align: 0.5 0.5; \ + color_class: color_code; \ + color: opacity_1; \ + visible: 1; \ + } \ + description { \ + state: "init" 0.0; \ + inherit: "default" 0.0; \ + rel1 { relative: lpos+shift_value tpos; } \ + rel2 { relative: rpos+shift_value bpos; } \ + } \ + description { \ + state: "flicker" 0.0; \ + inherit: "default" 0.0; \ + color: opacity_2; \ + } \ + description { \ + state: "flicker" 0.1; \ + inherit: "default" 0.0; \ + color: opacity_3; \ + } \ + description { \ + state: "flicker" 0.2; \ + inherit: "default" 0.0; \ + color: opacity_4; \ + } \ + description { \ + state: "flicker" 0.3; \ + inherit: "default" 0.0; \ + color: opacity_5; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } + +#define CREATE_PROGRAM(prog_name, signal_name, source_name, state_name, target_name) \ + program { \ + name: prog_name; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET state_name 0.0; \ + target: target_name; \ + } + +#define CREATE_PROGRAM_IN_TRANSITION(prog_name, signal_name, source_name, state_name, state_ver, target_name) \ + program { \ + name: prog_name; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET state_name state_ver; \ + target: target_name; \ + transition: LINEAR 0.2; \ + } + +#define CREATE_ARROW_ANIMATION(prog_1, prog_2, prog_3, prog_4, prog_5, target_1, target_2, target_3, target_4, signal_name, source_name) \ + program { \ + name: prog_1; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "default" 0.0; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + transition: LINEAR 0.5; \ + after: prog_2; \ + } \ + program { \ + name: prog_2; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.0; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + transition: LINEAR 0.3; \ + after: prog_3; \ + } \ + program { \ + name: prog_3; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.1; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + transition: LINEAR 0.3; \ + after: prog_4; \ + } \ + program { \ + name: prog_4; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.2; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + transition: LINEAR 0.3; \ + after: prog_5; \ + } \ + program { \ + name: prog_5; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.3; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + transition: LINEAR 0.3; \ + after: prog_1; \ + } + +#define CREATE_EASY_ARROW_ANIMATION(prog_1, prog_2, prog_3, prog_4, prog_5, target_1, target_2, target_3, target_4, target_5, signal_name, source_name) \ + program { \ + name: prog_1; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "default" 0.0; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + target: target_5; \ + transition: LINEAR 0.5; \ + after: prog_2; \ + } \ + program { \ + name: prog_2; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.0; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + target: target_5; \ + transition: LINEAR 0.3; \ + after: prog_3; \ + } \ + program { \ + name: prog_3; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.1; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + target: target_5; \ + transition: LINEAR 0.3; \ + after: prog_4; \ + } \ + program { \ + name: prog_4; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.2; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + target: target_5; \ + transition: LINEAR 0.3; \ + after: prog_5; \ + } \ + program { \ + name: prog_5; \ + signal: signal_name; \ + source: source_name; \ + action: STATE_SET "flicker" 0.3; \ + target: target_1; \ + target: target_2; \ + target: target_3; \ + target: target_4; \ + target: target_5; \ + transition: LINEAR 0.3; \ + after: prog_1; \ + } + +#define CREATE_PROGRAM_EXPAND_ANIMATION(prog_name, target_name) \ + program { \ + name: prog_name; \ + signal: "outer_circle,expand"; \ + source: "outer-circle"; \ + action: STATE_SET "bright" 0.0; \ + transition: LINEAR 0.5; \ + target: target_name; \ + } + +#define CREATE_PROGRAM_CONTRACT_ANIMATION(prog_name, target_name, after_prog_name) \ + program { \ + name: prog_name; \ + signal: "outer_circle,contract"; \ + source: "outer-circle"; \ + action: STATE_SET "default" 0.0; \ + transition: LINEAR 0.5; \ + target: target_name; \ + after: after_prog_name; \ + } + +color_classes { + color_class { + name: "ATO004"; + color: 3 61 133 255; + } +} + +group { + name: "lock_accept"; + + parts { + part { + name: "background"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + + CREATE_OUTER_CIRCLE_RECT("rect_outer_circle", MTLOCK_ACCEPT_OUTER_CIRCLE_L, MTLOCK_ACCEPT_OUTER_CIRCLE_T, MTLOCK_ACCEPT_OUTER_CIRCLE_R, MTLOCK_ACCEPT_OUTER_CIRCLE_B) + CREATE_OUTER_CIRCLE_CLIP("rect_outer_circle_clipper", MTLOCK_ACCEPT_OUTER_CIRCLE_L, MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_T, MTLOCK_ACCEPT_OUTER_CIRCLE_R, MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_B) + CREATE_OUTER_CIRCLE("accept_outer_circle", "rect_outer_circle", "call_button_bg_line_accept_reject.png", "rect_outer_circle_clipper", "AO046L1") + CREATE_INNER_CIRCLE_SIMPLE_IMAGE("accept_inner_circle_bg", MTLOCK_ACCEPT_INNER_CIRCLE_L, MTLOCK_ACCEPT_INNER_CIRCLE_T, MTLOCK_ACCEPT_INNER_CIRCLE_R, MTLOCK_ACCEPT_INNER_CIRCLE_B, "rect_outer_circle_clipper", "Call_button_bg_accept_reject.png", "AO046"); + + CREATE_INNER_CIRCLE("accept_inner_circle", MTLOCK_ACCEPT_INNER_CIRCLE_L, MTLOCK_ACCEPT_INNER_CIRCLE_T, MTLOCK_ACCEPT_INNER_CIRCLE_R, MTLOCK_ACCEPT_INNER_CIRCLE_B, "call_btn_ic_accept.png", "AO004") + } + + programs { + CREATE_PROGRAM_IN_TRANSITION("accept_outer_circle,show", "outer_circle,show", "outer-circle", "show", 0.0, "accept_outer_circle") + CREATE_PROGRAM_IN_TRANSITION("accept_outer_circle,hide", "outer_circle,hide", "outer-circle", "hide", 0.0, "accept_outer_circle") + } +} + +group { + name: "lock_reject"; + + parts { + part { + name: "background"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + CREATE_OUTER_CIRCLE_RECT("rect_outer_circle", MTLOCK_REJECT_OUTER_CIRCLE_L, MTLOCK_REJECT_OUTER_CIRCLE_T, MTLOCK_REJECT_OUTER_CIRCLE_R, MTLOCK_REJECT_OUTER_CIRCLE_B) + CREATE_OUTER_CIRCLE_CLIP("rect_outer_circle_clipper", MTLOCK_REJECT_OUTER_CIRCLE_L, MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_T, MTLOCK_REJECT_OUTER_CIRCLE_R, MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_B) + CREATE_OUTER_CIRCLE("reject_outer_circle", "rect_outer_circle", "call_button_bg_line_accept_reject.png", "rect_outer_circle_clipper", "AO047L1") + CREATE_INNER_CIRCLE_SIMPLE_IMAGE("reject_inner_circle_bg", MTLOCK_REJECT_INNER_CIRCLE_L, MTLOCK_REJECT_INNER_CIRCLE_T, MTLOCK_REJECT_INNER_CIRCLE_R, MTLOCK_REJECT_INNER_CIRCLE_B, "rect_outer_circle_clipper", "Call_button_bg_accept_reject.png", "AO047"); + + CREATE_INNER_CIRCLE("reject_inner_circle", MTLOCK_REJECT_INNER_CIRCLE_L, MTLOCK_REJECT_INNER_CIRCLE_T, MTLOCK_REJECT_INNER_CIRCLE_R, MTLOCK_REJECT_INNER_CIRCLE_B, "call_btn_ic_reject.png", "AO005") + } + + programs { + CREATE_PROGRAM_IN_TRANSITION("reject_outer_circle,show", "outer_circle,show", "outer-circle", "show", 0.0, "reject_outer_circle") + CREATE_PROGRAM_IN_TRANSITION("reject_outer_circle,hide", "outer_circle,hide", "outer-circle", "hide", 0.0, "reject_outer_circle") + } +} + + +group { + name: "lock_reject_with_msg"; + + parts { + part { + name: "reject_msg_bg"; + type: RECT; + mouse_events:1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_BG_L MTLOCK_REJECT_MSG_BG_T;} + rel2 { relative: MTLOCK_REJECT_MSG_BG_R 1.0;} + align: 0.0 0.5; + color: 0 0 0 0; + visible: 1; + } + } + + part { + name: "reject_msg_arw"; + type: IMAGE; + mouse_events:1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_ARW_L MTLOCK_REJECT_MSG_ARW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_ARW_R MTLOCK_REJECT_MSG_ARW_B; } + align: 0.5 0.5; + color_class: "AO001"; + visible: 0; + } + description { + state: "list_close" 0.0; + inherit: "default" 0.0; + image { normal: IMG_SRC_DIR/"call_inline_button_open.png"; } + visible: 1; + } + description { + state: "list_open" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "reject_msg_text_area"; + type: SPACER; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_TEXT_L MTLOCK_REJECT_MSG_TEXT_T; } + rel2 { relative: MTLOCK_REJECT_MSG_TEXT_R MTLOCK_REJECT_MSG_TEXT_B; } + } + } + part { + name: "reject_msg_text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "reject_msg_text_area";} + rel2 { relative: 1 1; to: "reject_msg_text_area";} + fixed: 1 1; + text { font, VC_FONT_REGULAR; align, 0.5 0.5; size:38; } + color_class: "AO001"; + visible: 1; + align: 0.5 0.5; + } + description { + state: "list_close" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "list_open" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "swl_msglist_bg"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_1ITEM_B; } + } + description { + state: "1item" 0.0; + inherit: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_1ITEM_B; } + } + description { + state: "2items" 0.0; + inherit: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_2ITEMS_B; } + } + description { + state: "3items" 0.0; + inherit: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_3ITEMS_B; } + } + description { + state: "4items" 0.0; + inherit: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_4ITEMS_B; } + } + description { + state: "5items" 0.0; + inherit: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_5ITEMS_B; } + } + description { + state: "6items" 0.0; + inherit: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_6ITEMS_B; } + } + } + + part { + name: "swl_msglist"; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "swl_msglist_bg"; } + rel2 { relative: 1.0 1.0; to: "swl_msglist_bg"; } + } + } + part { + name: "arrow_bg"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_DOWN_ARROW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_DOWN_ARROW_B; } + } + } + part { + name: "reject_msg_down_arw"; + type: IMAGE; + mouse_events:1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_ARW_L MTLOCK_REJECT_MSG_ARW_CLOSE_T; } + rel2 { relative: MTLOCK_REJECT_MSG_ARW_R MTLOCK_REJECT_MSG_ARW_CLOSE_B; } + image { normal: IMG_SRC_DIR/"call_inline_button_close.png"; } + align: 0.5 0.5; + color_class: "AO001"; + visible: 1; + } + } + + part { + name: "bottom_btn/rect"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: MTLOCK_REJECT_MSG_BTN_L MTLOCK_REJECT_MSG_BTN_T;} + rel2 { relative: MTLOCK_REJECT_MSG_BTN_R MTLOCK_REJECT_MSG_BTN_B;} + align: 0.5 0.0; + } + } + part { + name: "bottom_btn"; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 1; + rel1 { + relative: (REJ_MSG_LIST_CREATE_MSG_BTN_L_PAD/MTLOCK_REJECT_MSG_LIST_WIDTH) (BUTTON_OFFSET_T/ITEM_SIZE_H); + to: "bottom_btn/rect"; + } + rel2 { + relative: ((MTLOCK_REJECT_MSG_LIST_WIDTH-REJ_MSG_LIST_CREATE_MSG_BTN_R_PAD)/MTLOCK_REJECT_MSG_LIST_WIDTH) ((BUTTON_REJECT_SIZE_H + BUTTON_OFFSET_T)/ITEM_SIZE_H); + to: "bottom_btn/rect"; + } + } + } + } + + programs { + program { + name: "up_arrow"; + signal: "show-up-arrow"; + source: "reject_msg"; + action: STATE_SET "list_close" 0.0; + target: "reject_msg_arw"; + target: "reject_msg_text"; + transition: LINEAR 0.0; + } + + program { + name: "down_arrow"; + signal: "show-down-arrow"; + source: "reject_msg"; + action: STATE_SET "list_open" 0.0; + target: "reject_msg_arw"; + target: "reject_msg_text"; + transition: LINEAR 0.0; + } + + program { + name: "set_portrait"; + signal: "set_portrait"; + source: "reject_with_msg_layout"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + + target: "reject_msg_bg"; + target: "reject_msg_arw"; + target: "reject_msg_text_area"; + target: "reject_msg_text"; + target: "swl_msglist_bg"; + } + program { + name: "1item_list"; + signal: "set_1item_list"; + source: ""; + action: STATE_SET "1item" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "2items_list"; + signal: "set_2items_list"; + source: ""; + action: STATE_SET "2items" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "3items_list"; + signal: "set_3items_list"; + source: ""; + action: STATE_SET "3items" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "4items_list"; + signal: "set_4items_list"; + source: ""; + action: STATE_SET "4items" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "5items_list"; + signal: "set_5items_list"; + source: ""; + action: STATE_SET "5items" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "6items_list"; + signal: "set_6items_list"; + source: ""; + action: STATE_SET "6items" 0.0; + target: "swl_msglist_bg"; + } + } +} + +group { + name: "dimming_ly"; + parts { + part { + name: "background"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color_class: "AO012"; + visible: 1; + } + } + } +} + diff --git a/res/call_edc/callui-view-lock-screen.edc b/res/call_edc/callui-view-lock-screen.edc new file mode 100755 index 0000000..614a418 --- /dev/null +++ b/res/call_edc/callui-view-lock-screen.edc @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +styles { + style { + name: "lock_screen_txt_style"; + base: "font="VC_FONT_REGULAR" font_size=30 color=#FFFFFF color_class:"ATO011" align=center text_class="ATO011" wrap=mixed"; + tag: "br" "\n"; + tag: "tab" "\t"; + } +} + +group { + name: "lock-screen"; + parts { + part { + name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + part { name: "bg_img"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} + image { + normal: IMG_SRC_DIR/"without_proximity_seneor_bg.png"; + } + aspect_preference: BOTH; + align: 0.0 0.0; + visible: 1; + } + } + + part { + name: "lock-icon"; + type: IMAGE; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: LOCK_SCREEN_ICON_L LOCK_SCREEN_ICON_T; to: background; } + rel2 {relative: LOCK_SCREEN_ICON_R LOCK_SCREEN_ICON_B; to: background; } + image.normal: IMG_SRC_DIR/"call_lock_icon.png"; + aspect_preference: SOURCE; + } + } + + part { + name: "lock-text"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: LOCK_SCREEN_TEXT_L LOCK_SCREEN_TEXT_T; to: background; } + rel2 {relative: LOCK_SCREEN_TEXT_R LOCK_SCREEN_TEXT_B; to: background; } + text { + style: "lock_screen_txt_style"; + text_class: "ATO011"; + align: 0 0; + } + color_class: "ATO011"; + } + } + + + } +} + diff --git a/res/call_edc/callui-view-main-layout.edc b/res/call_edc/callui-view-main-layout.edc new file mode 100644 index 0000000..56fe3c8 --- /dev/null +++ b/res/call_edc/callui-view-main-layout.edc @@ -0,0 +1,760 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" +#include "../../include/callui-view-caller-info-defines.h" + +#define ACTION_PANEL_WIDTH 720 +#define ACTION_OFFSET_X 308 +#define ACTION_OFFSET_Y 24 +#define ACTION_HEIGHT 169 +#define ACTION_HEIGHT_OFFSET_Y 24 + +styles { + style { + name: "call_timer_style"; + base: "font="VC_FONT_REGULAR" font_size=24 color=#FFFFFF color_class:"ATO007" align=right text_class:"ATO007" wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } +} + +group { + name: "main_ly"; + parts { + part { name: "background"; + type: IMAGE; + description { + state: "default" 0.0; + image.normal: "background.png"; + } + } + part { + name: "textblock_bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 KEYPAD_ENTRY_TEXT_T; to: "background"; } + rel2 { relative: 1 KEYPAD_ENTRY_TEXT_B; to: "background"; } + color: 0 0 0 0; + //color_class: "AO001"; + visible: 1; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: PART_SWALLOW_TEXTBLOCK_AREA; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 0.5 1.0; + rel1 { relative: KEYPAD_ENTRY_TEXT_L 0; to: "textblock_bg"; } + rel2 { relative: KEYPAD_ENTRY_TEXT_R 1; to: "textblock_bg"; } + visible: 1; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "call_info_upper/rect"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0 CALLER_INFO_STATUS_T_PAD/MAIN_SCREEN_H; to: "background"; } + rel2 { relative: 1 (CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT)/MAIN_SCREEN_H; to: "background"; } + color: 0 0 0 0; + } + } + + part { + name: "call_info_lower/rect"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0 ((CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT)/MAIN_SCREEN_H); to: "background"; } + rel2 { relative: 1 ((CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT+CALLER_INFO_STATUS_HEIGHT)/MAIN_SCREEN_H); to: "background"; } + color: 0 0 0 0; + } + } + + part { name: "extra_volume_icon_swallow"; /*Call time or Call status*/ + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to_x: "icon_padding"; to_y: "call_info_upper/rect";} + rel2 { relative: 0 1; to_x: "icon_padding"; to_y: "call_info_upper/rect";} + max: 27 27; + min: 27 27; + fixed: 1 1; + align: 1.0 0.5; + } + + } + + part { name: "icon_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + min: 7 0; + align: 1 0; + rel1 { relative: 0 0; to: "resume_icon_swallow";} + rel2 { relative: 0 1; to: "resume_icon_swallow";} + } + } + + part { name: "resume_icon_swallow"; /*Call time or Call status*/ + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to_x: "txt_padding"; to_y: "call_info_upper/rect";} + rel2 { relative: 0 1; to_x: "txt_padding"; to_y: "call_info_upper/rect";} + max: 27 27; + min: 27 27; + fixed: 1 1; + align: 1.0 0.5; + } + } + + part { name: "txt_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + min: 14 0; + align: 1 0; + rel1 { relative: 0 0; to: "txt_timer";} + rel2 { relative: 0 1; to: "txt_timer";} + } + } + + part { name: "call_txt_status"; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_STATUS_L 0; to: "call_info_upper/rect";} + rel2 { relative: 1 1; to: "call_info_upper/rect";} + fixed: 1 1; + text { + align: 0 0.5; + text_class: "ATO001"; + } + align: 0 0.5; + max: CALL_STATUS_MAX_TEXT_WIDTH CALLER_INFO_STATUS_HEIGHT; + color_class: "ATO001"; + } + } + + /* CALL TIME*/ + part { name: "txt_timer"; /*Call time or Call status*/ + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_STATUS_R 0; to: "call_info_upper/rect";} + rel2 { relative: CALLER_INFO_STATUS_R 1; to: "call_info_upper/rect";} + text { + align: 1 0.5; + min: 1 0; + style: "call_timer_style"; + text_class: "ATO007"; + } + align: 1 0.5; + max: TXT_TIMER_MAX_TEXT_WIDTH CALLER_INFO_STATUS_HEIGHT; + fixed: 1 1; + color_class: "ATO007"; + } + } + + part { name: "rec_timer"; /*recording Call time */ + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_STATUS_R 0; to: "call_info_lower/rect";} + rel2 { relative: CALLER_INFO_STATUS_R 1; to: "call_info_lower/rect";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + text { + min: 1 0; + style: "call_timer_style"; + text_class: ATO032; + } + align: 1 0.5; + color_class: ATO032; + max: TXT_TIMER_MAX_TEXT_WIDTH+10 CALLER_INFO_STATUS_HEIGHT; + fixed: 1 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "rec_image_spacer"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "rec_timer";} + rel2 {relative: 0.0 1.0; to: "rec_timer";} + visible: 0; + align: 1 0; + min: 5 30; + max: 5 30; + fixed: 0 0; + } + } + + part { name: "rec_image"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "rec_image_spacer";} + rel2 {relative: 0.0 1.0; to: "rec_image_spacer";} + image.normal: IMG_SRC_DIR/"call_during_record.png" ; + aspect_preference: SOURCE; + min:30 30; + align: 1.0 0.5; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default"; + visible: 0; + } + } + + part { name: "caller_info_rect"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} + color: COLOR_BG_ALPHA; + //min: CALLER_INFO_WIDTH CALLER_INFO_HEIGHT; + } + } + + part { name: "caller_info"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "caller_info_rect";} + rel2 { relative: 1.0 1.0; to: "caller_info_rect";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "circle_btn_area"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1{ relative: 0.0 1.0; to: "caller_info_rect";} + rel2{ relative: 1.0 1.0;} + min: MTLOCK_ACCEPT_CIRCLE_RECT_WIDTH MTLOCK_ACCEPT_CIRCLE_RECT_HEIGHT; + color: 255 255 255 255; + align: 0.5 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "btn_area"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1{ relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";} + rel2{ relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} + color: COLOR_BG_ALPHA; + align: 0.5 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: PART_SWALLOW_KEYPAD; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0 KEYPAD_AREA_T_HIDE; to: "background";} + rel2 { relative: 1 KEYPAD_AREA_B_HIDE; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 (KEYPAD_AREA_H / TOTAL_H); to: "background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + rel1 { relative: 0 KEYPAD_AREA_T_HIDE; to: "background";} + rel2 { relative: 1 KEYPAD_AREA_B_HIDE; to: "background";} + } + } + + part { name: "btn_region"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; to: "btn_area";} + rel2 { relative: 1.0 1.0; to: "btn_area";} + align: 0.5 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "btn_bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: ENDSINGLECALL_BTN_BG_L ENDSINGLECALL_BTN_BG_T; to: "background";} + rel2 { relative: ENDSINGLECALL_BTN_BG_R ENDSINGLECALL_BTN_BG_B; to: "background";} + } + } + + part { name: "bottom_btn_bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + color: 255 255 255 255; + rel1 { relative: BOTTOM_BTN_LAYOUT_L BOTTOM_BTN_LAYOUT_T; to: "background";} + rel2 { relative: BOTTOM_BTN_LAYOUT_R BOTTOM_BTN_LAYOUT_B; to: "background";} + align: 0.5 0.0; + min: 320 72; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "three_btn_voicecall"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: ENDSINGLECALL_CALL_BTN_BG_L 17/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";} + rel2 { relative: ENDSINGLECALL_CALL_BTN_BG_R 91/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";} + align: 0.5 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "three_btn_message"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: ENDSINGLECALL_MSG_BTN_BG_L 17/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";} + rel2 { relative: ENDSINGLECALL_MSG_BTN_BG_R 91/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";} + align: 0.5 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "btn_view_contacts"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: ENDSINGLECALL_VIEW_CONTACT_BTN_L ENDSINGLECALL_VIEW_CONTACT_BTN_T; to: "btn_bg";} + rel2 { relative: ENDSINGLECALL_VIEW_CONTACT_BTN_R ENDSINGLECALL_VIEW_CONTACT_BTN_B; to: "btn_bg";} + align: 0.5 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "btn_create_contacts"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: ENDSINGLECALL_CREATE_CONTACT_BTN_L ENDSINGLECALL_CREATE_CONTACT_BTN_T; to: "btn_bg";} + rel2 { relative: ENDSINGLECALL_CREATE_CONTACT_BTN_R ENDSINGLECALL_CREATE_CONTACT_BTN_B; to: "btn_bg";} + align: 0.5 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "btn_update"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: ENDSINGLECALL_UPDATE_CONTACT_BTN_L ENDSINGLECALL_UPDATE_CONTACT_BTN_T; to: "btn_bg";} + rel2 { relative: ENDSINGLECALL_UPDATE_CONTACT_BTN_R ENDSINGLECALL_UPDATE_CONTACT_BTN_B; to: "btn_bg";} + align: 0.5 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "end_btn_area"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1{ relative: BOTTOM_BTN_LAYOUT_L ((MAIN_SCREEN_H - ENDCALL_BTN_BG_HEIGHT)/MAIN_SCREEN_H); to: "background";} + rel2{ relative: BOTTOM_BTN_LAYOUT_R 1.0; to: "background";} + min: 320 72; + color: 255 255 255 255; + align: 0.5 1.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: PART_END_BTN; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1{ relative: (ACTION_OFFSET_X/ACTION_PANEL_WIDTH) ACTION_HEIGHT_OFFSET_Y/ACTION_HEIGHT; to: "end_btn_area";} + rel2{ relative: ((ACTION_PANEL_WIDTH-ACTION_OFFSET_X)/ACTION_PANEL_WIDTH) ((ACTION_HEIGHT-ACTION_HEIGHT_OFFSET_Y)/ACTION_HEIGHT); to: "end_btn_area";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + }//parts + + programs { + program { name: "show_recording_timer"; + signal: "recording_time_show"; + source: "rec_timer"; + action: STATE_SET "show" 0.0; + target: "rec_timer"; + target: "rec_image"; + } + program { name: "hide_recording_timer"; + signal: "recording_time_hide"; + source: "rec_timer"; + action: STATE_SET "hide" 0.0; + target: "rec_timer"; + target: "rec_image"; + } + program { name: "show_effect_allbtn"; + signal: "SHOW_EFFECT"; + source: "ALLBTN"; + action: STATE_SET "show" 0.0; + transition: DECELERATE 0.5; //LINEAR 1.0; + target: "btn_region"; + } + program { name: "show_no_effect_allbtn"; + signal: "SHOW_NO_EFFECT"; + source: "ALLBTN"; + action: STATE_SET "show" 0.0; + target: "btn_region"; + } + program { name: "hide_btn_ly"; + signal: "HIDE_BTN_LY"; + source: "ALLBTN"; + action: STATE_SET "hide" 0.0; + target: "btn_region"; + } + + program { name: "show_keypadbtn"; + action: STATE_SET "show" 0.0; + transition: LINEAR 0.25; + target: PART_SWALLOW_KEYPAD; + } + program { name: "show_keypadbtn_no_effect"; + signal: "SHOW"; + source: "KEYPAD_BTN"; + action: STATE_SET "hide" 0.0; + target: "caller_info"; + target: "btn_region"; + after: "show_entry"; + after: "show_keypadbtn"; + } + + program { + name: "show_entry"; + action: STATE_SET "show" 0.0; + target: PART_SWALLOW_TEXTBLOCK_AREA; + target: "textblock_bg"; + } + + program { name: "hide_keypadarea"; + signal: "HIDE"; + source: "KEYPAD_AREA"; + action: STATE_SET "hide" 0.0; + target: PART_SWALLOW_KEYPAD; + after: "show_caller_info"; + } + + program { name: "hide_keypadbtn"; + signal: "HIDE"; + source: "KEYPAD_BTN"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.25; + target: PART_SWALLOW_KEYPAD; + after: "show_six_btns"; + after: "show_caller_info"; + } + program { name: "show_six_btns"; + action: STATE_SET "show" 0.0; + target: "btn_region"; + } + + program { + name: "show_caller_info"; + action: STATE_SET "default" 0.0; + target: "caller_info"; + after: "hide_entry"; + } + + program { + name: "hide_entry"; + action: STATE_SET "hide" 0.0; + target: PART_SWALLOW_TEXTBLOCK_AREA; + target: "textblock_bg"; + } + + program { + name: "set_portrait"; + signal: "set_portrait"; + source: "incall_layout"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + + target: "background"; + //target: "caller_id"; + target: "caller_info"; + target: "btn_region"; + target: PART_SWALLOW_KEYPAD; + } + + program { name: "show_1_btns"; + signal: "show_end_menu_1_btns"; + source: "show_1_btns"; + action: STATE_SET "visible" 0.0; + target: "bottom_btn_bg"; +// target: "three_btn_videocall"; + target: "three_btn_voicecall"; + target: "three_btn_message"; + target: "btn_view_contacts"; + target: "btn_create_contacts"; + target: "btn_update"; + } + + program { name: "show_2_btns"; + signal: "show_end_menu_2_btns"; + source: "show_2_btns"; + action: STATE_SET "visible" 0.0; + target: "bottom_btn_bg"; +// target: "three_btn_videocall"; + target: "three_btn_voicecall"; + target: "three_btn_message"; + target: "btn_view_contacts"; + target: "btn_create_contacts"; + target: "btn_update"; + } + + program { + name: "set_portrait_1_btn"; + signal: "set_portrait_1_btn"; + source: "end_singlecall_1_btn"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + + target: "background"; + target: "caller_info"; + target: "btn_bg"; + target: "bottom_btn_bg"; +// target: "three_btn_videocall"; + target: "three_btn_voicecall"; + target: "three_btn_message"; + target: "btn_view_contacts"; + target: "btn_create_contacts"; + target: "btn_update"; + } + + program { + name: "set_portrait_2_btn"; + signal: "set_portrait_2_btn"; + source: "end_singlecall_2_btn"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + + target: "background"; + target: "caller_info"; + target: "btn_bg"; + target: "bottom_btn_bg"; +// target: "three_btn_videocall"; + target: "three_btn_voicecall"; + target: "three_btn_message"; + target: "btn_view_contacts"; + target: "btn_create_contacts"; + target: "btn_update"; + } + + program { name: "show_mt_circle_bg"; + signal: "mt_circle_bg_show"; + source: "mt_view"; + action: STATE_SET "show" 0.0; + target: "circle_btn_area"; + } + program { name: "hide_mt_circle_bg"; + signal: "mt_circle_bg_hide"; + source: "mt_view"; + action: STATE_SET "default" 0.0; + target: "circle_btn_area"; + } + + program { name: "show_end_btn_bg"; + signal: "show_end_btn_bg"; + source: "main_ly"; + action: STATE_SET "show" 0.0; + target: "end_btn_area"; + } + program { name: "hide_end_btn_bg"; + signal: "hide_end_btn_bg"; + source: "main_ly"; + action: STATE_SET "hide" 0.0; + target: "end_btn_area"; + } + } +} diff --git a/res/call_edc/callui-view-multi-call-list.edc b/res/call_edc/callui-view-multi-call-list.edc new file mode 100755 index 0000000..0ac2a80 --- /dev/null +++ b/res/call_edc/callui-view-multi-call-list.edc @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +group { + name: "multicall-list"; + parts { + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color_class: "AO052"; + } + } + + part { + name: "call_info_upper/rect"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0 INDICATOR_HEIGHT/MULTI_LIST_HEIGHT; to: "background"; } + rel2 { relative: 1 (INDICATOR_HEIGHT+51)/MULTI_LIST_HEIGHT; to: "background"; } + color_class: "AO052"; + } + } + part { name: "call_txt_status"; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 15/480 0; to: "call_info_upper/rect";} + rel2 { relative: 1 1; to: "call_info_upper/rect";} + fixed: 1 1; + text { + align: 0 0.5; + text_class: "ATO016"; + } + color_class: "ATO016"; + } + } + + /* CALL TIME*/ + part { name: "txt_timer"; /*Call time or Call status*/ + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "call_info_upper/rect";} + rel2 { relative: (480-15)/480 1; to: "call_info_upper/rect";} + fixed: 1 1; + text { + align: 1 0.5; + text_class: "ATO017"; + } + color_class: "ATO017"; + } + } + + part { name: "swl_calllist"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: 0 (INDICATOR_HEIGHT+51)/MULTI_LIST_HEIGHT; to: "background"; } + rel2 { relative: 1 (MULTI_LIST_HEIGHT-BOTTOM_BTN_BG_HEIGHT)/MULTI_LIST_HEIGHT; to: "background"; } + } + } + + part { + name: "bottom_btn/rect"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0 (MULTI_LIST_HEIGHT-BOTTOM_BTN_BG_HEIGHT)/MULTI_LIST_HEIGHT; to: "background"; } + rel2 { relative: 1 1; to: "background"; } + color: 255 255 255 255; + } + } + + part { + name: "bottom_btn"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: BACK_BTN_L 0; to:"bottom_btn/rect"; } + rel2 { relative: BACK_BTN_R 1; to:"bottom_btn/rect"; } + } + } + }//parts + + programs { + program { + name: "set_portrait"; + signal: "set_portrait"; + source: "multicall_list_layout"; + in: 0.0 0.0; + action: STATE_SET "default" 0.0; + + target: "background"; + target: "swl_calllist"; + } + } +} diff --git a/res/call_edc/callui-view-one-hold-in-conference.edc b/res/call_edc/callui-view-one-hold-in-conference.edc new file mode 100644 index 0000000..63deff5 --- /dev/null +++ b/res/call_edc/callui-view-one-hold-in-conference.edc @@ -0,0 +1,536 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../../include/callui-view-caller-info-defines.h" + +images { + image: "call_ic_controll_01.png" COMP; + image: "call_multi_hold_bg.png" COMP; + image: "call_multi_hold_btn_merge_bg.png" COMP; + image: "call_multi_hold_btn_swap_bg.png" COMP; + image: "background.png" COMP; +} + +styles { + style { + name: "ATO006"; + base: "font="VC_FONT_REGULAR" font_size=56 color=#FFFAFAFF ellipsis=1.0"; + } + style { + name: "ATO007"; + base: "font="VC_FONT_REGULAR" font_size=34 color=#FFFAFAFF ellipsis=1.0"; + } + style { + name: "ATO008"; + base: "font="VC_FONT_REGULAR" font_size=27 color=#FFFAFAFF align=center"; + } +} + +#define MERGE_SWAP_BTN(NAME, BG_IMAGE, ICON, BG_COLOR, PRESSED_COLOR) \ + group { \ + name: NAME; \ + images.image: ICON COMP; \ + parts { \ + part { \ + name: "background"; \ + type: IMAGE; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + image.normal: BG_IMAGE; \ + color_class: BG_COLOR; \ + } \ + description { \ + state: "pressed" 0.0; \ + image.normal: BG_IMAGE; \ + color_class: PRESSED_COLOR; \ + } \ + } \ + part { \ + name: "icon"; \ + type: IMAGE; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1.relative: MS_BTN_ICON_L MS_BTN_ICON_T; \ + rel2.relative: MS_BTN_ICON_R MS_BTN_ICON_B; \ + image.normal: ICON; \ + } \ + } \ + part { \ + name: PART_TEXT_MERGE_SWAP_BTN; \ + type: TEXTBLOCK; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { \ + relative: 0.0 1.0; \ + to_y: "icon"; \ + } \ + rel2.relative: 1.0 MS_BTN_TEXT_B; \ + text { \ + style: "ATO008"; \ + } \ + } \ + } \ + } \ + programs { \ + program { \ + name: "pressed" ; \ + signal: "mouse,down,*"; \ + source: "*"; \ + action: STATE_SET "pressed" 0.0; \ + target: "background"; \ + } \ + program { \ + name: "unpressed" ; \ + signal: "mouse,up,*"; \ + source: "*"; \ + action: STATE_SET "default" 0.0; \ + target: "background"; \ + } \ + } \ + } + +group { + name: GROUP_ACTIVE_HOLD_INFO; + parts { + part { + name: "background"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + image.normal: "call_multi_hold_bg.png"; + color: 0 0 0 200; + } + description { + state: "transparent" 0.0; + image.normal: "call_multi_hold_bg.png"; + color: 0 0 0 0; + } + } + + part { + name: PART_TEXT_STATUS; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: CALLER_INF_L CALLER_INF_STATUS_T; + rel2.relative: CALLER_INF_STATUS_R CALLER_INF_STATUS_B; + text { + align: 0.0 0.0; + style: "ATO007"; + } + } + } + + part { + name: PART_SWALLOW_CALLER_ID; + type: SWALLOW; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel1.relative: CALLER_INF_L CALLER_INF_ID_T; + rel2.relative: CALLER_INF_ID_R CALLER_INF_ID_B; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: PART_TEXT_MAIN; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: CALLER_INF_TEXT_L CALLER_INF_ID_T; + text { + align: 0.0 0.0; + style: "ATO006"; + } + } + } + + part { + name: PART_TEXT_SUB; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: CALLER_INF_TEXT_L CALLER_INF_SUBTEXT_T; + text { + align: 0.0 0.0; + style: "ATO007"; + } + } + } + + part { + name: "arrow"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1.relative: ARROW_L ARROW_T; + rel2.relative: ARROW_R ARROW_B; + image.normal: "call_ic_controll_01.png"; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + } + description { + state: "pressed" 0.0; + inherit: "show" 0.0; + color_class: "pressed"; + } + } + } + programs{ + program { + name: "set_transparent_background"; + signal: SIGNAL_SET_TRANSPARENT_BACKGROUND; + action: STATE_SET "transparent" 0.0; + target: "background"; + } + program { + name: "set_blurred_background"; + signal: SIGNAL_SET_BLURRED_BACKGROUND; + action: STATE_SET "default" 0.0; + target: "background"; + } + program { + name: "show_arrow"; + signal: SIGNAL_SHOW_ARROW; + action: STATE_SET "show" 0.0; + target: "arrow"; + } + program { + name: "hide_arrow"; + signal: SIGNAL_HIDE_ARROW; + action: STATE_SET "hide" 0.0; + target: "arrow"; + } + program { + name: "arrow_pressed"; + signal: "mouse,down,*"; + source: "arrow"; + action: STATE_SET "pressed" 0.0; + target: "arrow"; + } + program { + name: "arrow_unpressed"; + signal: "mouse,up,*"; + source: "arrow"; + action: STATE_SET "default" 0.0; + target: "arrow"; + } + } +} + +MERGE_SWAP_BTN(GROUP_MERGE_BTN, "call_multi_hold_btn_merge_bg.png", "call_extra_merge.png", "merge_btn_bg", "pressed") +MERGE_SWAP_BTN(GROUP_SWAP_BTN, "call_multi_hold_btn_swap_bg.png", "call_extra_swap.png", "swap_btn_bg", "pressed") + +group { + name: GROUP_BTN_REGION; + parts { + part { + name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { + name: PART_TOP_FIRST_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.33 0.5; + } + } + part { + name: PART_TOP_SECOND_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.33 0.0; + rel2.relative: 0.66 0.5; + } + } + part { + name: PART_TOP_THIRD_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.66 0.0; + rel2.relative: 1.0 0.5; + } + } + part { + name: PART_BOTTOM_FIRST_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.5; + rel2.relative: 0.33 1.0; + } + } + part { + name: PART_BOTTOM_SECOND_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.33 0.5; + rel2.relative: 0.66 1.0; + } + } + part { + name: PART_BOTTOM_THIRD_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.66 0.5; + rel2.relative: 1.0 1.0; + } + } + } +} + +group { + name: GROUP_ACTION_PANEL; + parts { + part { + name: "background"; + type: RECT; + description { + state: "default" 0.0; + color_class: "AO008"; + } + } + part { + name: PART_END_BTN; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: END_BUTTON_L END_BUTTON_T; + rel2.relative: END_BUTTON_R END_BUTTON_B; + } + } + } +} + +group { + name: GROUP_ONE_HOLD_IN_CONFERENCE; + parts { + part { + name: "background"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + image.normal: "background.png"; + } + } + + part { + name: PART_SWALLOW_HOLD_INFO; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: HOLD_LAYOUT_L HOLD_LAYOUT_T; + rel2.relative: HOLD_LAYOUT_R HOLD_LAYOUT_B; + } + } + + part { + name: PART_SWALLOW_MERGE; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: MERGE_BTN_L MERGE_SWAP_BTN_T; + rel2.relative: MERGE_BTN_R MERGE_SWAP_BTN_B; + } + } + + part { + name: PART_SWALLOW_SWAP; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: SWAP_BTN_L MERGE_SWAP_BTN_T; + rel2.relative: SWAP_BTN_R MERGE_SWAP_BTN_B; + } + } + + part { + name: PART_SWALLOW_ACTIVE_INFO; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: ACTIVE_INFO_L ACTIVE_INFO_T; + rel2.relative: ACTIVE_INFO_R ACTIVE_INFO_B; + } + } + } +} + +group { + name: GROUP_SPLIT; + parts { + part { + name: "background"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + image.normal: "background.png"; + } + } + part { + name: PART_SWALLOW_BACKGROUND; + type: SWALLOW; + description { + state: "default" 0.0; + } + } + + part { + name: PART_SWALLOW_CALL_INFO; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 ONE_HOLD_B; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: PART_SWALLOW_BTN_REGION; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.relative: 0.0 SIX_BUTTON_LAYOUT_T; + rel2.relative: 1.0 SIX_BUTTON_LAYOUT_B; + } + } + + part { + name: PART_SWALLOW_TEXTBLOCK_AREA; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 0; + align: 0.5 0.0; + rel1 { + relative: 0.0 0.5; + to_y: PART_SWALLOW_CALL_INFO; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { + name: PART_SWALLOW_KEYPAD; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 0; + rel1.relative: 0.0 1.0; + rel2.relative: 1.0 2.0; + } + description { + state: "show" 0.0; + visible: 1; + rel1.relative: 0.0 0.0; + rel2 { + relative: 1.0 0.0; + to_y: PART_SWALLOW_ACTIONS_PANEL; + } + } + } + + part { + name: PART_SWALLOW_ACTIONS_PANEL; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + to_y: PART_SWALLOW_BTN_REGION; + } + rel2.relative: 1.0 1.0; + } + } + } + programs { + program { + name: "show_keypad"; + signal: "SHOW"; + source: "KEYPAD_BTN"; + action: STATE_SET "hide" 0.0; + target: PART_SWALLOW_CALL_INFO; + after: "show_entry"; + after: "show_keypad_animation"; + } + + program { name: "hide_keypad"; + signal: "HIDE"; + source: "KEYPAD_BTN"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.25; + target: PART_SWALLOW_KEYPAD; + target: PART_SWALLOW_CALL_INFO; + target: PART_SWALLOW_TEXTBLOCK_AREA; + } + + program { + name: "show_keypad_animation"; + action: STATE_SET "show" 0.0; + transition: LINEAR 0.25; + target: PART_SWALLOW_KEYPAD; + } + + program { + name: "show_entry"; + action: STATE_SET "show" 0.0; + target: PART_SWALLOW_TEXTBLOCK_AREA; + } + } +} diff --git a/res/call_edc/callui-view-quick-pannel-landscape.edc b/res/call_edc/callui-view-quick-pannel-landscape.edc new file mode 100644 index 0000000..1b90575 --- /dev/null +++ b/res/call_edc/callui-view-quick-pannel-landscape.edc @@ -0,0 +1,424 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +#define SCREEN_W 1280 +#define SCREEN_H 172 + +#define RECT_QP_W(x) ((x)/SCREEN_W) +#define RECT_QP_H(y) ((y)/SCREEN_H) + +#define BUTTON_OFFSET 40 +#define TEXT_OFFSET 30 +#define BUTTON_OFFSET_LAST_W 32 +#define BUTTON_OFFSET_LAST_H 42 +#define BUTTON_SIZE 90 +#define IMAGE_SIZE 96 +#define TEXT_SIZE 98 +#define TEXT_NAME_SIZE 55 + +#define RECT_QT_BUTTON_X0(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + ((x - 1) * BUTTON_OFFSET)))) +#define RECT_QT_BUTTON_X1(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + (x * BUTTON_OFFSET)))) + +#define CALL_QUICKPANEL_TEXT_RECT_INCO_X0 RECT_QP_W(((2 * BUTTON_OFFSET_LAST_W) + IMAGE_SIZE)) +#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y0 RECT_QP_H(TEXT_OFFSET) +#define CALL_QUICKPANEL_TEXT_RECT_INCO_X1 RECT_QT_BUTTON_X0(2) +#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)) + +#define CALL_QUICKPANEL_TEXT_RECT_DURING_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W) +#define CALL_QUICKPANEL_TEXT_RECT_DURING_X1 RECT_QT_BUTTON_X0(3) + +#define CALL_QUICKPANEL_CONTACT_IMAGE_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W) +#define CALL_QUICKPANEL_CONTACT_IMAGE_Y0 RECT_QP_H(TEXT_OFFSET) +#define CALL_QUICKPANEL_CONTACT_IMAGE_X1 RECT_QP_W(BUTTON_OFFSET_LAST_W + IMAGE_SIZE) +#define CALL_QUICKPANEL_CONTACT_IMAGE_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)) + +#define CALL_QUICKPANEL_CONTACT_NAME_X0 (0.0) +#define CALL_QUICKPANEL_CONTACT_NAME_Y0 (0.0) +#define CALL_QUICKPANEL_CONTACT_NAME_X1 (1.0) +#define CALL_QUICKPANEL_CONTACT_NAME_Y1 (TEXT_NAME_SIZE/TEXT_SIZE) + +#define CALL_QUICKPANEL_TIMER_X0 (0.0) +#define CALL_QUICKPANEL_TIMER_Y0 (TEXT_NAME_SIZE/TEXT_SIZE) +#define CALL_QUICKPANEL_TIMER_X1 (1.0) +#define CALL_QUICKPANEL_TIMER_Y1 (1.0) + +styles { + style { + name: "style_caller_name1"; + base: "font=Tizen:style=Regular font_size=40 color=#FFFFFF color_class="ATO005QP" align=left ellipsis=1.0 text_class=ATO005QP"; + } + style { + name: "style_call_time1"; + base: "font=Tizen:style=Regular font_size=30 color=#FFFFFF color_class="ATO006QP" align=left ellipsis=1.0 text_class=ATO006QP"; + } +} + +#define SWALLOW_BUTTON(part_name, x0, x1, inco, duri, out, resume) \ + part { name: part_name; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + fixed: 1 1; \ + rel1 { relative: RECT_QT_BUTTON_X0(x0) RECT_QP_H(BUTTON_OFFSET); to: "background";} \ + rel2 { relative: RECT_QT_BUTTON_X1(x1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} \ + } \ + description { \ + state: "incoming" 0.0; \ + inherit: "default" 0.0; \ + visible: inco; \ + } \ + description { \ + state: "during" 0.0; \ + inherit: "default" 0.0; \ + visible: duri; \ + } \ + description { \ + state: "outgoing" 0.0; \ + inherit: "default" 0.0; \ + visible: out; \ + } \ + description { \ + state: "resume" 0.0; \ + inherit: "default" 0.0; \ + visible: resume; \ + } \ + } \ + +group { + name: "quickpanel_ls"; + + parts { + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + fixed: 1 1; + color: COLOR_BG_ALPHA; + } + } + + part { name: "txt_area"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";} + rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";} + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";} + rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";} + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";} + rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";} + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + } + } + + part { name: "swallow.speaker_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: RECT_QT_BUTTON_X0(2) RECT_QP_H(BUTTON_OFFSET); to: "background";} + rel2 { relative: RECT_QT_BUTTON_X1(1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + rel1 { relative: RECT_QT_BUTTON_X0(3) RECT_QP_H(BUTTON_OFFSET); to: "background";} + rel2 { relative: RECT_QT_BUTTON_X1(2) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} + visible: 1; + } + } + + part { name: "txt_call_name"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_CONTACT_NAME_X0 CALL_QUICKPANEL_CONTACT_NAME_Y0; to: "txt_area";} + rel2 { relative: CALL_QUICKPANEL_CONTACT_NAME_X1 CALL_QUICKPANEL_CONTACT_NAME_Y1; to: "txt_area";} + align: 0.0 0.5; + text { + ellipsis: 0.0; + fit: 0 1; + align: 0.0 0.5; + style: "style_caller_name1"; + text_class: ATO005QP; + } + color_class: "ATO005QP"; + } + } + + part { name: "txt_timer"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_TIMER_X0 CALL_QUICKPANEL_TIMER_Y0; to: "txt_area";} + rel2 { relative: CALL_QUICKPANEL_TIMER_X1 CALL_QUICKPANEL_TIMER_Y1; to: "txt_area";} + fixed: 1 1; + text { + align: 0.0 0.5; + ellipsis: 1.0; + fit: 0 1; + style: "style_call_time1"; + } + color_class: "ATO006QP"; + } + } + + part { name: "caller_id"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;} + rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;} + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_mask"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;} + rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;} + image { + normal: IMG_SRC_DIR/"call_photo_id_mask.png"; + } + aspect_preference: SOURCE; + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_img"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;} + rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;} + image { + normal: IMG_SRC_DIR/"call_photo_id.png"; + } + aspect_preference: SOURCE; + color_class: "AO001"; + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + SWALLOW_BUTTON("swallow.mute_button", 3, 2, 0, 1, 0, 0); + SWALLOW_BUTTON("swallow.resume_button", 2, 1, 0, 0, 0, 1); + SWALLOW_BUTTON("swallow.call_button", 2, 1, 1, 0, 0, 0); + SWALLOW_BUTTON("swallow.end_button", 1, 0, 1, 1, 1, 0); + } + programs{ + program { + name: "resume_call"; + signal: "resume_call"; + source: "quickpanel_ls"; + action: STATE_SET "resume" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "caller_id_img"; + target: "caller_id_mask"; + target: "caller_id"; + target: "txt_area"; + } + program { + name: "outgoing_call"; + signal: "outgoing_call"; + source: "quickpanel_ls"; + action: STATE_SET "outgoing" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "txt_area"; + } + program { + name: "incoming_call"; + signal: "incoming_call"; + source: "quickpanel_ls"; + action: STATE_SET "incoming" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "txt_area"; + } + program { + name: "during_call"; + signal: "during_call"; + source: "quickpanel_ls"; + action: STATE_SET "during" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "caller_id_img"; + target: "caller_id_mask"; + target: "caller_id"; + target: "txt_area"; + } + program { + name: "show_image"; + signal: "show_image"; + source: "quickpanel_ls"; + action: STATE_SET "show" 0.0; + target: "caller_id_mask"; + target: "caller_id_img"; + } + program { + name: "hide_image"; + signal: "hide_image"; + source: "quickpanel_ls"; + action: STATE_SET "hide" 0.0; + target: "caller_id_mask"; + target: "caller_id_img"; + } + } +} diff --git a/res/call_edc/callui-view-quick-pannel.edc b/res/call_edc/callui-view-quick-pannel.edc new file mode 100644 index 0000000..cf85f1b --- /dev/null +++ b/res/call_edc/callui-view-quick-pannel.edc @@ -0,0 +1,418 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +#define SCREEN_W 720 +#define SCREEN_H 172 + +#define RECT_QP_W(x) ((x)/SCREEN_W) +#define RECT_QP_H(y) ((y)/SCREEN_H) + +#define BUTTON_OFFSET 40 +#define TEXT_OFFSET 30 +#define BUTTON_OFFSET_LAST_W 32 +#define BUTTON_OFFSET_LAST_H 42 +#define BUTTON_SIZE 90 +#define IMAGE_SIZE 96 +#define TEXT_SIZE 98 +#define TEXT_NAME_SIZE 55 + +#define RECT_QT_BUTTON_X0(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + ((x - 1) * BUTTON_OFFSET)))) +#define RECT_QT_BUTTON_X1(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + (x * BUTTON_OFFSET)))) + +#define CALL_QUICKPANEL_TEXT_RECT_INCO_X0 RECT_QP_W(((2 * BUTTON_OFFSET_LAST_W) + IMAGE_SIZE)) +#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y0 RECT_QP_H(TEXT_OFFSET) +#define CALL_QUICKPANEL_TEXT_RECT_INCO_X1 RECT_QT_BUTTON_X0(2) +#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)) + +#define CALL_QUICKPANEL_TEXT_RECT_DURING_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W) +#define CALL_QUICKPANEL_TEXT_RECT_DURING_X1 RECT_QT_BUTTON_X0(3) + +#define CALL_QUICKPANEL_CONTACT_IMAGE_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W) +#define CALL_QUICKPANEL_CONTACT_IMAGE_Y0 RECT_QP_H(TEXT_OFFSET) +#define CALL_QUICKPANEL_CONTACT_IMAGE_X1 RECT_QP_W(BUTTON_OFFSET_LAST_W + IMAGE_SIZE) +#define CALL_QUICKPANEL_CONTACT_IMAGE_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)) + +#define CALL_QUICKPANEL_CONTACT_NAME_X0 (0.0) +#define CALL_QUICKPANEL_CONTACT_NAME_Y0 (0.0) +#define CALL_QUICKPANEL_CONTACT_NAME_X1 (1.0) +#define CALL_QUICKPANEL_CONTACT_NAME_Y1 (TEXT_NAME_SIZE/TEXT_SIZE) + +#define CALL_QUICKPANEL_TIMER_X0 (0.0) +#define CALL_QUICKPANEL_TIMER_Y0 (TEXT_NAME_SIZE/TEXT_SIZE) +#define CALL_QUICKPANEL_TIMER_X1 (1.0) +#define CALL_QUICKPANEL_TIMER_Y1 (1.0) + +styles { + style { + name: "style_caller_name"; + base: "font=Tizen:style=Regular font_size=40 color=#FFFFFF color_class="ATO005QP" align=left ellipsis=1.0 text_class=ATO005QP"; + } + style { + name: "style_call_time"; + base: "font=Tizen:style=Regular font_size=30 color=#FFFFFF color_class="ATO006QP" align=left ellipsis=1.0 text_class=ATO006QP"; + } +} + +#define SWALLOW_BUTTON(part_name, x0, x1, inco, duri, out, resume) \ + part { name: part_name; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: RECT_QT_BUTTON_X0(x0) RECT_QP_H(BUTTON_OFFSET); to: "background";} \ + rel2 { relative: RECT_QT_BUTTON_X1(x1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} \ + } \ + description { \ + state: "incoming" 0.0; \ + inherit: "default" 0.0; \ + visible: inco; \ + } \ + description { \ + state: "during" 0.0; \ + inherit: "default" 0.0; \ + visible: duri; \ + } \ + description { \ + state: "outgoing" 0.0; \ + inherit: "default" 0.0; \ + visible: out; \ + } \ + description { \ + state: "resume" 0.0; \ + inherit: "default" 0.0; \ + visible: resume; \ + } \ + } \ + +group { + name: "quickpanel"; + + parts { + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + + part { name: "txt_area"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";} + rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";} + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";} + rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";} + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";} + rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";} + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + } + } + + part { name: "swallow.speaker_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: RECT_QT_BUTTON_X0(2) RECT_QP_H(BUTTON_OFFSET); to: "background";} + rel2 { relative: RECT_QT_BUTTON_X1(1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + rel1 { relative: RECT_QT_BUTTON_X0(3) RECT_QP_H(BUTTON_OFFSET); to: "background";} + rel2 { relative: RECT_QT_BUTTON_X1(2) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} + visible: 1; + } + } + + part { name: "txt_call_name"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_CONTACT_NAME_X0 CALL_QUICKPANEL_CONTACT_NAME_Y0; to: "txt_area";} + rel2 { relative: CALL_QUICKPANEL_CONTACT_NAME_X1 CALL_QUICKPANEL_CONTACT_NAME_Y1; to: "txt_area";} + align: 0.0 0.5; + text { + ellipsis: 0.0; + fit: 0 1; + align: 0.0 0.5; + style: "style_caller_name"; + text_class: ATO005QP; + } + color_class: "ATO005QP"; + } + } + + part { name: "txt_timer"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_TIMER_X0 CALL_QUICKPANEL_TIMER_Y0; to: "txt_area";} + rel2 { relative: CALL_QUICKPANEL_TIMER_X1 CALL_QUICKPANEL_TIMER_Y1; to: "txt_area";} + fixed: 1 1; + text { + align: 0.0 0.5; + ellipsis: 1.0; + fit: 0 1; + style: "style_call_time"; + } + color_class: "ATO006QP"; + } + } + + part { name: "caller_id"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;} + rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;} + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_mask"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;} + rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;} + image { + normal: IMG_SRC_DIR/"call_photo_id_mask.png"; + } + aspect_preference: SOURCE; + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_img"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;} + rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;} + image { + normal: IMG_SRC_DIR/"call_photo_id.png"; + } + aspect_preference: SOURCE; + color_class: "AO001"; + } + description { + state: "incoming" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "during" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "outgoing" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "resume" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + SWALLOW_BUTTON("swallow.mute_button", 3, 2, 0, 1, 0, 0); + SWALLOW_BUTTON("swallow.resume_button", 2, 1, 0, 0, 0, 1); + SWALLOW_BUTTON("swallow.call_button", 2, 1, 1, 0, 0, 0); + SWALLOW_BUTTON("swallow.end_button", 1, 0, 1, 1, 1, 0); + } + programs{ + program { + name: "resume_call"; + signal: "resume_call"; + source: "quickpanel"; + action: STATE_SET "resume" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "caller_id_img"; + target: "caller_id_mask"; + target: "caller_id"; + target: "txt_area"; + } + program { + name: "outgoing_call"; + signal: "outgoing_call"; + source: "quickpanel"; + action: STATE_SET "outgoing" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "txt_area"; + } + program { + name: "incoming_call"; + signal: "incoming_call"; + source: "quickpanel"; + action: STATE_SET "incoming" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "txt_area"; + } + program { + name: "during_call"; + signal: "during_call"; + source: "quickpanel"; + action: STATE_SET "during" 0.0; + target: "swallow.mute_button"; + target: "swallow.speaker_button"; + target: "swallow.call_button"; + target: "swallow.resume_button"; + target: "caller_id_img"; + target: "caller_id_mask"; + target: "caller_id"; + target: "txt_area"; + } + program { + name: "show_image"; + signal: "show_image"; + source: "quickpanel"; + action: STATE_SET "show" 0.0; + target: "caller_id_mask"; + target: "caller_id_img"; + } + program { + name: "hide_image"; + signal: "hide_image"; + source: "quickpanel"; + action: STATE_SET "hide" 0.0; + target: "caller_id_mask"; + target: "caller_id_img"; + } + } +} diff --git a/res/call_edc/callui_view_end_call.edc b/res/call_edc/callui_view_end_call.edc new file mode 100644 index 0000000..37f8553 --- /dev/null +++ b/res/call_edc/callui_view_end_call.edc @@ -0,0 +1,541 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +styles { + style { + name: "call_timer_style1"; + base: "font=Tizen:style=Regular align=left font_size=40 color=#FFFFFF ellipsis=1.0"; + } + style { + name: "call_name"; + base: "font=Tizen:style=Regular align=left font_size=56 color=#FFFFFF ellipsis=1.0"; + } + style { + name: "call_number"; + base: "font=Tizen:style=Regular align=left font_size=34 color=#FFFFFF ellipsis=1.0"; + } + style { + name: "call_timer_style2"; + base: "font=Tizen:style=Regular align=right font_size=40 color=#FFFFFF ellipsis=1.0"; + } + style { + name: "button_style"; + base: "font=Tizen:style=Regular align=center font_size=34 color=#808080 ellipsis=1.0"; + } + style { + name: "button_style_pressed"; + base: "font=Tizen:style=Regular align=center font_size=34 color=#3DB9CC ellipsis=1.0"; + } +} + +#define SPACE_NOTIFICATION 50 +#define SPACE_NOTI_MAIN_TITLE 30 +#define MAIN_TITLE 54 +#define SPACE_MAIN_TITLE_MAIN_IMAGE 30 +#define MAIN_IMAGE 168 +#define SPACE_MAIN_IMAGE 44 +#define HIGHT_BUTTON 190 +#define MAIN_BG_HIGHT (SPACE_NOTIFICATION+SPACE_NOTI_MAIN_TITLE + MAIN_TITLE + SPACE_MAIN_TITLE_MAIN_IMAGE + MAIN_IMAGE + SPACE_MAIN_IMAGE + HIGHT_BUTTON) +#define MAIN_WIDTH 720 +#define MAIN_WIDTH_TWO 720/2 +#define MAIN_HIGHT 1280 +#define WIDTH_MAIN_TITLE 32 +#define SPACER_MAIN_TITLE_CALL_NAME 50 +#define SPACER_MAIN_INFO (SPACE_NOTI_MAIN_TITLE + MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME) +#define SIZE_TEXT_INFO 78 +#define SPACE_TEXT_INFO_BUTTON 6 +#define WIDTH_CREATE_BUTTON 359 +#define HIGHT_CREATE_BUTTON 46 +#define BUTTON_ICON_SIZE 80 +#define BUTTON_SIZE 120 +#define BUTTON_OFFSET 20 + +#define MAIN_TITLE_X0 ((WIDTH_MAIN_TITLE)/MAIN_WIDTH) +#define MAIN_TITLE_Y0 ((SPACE_NOTIFICATION + SPACE_NOTI_MAIN_TITLE)/MAIN_BG_HIGHT) +#define MAIN_TITLE_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE)/MAIN_BG_HIGHT) + +#define CONTACT_IMAGE_X0 (WIDTH_MAIN_TITLE/MAIN_WIDTH) +#define CONTACT_IMAGE_Y0 ((SPACE_NOTIFICATION + MAIN_TITLE + 2*SPACE_NOTI_MAIN_TITLE )/MAIN_BG_HIGHT) +#define CONTACT_IMAGE_X1 ((WIDTH_MAIN_TITLE+ MAIN_IMAGE)/MAIN_WIDTH) +#define CONTACT_IMAGE_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + 2*SPACE_NOTI_MAIN_TITLE + MAIN_IMAGE)/MAIN_BG_HIGHT) + +#define RECT_BUTTON_X0 (0.0) +#define RECT_BUTTON_Y0 ((MAIN_BG_HIGHT - HIGHT_BUTTON)/MAIN_BG_HIGHT) + +#define CONTACT_NAME_X0 (CONTACT_IMAGE_X1 + (WIDTH_MAIN_TITLE/MAIN_WIDTH)) +#define CONTACT_NAME_Y0 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME)/MAIN_BG_HIGHT) +#define CONTACT_NAME_X1 ((MAIN_WIDTH - 17 - 80 - 32)/MAIN_WIDTH) +#define CONTACT_NAME_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME + 76)/MAIN_BG_HIGHT) + +#define CONTACT_NUMBER_X0 (CONTACT_IMAGE_X1 + (WIDTH_MAIN_TITLE/MAIN_WIDTH)) +#define CONTACT_NUMBER_Y0 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME + 76 + 6)/MAIN_BG_HIGHT) +#define CONTACT_NUMBER_X1 ((MAIN_WIDTH - 17 - 80 - 32)/MAIN_WIDTH) +#define CONTACT_NUMBER_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME + 76 + 6 + 46)/MAIN_BG_HIGHT) + +#define CREATE_CONTACT_X0 ((MAIN_WIDTH - 17 - 80)/MAIN_WIDTH) +#define CREATE_CONTACT_Y0 ((MAIN_BG_HIGHT - HIGHT_BUTTON - 64 - 24 - 80 )/MAIN_BG_HIGHT) +#define CREATE_CONTACT_X1 ((MAIN_WIDTH - 17)/MAIN_WIDTH) +#define CREATE_CONTACT_Y1 ((MAIN_BG_HIGHT - HIGHT_BUTTON - 64 - 24)/MAIN_BG_HIGHT) + +#define BUTTON_ICON_X0 148/360 +#define BUTTON_ICON_Y0 (36/HIGHT_BUTTON) +#define BUTTON_ICON_X1 ((148 + 64)/(MAIN_WIDTH_TWO)) +#define BUTTON_ICON_Y1 (36+64)/HIGHT_BUTTON + +#define BUTTON_TEXT_X0 114/360 +#define BUTTON_TEXT_Y0 ((36+ 64)/HIGHT_BUTTON) +#define BUTTON_TEXT_X1 ((114 + 132)/(360)) +#define BUTTON_TEXT_Y1 ((HIGHT_BUTTON-52)/HIGHT_BUTTON) + +#define TIMER_TEXT_X1 ((MAIN_WIDTH - 17)/MAIN_WIDTH) + +group { + name: "call_back"; + parts { + part { name: "rect_call_back"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + color: 0 0 0 76; + } + } + + part { name: "call_back_text"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: BUTTON_TEXT_X0 BUTTON_TEXT_Y0; to: "rect_call_back";} + rel2 { relative: BUTTON_TEXT_X1 BUTTON_TEXT_Y1; to: "rect_call_back";} + text { + fit: 1 1; + style:"button_style"; + } + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + text.style:"button_style_pressed"; + } + } + + part { name: "call_back_icon"; + type: IMAGE; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: BUTTON_ICON_X0 BUTTON_ICON_Y0; to: "rect_call_back";} + rel2 { relative: BUTTON_ICON_X1 BUTTON_ICON_Y1; to: "rect_call_back";} + image { + normal: IMG_SRC_DIR/"call_button_icon_03.png"; + } + color_class: "AO009"; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + color_class: "AO001"; + } + } + } + programs { + program { + name: "pressed"; + signal: "mouse,down,*"; + source: "*"; + action: STATE_SET "pressed" 0.0; + target: "rect_call_back"; + target: "call_back_icon"; + target: "call_back_text"; + } + program { + name: "unpressed"; + signal: "mouse,up,*"; + source: "*"; + action: STATE_SET "default" 0.0; + target: "rect_call_back"; + target: "call_back_icon"; + target: "call_back_text"; + } + } +} + +group { + name: "create_contact_button"; + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color_class: "W0113"; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + color_class: "W0113P"; + } + } + + part { name: "icon"; + type: IMAGE; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: (BUTTON_OFFSET/BUTTON_SIZE) (BUTTON_OFFSET/BUTTON_SIZE); to: "bg";} + rel2 { relative: ((BUTTON_ICON_SIZE + BUTTON_OFFSET)/BUTTON_SIZE) ((BUTTON_ICON_SIZE + BUTTON_OFFSET)/BUTTON_SIZE); to: "bg";} + image { + normal: IMG_ICN_DIR/"call_button_add.png"; + } + color: 255 255 255 255; + } + } + } + programs { + program { + name: "pressed"; + signal: "mouse,down,*"; + source: "*"; + action: STATE_SET "pressed" 0.0; + target: "bg"; + } + program { + name: "unpressed"; + signal: "mouse,up,*"; + source: "*"; + action: STATE_SET "default" 0.0; + target: "bg"; + } + } +} + +group { + name: "message_button"; + parts { + part { name: "rect_message"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + color: 0 0 0 76; + } + } + + part { name: "message_text"; + type: TEXTBLOCK; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: BUTTON_TEXT_X0 BUTTON_TEXT_Y0; to: "rect_message";} + rel2 { relative: BUTTON_TEXT_X1 BUTTON_TEXT_Y1; to: "rect_message";} + text { + fit: 1 1; + style:"button_style"; + } + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + text.style:"button_style_pressed"; + } + } + + part { name: "message_icon"; + type: IMAGE; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: BUTTON_ICON_X0 BUTTON_ICON_Y0; to: "rect_message";} + rel2 { relative: BUTTON_ICON_X1 BUTTON_ICON_Y1; to: "rect_message";} + image { + normal: IMG_SRC_DIR/"call_button_icon_04.png"; + } + color_class: "AO009"; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + color_class: "AO001"; + } + } + } + programs { + program { + name: "pressed"; + signal: "mouse,down,*"; + source: "*"; + action: STATE_SET "pressed" 0.0; + target: "rect_message"; + target: "message_icon"; + target: "message_text"; + } + program { + name: "unpressed"; + signal: "mouse,up,*"; + source: "*"; + action: STATE_SET "default" 0.0; + target: "rect_message"; + target: "message_icon"; + target: "message_text"; + } + } +} + +group { + name: "main_end_call"; + parts { + part { name: "background"; + type: IMAGE; + description { + state: "default" 0.0; + image.normal: IMG_SRC_DIR/"background_dim.png"; + } + } + + part { name: "contact_ly"; + type: RECT; + description { + fixed: 1 1; + state: "default" 0.0; + color_class: "AO001"; + rel1 { relative: 0 0; to: "background"; } + rel2 { relative: 1 (MAIN_BG_HIGHT/MAIN_HIGHT); to: "background"; } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "contact_ly";} + rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "contact_ly";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_mask"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "contact_ly";} + rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "contact_ly";} + image { + normal: IMG_SRC_DIR/"call_photo_id_mask.png"; + } + aspect_preference: SOURCE; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_img"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "contact_ly";} + rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "contact_ly";} + image { + normal: IMG_SRC_DIR/"call_photo_id.png"; + } + aspect_preference: SOURCE; + color_class: "AO001"; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "contact_name"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CONTACT_NAME_X0 CONTACT_NAME_Y0; to: "contact_ly";} + rel2 { relative: CONTACT_NAME_X1 CONTACT_NAME_Y1; to: "contact_ly";} + text { + ellipsis: 0.0; + style:"call_name"; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "contact_number"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CONTACT_NUMBER_X0 CONTACT_NUMBER_Y0; to: "contact_ly";} + rel2 { relative: CONTACT_NUMBER_X1 CONTACT_NUMBER_Y1; to: "contact_ly";} + text { + ellipsis: 1.0; + style:"call_number"; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "swallow.create_contact"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 0.5 0.5; + rel1 { relative: CREATE_CONTACT_X0 CREATE_CONTACT_Y0; to: "contact_ly";} + rel2 { relative: CREATE_CONTACT_X1 CREATE_CONTACT_Y1; to: "contact_ly";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "button_call_back"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 RECT_BUTTON_Y0; to: "contact_ly";} + rel2 { relative: 0.5 1.0; to: "contact_ly";} + } + } + + part { name: "button_message_back"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.5 RECT_BUTTON_Y0; to: "contact_ly";} + rel2 { relative: 1.0 1.0; to: "contact_ly";} + } + } + part { name: "call_txt_status"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: MAIN_TITLE_X0 MAIN_TITLE_Y0; to: "contact_ly";} + rel2 { relative: 1.0 MAIN_TITLE_Y1; to: "contact_ly";} + text.style:"call_timer_style1"; + } + } + } + programs{ + program { + name: "show_image"; + signal: "show_image"; + source: "main_end_call"; + action: STATE_SET "show" 0.0; + target: "caller_id_mask"; + target: "caller_id_img"; + } + program { + name: "hide_image"; + signal: "hide_image"; + source: "main_end_call"; + action: STATE_SET "hide" 0.0; + target: "caller_id_mask"; + target: "caller_id_img"; + } + } +} diff --git a/res/call_edc/callui_view_incoming_active.edc b/res/call_edc/callui_view_incoming_active.edc new file mode 100644 index 0000000..b7f5194 --- /dev/null +++ b/res/call_edc/callui_view_incoming_active.edc @@ -0,0 +1,620 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../callui-color-classes.h" + +styles { + style { + name: "active_call_name"; + base: "font=Tizen:style=Regular align=left font_size=40 color=#FFFFFF ellipsis=1.0"; + } + style { + name: "active_call_number"; + base: "font=Tizen:style=Regular align=left font_size=32 color=#FFFFFF ellipsis=1.0"; + } +} + +#define SPACE_NOTIFICATION 50 +#define REC_MAIN_INFO 144 +#define SPACE_ICON 23 +#define ICON_H 98 +#define SPACE_ICON_W 32 +#define REC_BUTTON_H 120 +#define BUTTON_H 78 +#define SWAP_BUTTON_Y 46 +#define MAIN_HEIGHT (SPACE_NOTIFICATION + REC_MAIN_INFO + REC_BUTTON_H + SWAP_BUTTON_Y) +#define MAIN_HEIGHT_RECT_REJECT (REC_MAIN_INFO + REC_BUTTON_H + SPACE_NOTIFICATION + SPACE_NOTIFICATION) +#define MAIN_HEIGHT_REJECT 1280 +#define MAIN_WIDTH 720 +#define SPACE_BUTTON 186 +#define SPACE_BETWEEN_BUTTONS 16 +#define SPACE_BUTTON_Y 21 +#define BUTTON_SIZE_X_LITTLE 208 +#define BUTTON_SIZE_X_BIG 320 +#define BUTTON_SIZE_Y 78 +#define NAME_SIZE 56 +#define NUMBER_SIZE 43 +#define BUTTON_RJ_MSG 20 +#define BUTTON_RJ_MSG_OFFSET 22 +#define ACTIVE_NOTIFICATION_SIZE_Y 320 + +#define CONTACT_IMAGE_X0 (SPACE_ICON_W/MAIN_WIDTH) +#define CONTACT_IMAGE_Y0 ((SPACE_NOTIFICATION + SPACE_ICON)/MAIN_HEIGHT) +#define CONTACT_IMAGE_X1 ((SPACE_ICON_W + ICON_H)/MAIN_WIDTH) +#define CONTACT_IMAGE_Y1 ((SPACE_NOTIFICATION + SPACE_ICON + ICON_H)/MAIN_HEIGHT) + +#define CONTACT_INFO_X0 (0.0) +#define CONTACT_INFO_Y0 (0.0) +#define CONTACT_INFO_X1 (1.0) +#define CONTACT_INFO_Y1 ((MAIN_HEIGHT)/MAIN_HEIGHT) +#define CONTACT_INFO_Y_REJECT ((MAIN_HEIGHT_RECT_REJECT)/MAIN_HEIGHT_REJECT) + +#define CONTACT_REJECT_MSG_X0 (0.0) +#define CONTACT_REJECT_MSG_Y0 ((MAIN_HEIGHT_RECT_REJECT)/MAIN_HEIGHT_REJECT) +#define CONTACT_REJECT_MSG_X1 (1.0) +#define CONTACT_REJECT_MSG_Y1 (1.0) + +#define CONTACT_REJECT_MSG_BUTTON_X0 ((SPACE_ICON_W)/MAIN_WIDTH) +#define CONTACT_REJECT_MSG_BUTTON_Y0 ((BUTTON_RJ_MSG)/(MAIN_HEIGHT_REJECT - MAIN_HEIGHT_RECT_REJECT)) +#define CONTACT_REJECT_MSG_BUTTON_X1 ((MAIN_WIDTH - SPACE_ICON_W)/MAIN_WIDTH) +#define CONTACT_REJECT_MSG_BUTTON_Y1 ((BUTTON_RJ_MSG + BUTTON_H)/(MAIN_HEIGHT_REJECT - MAIN_HEIGHT_RECT_REJECT)) + +#define CONTACT_REJECT_MSG_GENLIST_Y1 ((BUTTON_RJ_MSG + BUTTON_H + BUTTON_RJ_MSG_OFFSET)/(MAIN_HEIGHT_REJECT - MAIN_HEIGHT_RECT_REJECT)) + +#define CONTACT_CALL_BTN_X0 ((SPACE_ICON_W)/MAIN_WIDTH) +#define CONTACT_BTN_Y0 (SPACE_BUTTON/ACTIVE_NOTIFICATION_SIZE_Y) +#define CONTACT_CALL_BTN_X1 ((SPACE_ICON_W + BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH) +#define CONTACT_BTN_Y1 ((SPACE_BUTTON + BUTTON_SIZE_Y)/ACTIVE_NOTIFICATION_SIZE_Y) + +#define CONTACT_CALL_BTN_BIG_X0 (SPACE_ICON_W/MAIN_WIDTH) +#define CONTACT_CALL_BTN_BIG_Y0 CONTACT_BTN_Y0 +#define CONTACT_CALL_BTN_BIG_X1 ((SPACE_ICON_W + BUTTON_SIZE_X_BIG)/MAIN_WIDTH) +#define CONTACT_CALL_BTN_BIG_Y1 CONTACT_BTN_Y1 + +#define CONTACT_RJ_MSG_BTN_X0 ((SPACE_ICON_W + SPACE_BETWEEN_BUTTONS + BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH) +#define CONTACT_RJ_MSG_BTN_Y0 CONTACT_BTN_Y0 +#define CONTACT_RJ_MSG_BTN_X1 ((SPACE_ICON_W + SPACE_BETWEEN_BUTTONS + BUTTON_SIZE_X_LITTLE + BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH) +#define CONTACT_RJ_MSG_BTN_Y1 CONTACT_BTN_Y1 + +#define CONTACT_END_BTN_X0 ((MAIN_WIDTH - SPACE_ICON_W - BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH) +#define CONTACT_END_BTN_Y0 CONTACT_BTN_Y0 +#define CONTACT_END_BTN_X1 ((MAIN_WIDTH - SPACE_ICON_W)/MAIN_WIDTH) +#define CONTACT_END_BTN_Y1 CONTACT_BTN_Y1 + +#define CONTACT_END_BTN_BIG_X0 ((MAIN_WIDTH - SPACE_ICON_W - BUTTON_SIZE_X_BIG)/MAIN_WIDTH) +#define CONTACT_END_BTN_BIG_Y0 CONTACT_BTN_Y0 +#define CONTACT_END_BTN_BIG_X1 ((MAIN_WIDTH - SPACE_ICON_W)/MAIN_WIDTH) +#define CONTACT_END_BTN_BIG_Y1 CONTACT_BTN_Y1 + +#define SWAP_X0 (((MAIN_WIDTH/2) - SPACE_ICON)/MAIN_WIDTH) +#define SWAP_Y0 ((MAIN_HEIGHT - SWAP_BUTTON_Y)/MAIN_HEIGHT) +#define SWAP_X1 (((MAIN_WIDTH/2) + SPACE_ICON)/MAIN_WIDTH) +#define SWAP_Y1 1.0 + +#define CONTACT_NAME_X0 ((SPACE_ICON_W + ICON_H + SPACE_BETWEEN_BUTTONS)/MAIN_WIDTH) +#define CONTACT_NAME_Y0 ((SPACE_NOTIFICATION + SPACE_ICON)/MAIN_HEIGHT) +#define CONTACT_NAME_X1 (1.0) +#define CONTACT_NAME_Y1 ((SPACE_NOTIFICATION + SPACE_ICON + NAME_SIZE)/MAIN_HEIGHT) + +#define CONTACT_NUMBER_X0 ((SPACE_ICON_W + ICON_H + SPACE_BETWEEN_BUTTONS)/MAIN_WIDTH) +#define CONTACT_NUMBER_Y0 ((SPACE_NOTIFICATION + SPACE_ICON + NAME_SIZE)/MAIN_HEIGHT) +#define CONTACT_NUMBER_X1 (1.0) +#define CONTACT_NUMBER_Y1 ((SPACE_NOTIFICATION + SPACE_ICON + NAME_SIZE + NUMBER_SIZE)/MAIN_HEIGHT) + +group { + name: "main_button_ly"; + parts { + part { name: "image_bg"; + type: IMAGE; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + image { + normal: IMG_SRC_DIR/"button_edit_bg_new.png"; + } + color: 0 0 0 54; + } + description { + state: "clicked" 0.0; + inherit: "default" 0.0; + color: 0 0 0 77; + } + } + + part { name: "swallow.icon"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.0 0.0; to: "image_bg";} + rel2 { relative: 1.0 1.0; to: "image_bg";} + } + } + } + programs{ + program { name: "button_unpress"; + signal: "mouse,up,*"; + source: "*"; + action: STATE_SET "default" 0.0; + target: "image_bg"; + } + program { name: "button_press"; + signal: "mouse,down,*"; + source: "*"; + action: STATE_SET "clicked" 0.0; + target: "image_bg"; + } + } +} + +group { + name: "swipe_call_button_ly"; + parts { + part { name: "swipe_call_button"; + type: IMAGE; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + image { + normal: IMG_SRC_DIR"/handler_btn_02.png"; + } + } + } + } +} + +group { + name: "reject_msg_ly"; + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + color: 255 255 255 255; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 CONTACT_REJECT_MSG_GENLIST_Y1;} + } + } + + part { name: "swallow.button"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { relative: CONTACT_REJECT_MSG_BUTTON_X0 CONTACT_REJECT_MSG_BUTTON_Y0;} + rel2 { relative: CONTACT_REJECT_MSG_BUTTON_X1 CONTACT_REJECT_MSG_BUTTON_Y1;} + } + } + + part { name: "swallow.content"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + align: 0.0 0.0; + state: "default" 0.0; + rel1 { relative: 0.0 CONTACT_REJECT_MSG_GENLIST_Y1;} + rel2 { relative: 1.0 1.0;} + } + } + } +} + +group { + name: "main_incoming_active_call"; + parts { + part { name: "screen_bg"; + type: RECT; + description { + fixed: 1 1; + visible: 1; + state: "default" 0.0; + color: 0 0 0 77; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 CONTACT_INFO_Y1;} + } + } + + part { name: "bg"; + type: RECT; + description { + fixed: 1 1; + visible: 1; + state: "default" 0.0; + color: 61 185 204 255; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 CONTACT_INFO_Y1;} + } + description { + state: "small" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 CONTACT_INFO_Y1;} + } + description { + state: "big" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 CONTACT_INFO_Y_REJECT;} + } + } + + part { name: "dim_bg"; + type: RECT; + description { + fixed: 1 1; + visible: 1; + state: "default" 0.0; + color: 0 0 0 25; + rel1 { relative: 0.0 0.0; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg";} + } + } + + part { name: "caller_id"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + aspect: 1 1; + aspect_preference: HORIZONTAL; + state: "default" 0.0; + color: 255 255 0 255; + rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "bg";} + rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "bg";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "swallow.reject_msg"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + visible: 0; + rel1 { relative: CONTACT_REJECT_MSG_X0 CONTACT_REJECT_MSG_Y0;} + rel2 { relative: CONTACT_REJECT_MSG_X1 CONTACT_REJECT_MSG_Y1;} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "swallow.swipe_button"; + type: SWALLOW; + scale: 1; + description { + visible: 1; + fixed: 1 1; + rel1 { relative: SWAP_X0 SWAP_Y0; to: "bg";} + rel2 { relative: SWAP_X1 SWAP_Y1; to: "bg";} + aspect_preference: SOURCE; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_mask"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + aspect: 1 1; + aspect_preference: HORIZONTAL; + rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "bg";} + rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "bg";} + image { + normal: IMG_SRC_DIR/"call_photo_id_mask.png"; + } + aspect_preference: SOURCE; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "caller_id_default"; + type: IMAGE; + scale: 1; + description { + visible: 0; + fixed: 1 1; + aspect: 1 1; + aspect_preference: HORIZONTAL; + rel1 { relative: 0.0 0.0; to: "caller_id_mask";} + rel2 { relative: 1.0 1.0; to: "caller_id_mask";} + image { + normal: IMG_SRC_DIR"/call_photo_id.png"; + } + aspect_preference: SOURCE; + color_class: "AO001"; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "text.contact_name"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CONTACT_NAME_X0 CONTACT_NAME_Y0; to: "bg";} + rel2 { relative: CONTACT_NAME_X1 CONTACT_NAME_Y1; to: "bg";} + align: 0.0 0.5; + text { + ellipsis: 0.0; + fit: 0 1; + style:"active_call_name"; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "text.contact_number"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CONTACT_NUMBER_X0 CONTACT_NUMBER_Y0; to: "bg";} + rel2 { relative: CONTACT_NUMBER_X1 CONTACT_NUMBER_Y1; to: "bg";} + align: 0.0 0.5; + text { + ellipsis: 1.0; + style:"active_call_number"; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "swallow.call_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CONTACT_CALL_BTN_X0 CONTACT_BTN_Y0; to: "bg";} + rel2 { relative: CONTACT_CALL_BTN_X1 CONTACT_BTN_Y1; to: "bg";} + color: 255 0 0 255; + } + description { + state: "big" 0.0; + inherit: "default" 0.0; + rel1 { relative: CONTACT_CALL_BTN_BIG_X0 CONTACT_CALL_BTN_BIG_Y0; to: "bg";} + rel2 { relative: CONTACT_CALL_BTN_BIG_X1 CONTACT_CALL_BTN_BIG_Y1; to: "bg";} + } + description { + state: "small" 0.0; + inherit: "default" 0.0; + rel1 { relative: CONTACT_CALL_BTN_X0 CONTACT_BTN_Y0; to: "bg";} + rel2 { relative: CONTACT_CALL_BTN_X1 CONTACT_BTN_Y1; to: "bg";} + } + } + + part { name: "swallow.rj_msg_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + visible: 0; + rel1 { relative: CONTACT_RJ_MSG_BTN_X0 CONTACT_RJ_MSG_BTN_Y0; to: "bg";} + rel2 { relative: CONTACT_RJ_MSG_BTN_X1 CONTACT_RJ_MSG_BTN_Y1; to: "bg";} + color: 255 0 0 255; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "swallow.end_call_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CONTACT_END_BTN_X0 CONTACT_BTN_Y0; to: "bg";} + rel2 { relative: CONTACT_END_BTN_X1 CONTACT_BTN_Y1; to: "bg";} + color: 255 0 0 255; + } + description { + state: "big" 0.0; + inherit: "default" 0.0; + rel1 { relative: CONTACT_END_BTN_X0 CONTACT_BTN_Y0; to: "bg";} + rel2 { relative: CONTACT_END_BTN_X1 CONTACT_BTN_Y1; to: "bg";} + } + description { + state: "small" 0.0; + inherit: "default" 0.0; + rel1 { relative: CONTACT_END_BTN_X0 CONTACT_BTN_Y0; to: "bg";} + rel2 { relative: CONTACT_END_BTN_X1 CONTACT_BTN_Y1; to: "bg";} + } + } + } + + programs{ + program { + name: "show_image"; + signal: "show_image"; + source: "main_incoming_active_call"; + action: STATE_SET "show" 0.0; + target: "caller_id_mask"; + target: "caller_id_default"; + } + program { + name: "hide_image"; + signal: "hide_image"; + source: "main_incoming_active_call"; + action: STATE_SET "hide" 0.0; + target: "caller_id_mask"; + target: "caller_id_default"; + } + program { + name: "small_main_ly"; + signal: "small_main_ly"; + source: "main_incoming_active_call"; + action: STATE_SET "small" 0.0; + target: "bg"; + after: "hide_reject_msg"; + after: "show_swipe_call"; + } + program { + name: "show_reject_msg"; + signal: "show_reject_msg"; + source: "main_incoming_active_call"; + action: STATE_SET "show" 0.0; + target: "swallow.reject_msg"; + } + program { + name: "hide_reject_msg"; + signal: "hide_reject_msg"; + source: "main_incoming_active_call"; + action: STATE_SET "hide" 0.0; + target: "swallow.reject_msg"; + } + program { + name: "big_main_ly"; + signal: "big_main_ly"; + source: "main_incoming_active_call"; + action: STATE_SET "big" 0.0; + target: "bg"; + after: "show_reject_msg"; + after: "hide_swipe_call"; + } + program { + name: "show_swipe_call"; + signal: "show_swipe_call"; + source: "main_incoming_active_call"; + action: STATE_SET "show" 0.0; + target: "swallow.swipe_button"; + } + program { + name: "hide_swipe_call"; + signal: "hide_swipe_call"; + source: "main_incoming_active_call"; + action: STATE_SET "hide" 0.0; + target: "swallow.swipe_button"; + after: "show_reject_msg"; + } + program { + name: "big_buttons"; + signal: "big_buttons"; + source: "main_incoming_active_call"; + action: STATE_SET "big" 0.0; + target: "swallow.call_button"; + target: "swallow.end_call_button"; + after: "hide_swallow.rj_msg_button"; + } + program { + name: "hide_swallow.rj_msg_button"; + signal: "hide_swallow.rj_msg_button"; + source: "main_incoming_active_call"; + action: STATE_SET "hide" 0.0; + target: "swallow.rj_msg_button"; + } + program { + name: "small_buttons"; + signal: "small_buttons"; + source: "main_incoming_active_call"; + action: STATE_SET "small" 0.0; + target: "swallow.call_button"; + target: "swallow.end_call_button"; + after: "show_swallow.rj_msg_button"; + } + program { + name: "show_swallow.rj_msg_button"; + signal: "show_swallow.rj_msg_button"; + source: "main_incoming_active_call"; + action: STATE_SET "show" 0.0; + target: "swallow.rj_msg_button"; + } + } +} diff --git a/res/call_edc/edc_image_macro.edc b/res/call_edc/edc_image_macro.edc new file mode 100755 index 0000000..6a162a0 --- /dev/null +++ b/res/call_edc/edc_image_macro.edc @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#define RESOURCE_IMAGE( GROUP_NAME, FILE_NAME ) \ + group { \ + name: GROUP_NAME; \ + images.image: FILE_NAME COMP; \ + parts { \ + part { name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: FILE_NAME; \ + aspect: 1 1; \ + aspect_preference: BOTH; \ + } \ + } \ + } \ + } + +#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \ + group { \ + name: FILE_NAME; \ + images.image: FILE_NAME LOSSY 85; \ + parts { \ + part { name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: FILE_NAME; \ + aspect: 1 1; \ + aspect_preference: BOTH; \ + } \ + } \ + } \ + } + +#define RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE( GROUP_NAME, IMAGE_PATH, BG_IMAGE_PATH, COLOR_CODE, BG_COLOR_CODE ) \ + group { \ + name: GROUP_NAME; \ + images.image: BG_IMAGE_PATH COMP; \ + images.image: IMAGE_PATH COMP; \ + parts { \ + part { \ + name: "image_bg"; \ + description { \ + state: "default" 0.0; \ + image.normal: BG_IMAGE_PATH; \ + color_class: BG_COLOR_CODE; \ + aspect: 1 1; \ + aspect_preference: SOURCE; \ + } \ + } \ + } \ + parts { \ + part { \ + name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: IMAGE_PATH; \ + color_class: COLOR_CODE; \ + aspect: 1 1; \ + aspect_preference: SOURCE; \ + } \ + } \ + } \ + } + +#define RESOURCE_IMAGE_WITH_MASK(GROUP_NAME, MASK_PATH, SWALLOW_PART_NAME) \ + group { \ + name: GROUP_NAME; \ + images.image: MASK_PATH COMP; \ + parts { \ + part { name: "mask"; \ + type: IMAGE; \ + precise_is_inside: 1; \ + description { \ + state: "default" 0.0; \ + image.normal: MASK_PATH; \ + aspect: 1.0 1.0; \ + aspect_preference: SOURCE; \ + } \ + } \ + part { name: SWALLOW_PART_NAME; \ + type: SWALLOW; \ + clip_to: "mask"; \ + description { \ + state: "default" 0.0; \ + } \ + } \ + } \ + } + +#define REL_PAD_LT(size, bg_size) ((bg_size-size)/2/bg_size) +#define REL_PAD_RB(size, bg_size) (1 - REL_PAD_LT(size, bg_size)) + +#define RESOURCE_IMAGE_WITH_BG_AND_TOUCH( GROUP_NAME, IMAGE_PATH, BG_IMAGE_PATH, IMAGE_SIZE, BG_IMAGE_SIZE, COLOR_CODE, BG_COLOR_CODE, BG_COLOR_CODE_P ) \ + group { \ + name: GROUP_NAME; \ + images.image: BG_IMAGE_PATH COMP; \ + images.image: IMAGE_PATH COMP; \ + parts { \ + part { \ + name: "image_bg"; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + image.normal: BG_IMAGE_PATH; \ + color_class: BG_COLOR_CODE; \ + aspect: 1 1; \ + aspect_preference: SOURCE; \ + } \ + description { \ + state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + color_class: BG_COLOR_CODE_P; \ + } \ + } \ + part { \ + name: "image"; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + image.normal: IMAGE_PATH; \ + color_class: COLOR_CODE; \ + aspect: 1 1; \ + aspect_preference: SOURCE; \ + rel1 { relative: REL_PAD_LT(IMAGE_SIZE, BG_IMAGE_SIZE) REL_PAD_LT(IMAGE_SIZE, BG_IMAGE_SIZE); to: "image_bg";} \ + rel2 { relative: REL_PAD_RB(IMAGE_SIZE, BG_IMAGE_SIZE) REL_PAD_RB(IMAGE_SIZE, BG_IMAGE_SIZE); to: "image_bg";} \ + } \ + } \ + part { \ + name: "touch"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + } \ + programs { \ + program { \ + name: "mouse.down."GROUP_NAME; \ + source: "touch"; \ + signal: "mouse,down,*"; \ + action: STATE_SET "pressed" 0.0; \ + target: "image_bg"; \ + } \ + program { \ + name: "mouse.up."GROUP_NAME; \ + source: "touch"; \ + signal: "mouse,up,*"; \ + action: STATE_SET "default" 0.0; \ + target: "image_bg"; \ + } \ + } \ +} diff --git a/res/callui-color-classes.h b/res/callui-color-classes.h new file mode 100644 index 0000000..1b717c0 --- /dev/null +++ b/res/callui-color-classes.h @@ -0,0 +1,477 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __CALLUI_COLOR_CLASSES_H__ +#define __CALLUI_COLOR_CLASSES_H__ + +//Suffix "_C" - for conflict color's names + +color_classes { + color_class { + name: "AO001"; + color: 61 185 204 255; + } + color_class { + name: "W0113"; + color: 61 185 204 255; + } + color_class { + name: "W0113P"; + color: 61 185 169 255; + } + color_class { + name: "AO002"; + color: 255 255 255 255; + } + color_class { + name: "AO003"; + color: 0 0 0 217; + } + color_class { + name: "AO003D"; + color: 0 0 0 77; + } + color_class { + name: "AO003L2"; + color: 61 185 204 255; + } + color_class { + name: "AO004"; + color: 83 196 12 255; + } + color_class { + name: "AO004_C"; + color: 51 51 51 205; + } + color_class { + name: "AO004D"; + color: 51 51 51 64; + } + color_class { + name: "AO004P"; + color: 83 196 12 255; + } + color_class { + name: "AO005_C"; + color: 255 255 255 255; + } + color_class { + name: "AO005P"; + color: 61 185 204 77; + } + color_class { + name: "AO008"; + color: 249 249 249 255; + } + color_class { + name: "AO008P"; + color: 61 185 204 77; + } + color_class { + name: "AO009"; + color: 128 128 128 255; + } + color_class { + name: "merge_btn_bg"; + color: 0 0 0 230; + } + color_class { + name: "swap_btn_bg"; + color: 0 0 0 240; + } + color_class { + name: "pressed"; + color: 61 185 204 255; + } + color_class { + name: "AO011"; + color: 50 130 136 190; + } + color_class { + name: "AO0111"; + color: 51 125 133 200; + } + color_class { + name: "AO090"; + color: 255 255 255 128; + } + color_class { + name: "AO046"; + color: 83 196 12 59; + } + color_class { + name: "AO046L1"; + color: 83 196 12 102; + } + color_class { + name: "AO005"; + color: 250 57 22 255; + } + color_class { + name: "AO047"; + color: 250 57 22 59; + } + color_class { + name: "AO047L1"; + color: 250 57 22 102; + } + color_class { + name: "AO012"; + color: 0 0 0 102; + } + color_class { + name: "AO014L1"; + color: 255 255 255 235; + } + color_class { + name: "AO014L2"; + color: 255 255 255 245; + } + color_class { + name: "AO014L3"; + color: 255 255 255 219; + } + color_class { + name: "AO014L4"; + color: 255 255 255 230; + } + color_class { + name: "AO014P"; + color: 61 185 169 255; + } + color_class { + name: "AO014D"; + color: 0 0 0 77; + } + color_class { + name: "AO016"; + color: 49 148 163 255; + } + color_class { + name: "AO016L1"; + color: 49 148 163 77; + } + color_class { + name: "AO100"; + color: 49 148 163 255; + } + color_class { + name: "AO100L1"; + color: 49 148 163 51; + } + color_class { + name: "AO021"; + color: 0 0 0 26; + } + color_class { + name: "AO022"; + color: 0 0 0 77; + } + color_class { + name: "AO022P"; + color: 120 237 255 255; + } + color_class { + name: "AO039"; + color: 186 208 217 77; + } + color_class { + name: "AO025"; + color: 61 185 204 255; + } + color_class { + name: "AO025P"; + color: 34 104 114 255; + } + color_class { + name: "AO025D"; + color: 102 190 204 255; + } + color_class { + name: "AO026"; + color: 255 255 255 255; + } + color_class { + name: "AO026L1"; + color: 255 255 255 245; + } + color_class { + name: "AO026L2"; + color: 255 255 255 230; + } + color_class { + name: "AO026P"; + color: 61 185 204 77; + } + color_class { + name: "AO030P"; + color: 212 48 19 255; + } + color_class { + name: "AO030D"; + color: 250 57 23 59; + } + color_class { + name: "AO036"; + color: 247 251 253 255; + } + color_class { + name: "AO037"; + color: 255 0 0 255; + } + color_class { + name: "AO043"; + color: 250 57 22 255; + } + color_class { + name: "AO043P"; + color: 212 48 19 255; + } + color_class { + name: "AO043D"; + color: 250 57 22 59; + } + color_class { + name: "AO049"; + color: 49 148 163 255; + } + color_class { + name: "AO052"; + color: 61 185 204 255; + } + color_class { + name: "AO151"; + color: 255 255 255 77; + } + color_class { + name: "ATO001"; + color: 255 255 255 255; + } + color_class { + name: "ATO002"; + color: 255 255 255 255; + } + color_class { + name: "ATO005"; + color: 127 127 127 255; + } + color_class { + name: "ATO006"; + color: 49 148 163 77; + } + color_class { + name: "ATO005QP"; + color: 0 0 0 255; + } + color_class { + name: "ATO006QP"; + color: 127 127 127 255; + } + color_class { + name: "ATO007"; + color: 255 255 255 255; + } + color_class { + name: "ATO008"; + color: 49 148 163 255; + } + color_class { + name: "ATO010"; + color: 0 0 0 255; + } + color_class { + name: "ATO011"; + color: 255 255 255 255; + } + color_class { + name: "ATO012"; + color: 255 255 255 255; + } + color_class { + name: "ATO013"; + color: 255 255 255 255; + } + color_class { + name: "ATO014"; + color: 255 255 255 128; + } + color_class { + name: "ATO016"; + color: 255 255 255 255; + } + color_class { + name: "ATO017"; + color: 255 255 255 255; + } + color_class { + name: "ATO027"; + color: 255 255 255 255; + } + color_class { + name: "ATO028"; + color: 255 255 255 255; + } + color_class { + name: "ATO030"; + color: 255 255 255 89; + } + color_class { + name: "ATO031"; + color: 255 255 255 89; + } + color_class { + name: "AO017"; + color: 245 245 245 255; + } + color_class { + name: "AO017P"; + color: 245 245 245 255; + } + color_class { + name: "AO017D"; + color: 245 245 245 102; + } + color_class { + name: "AO018"; + color: 160 240 0 255; + } + color_class { + name: "AO018P"; + color: 160 240 0 255; + } + color_class { + name: "AO018D"; + color: 160 240 0 102; + } + color_class { + name: "AO019"; + color: 255 255 255 255; + } + color_class { + name: "AO019P"; + color: 255 255 255 255; + } + color_class { + name: "AO019D"; + color: 255 255 255 102; + } + color_class { + name: "A01O004E01"; + color: 255 255 255 235; + } + color_class { + name: "A01O004E02"; + color: 255 255 255 245; + } + color_class { + name: "A01O004E03"; + color: 255 255 255 219; + } + color_class { + name: "A01O004E04"; + color: 255 255 255 230; + } + color_class { + name: "A01O004E05"; + color: 255 255 255 204; + } + color_class { + name: "A01O004E06"; + color: 255 255 255 214; + } + color_class { + name: "A01O004E07"; + color: 255 255 255 189; + } + color_class { + name: "A01O004E08"; + color: 255 255 255 199; + } + color_class { + name: "A01O004P"; + color: 247 251 252 153; + } + color_class { + name: "A01O005"; + color: 49 148 163 255; + } + color_class { + name: "A01O006"; + color: 49 148 163 230; + } + color_class { + name: "AO199"; + color: 255 255 255 245; + } + color_class { + name: "ATO009D"; + color: 127 127 127 77; + } + color_class { + name: "AO010"; + color: 102 102 102 77; + } + color_class { + name: "AO010P"; + color: 0 0 0 255; + } + color_class { + name: "AO010D"; + color: 102 102 102 23; + } + color_class { + name: "AO0081"; + color: 249 249 249 255; + } + color_class { + name: "AO012P1"; + color: 89 175 58 255; + } + color_class { + name: "AO012P"; + color: 38 127 53 255; + } + color_class { + name: "AO013"; + color: 214 49 49 255; + } + color_class { + name: "AO013P"; + color: 163 37 37 255; + } + color_class { + name: "btn_ic_split_bg"; // AO013 + color: 61 185 204 255; + } + color_class { + name: "btn_ic_split_bg_pressed"; + color: 34 104 114 255; + } + color_class { + name: "btn_ic_end_bg"; //AO014 + color: 214 49 49 255; + } + color_class { + name: "btn_ic_end_bg_pressed"; + color: 163 37 37 255; + } + color_class { + name: "btn_ic"; //AO015 + color: 249 249 249 255; + } +} +#endif /* __CALLUI_COLOR_CLASSES_H__ */ diff --git a/res/images/Call_button_bg_accept_reject.png b/res/images/Call_button_bg_accept_reject.png new file mode 100755 index 0000000..ee2ee58 Binary files /dev/null and b/res/images/Call_button_bg_accept_reject.png differ diff --git a/res/images/Call_button_bg_reject.png b/res/images/Call_button_bg_reject.png new file mode 100755 index 0000000..40543b8 Binary files /dev/null and b/res/images/Call_button_bg_reject.png differ diff --git a/res/images/Call_controller.png b/res/images/Call_controller.png new file mode 100755 index 0000000..b149e9e Binary files /dev/null and b/res/images/Call_controller.png differ diff --git a/res/images/PUT_IMAGES_HERE b/res/images/PUT_IMAGES_HERE new file mode 100755 index 0000000..e69de29 diff --git a/res/images/background.png b/res/images/background.png new file mode 100644 index 0000000..be3057d Binary files /dev/null and b/res/images/background.png differ diff --git a/res/images/background_dim.png b/res/images/background_dim.png new file mode 100644 index 0000000..ef7c638 Binary files /dev/null and b/res/images/background_dim.png differ diff --git a/res/images/button_edit_bg_new.png b/res/images/button_edit_bg_new.png new file mode 100644 index 0000000..d60c5ae Binary files /dev/null and b/res/images/button_edit_bg_new.png differ diff --git a/res/images/call_btn_circle.png b/res/images/call_btn_circle.png new file mode 100755 index 0000000..58ddf4f Binary files /dev/null and b/res/images/call_btn_circle.png differ diff --git a/res/images/call_btn_circle_02.png b/res/images/call_btn_circle_02.png new file mode 100644 index 0000000..8495d75 Binary files /dev/null and b/res/images/call_btn_circle_02.png differ diff --git a/res/images/call_btn_ic_accept.png b/res/images/call_btn_ic_accept.png new file mode 100644 index 0000000..458a573 Binary files /dev/null and b/res/images/call_btn_ic_accept.png differ diff --git a/res/images/call_btn_ic_end.png b/res/images/call_btn_ic_end.png new file mode 100644 index 0000000..66404b4 Binary files /dev/null and b/res/images/call_btn_ic_end.png differ diff --git a/res/images/call_btn_ic_reject.png b/res/images/call_btn_ic_reject.png new file mode 100644 index 0000000..879bac4 Binary files /dev/null and b/res/images/call_btn_ic_reject.png differ diff --git a/res/images/call_btn_ic_split.png b/res/images/call_btn_ic_split.png new file mode 100644 index 0000000..aa04c53 Binary files /dev/null and b/res/images/call_btn_ic_split.png differ diff --git a/res/images/call_button_accept_arrow.png b/res/images/call_button_accept_arrow.png new file mode 100755 index 0000000..7572d2c Binary files /dev/null and b/res/images/call_button_accept_arrow.png differ diff --git a/res/images/call_button_accept_circle_arrow.png b/res/images/call_button_accept_circle_arrow.png new file mode 100755 index 0000000..7572d2c Binary files /dev/null and b/res/images/call_button_accept_circle_arrow.png differ diff --git a/res/images/call_button_bg_line_accept_reject.png b/res/images/call_button_bg_line_accept_reject.png new file mode 100755 index 0000000..78f6506 Binary files /dev/null and b/res/images/call_button_bg_line_accept_reject.png differ diff --git a/res/images/call_button_bg_masking.png b/res/images/call_button_bg_masking.png new file mode 100755 index 0000000..48e9dce Binary files /dev/null and b/res/images/call_button_bg_masking.png differ diff --git a/res/images/call_button_circle.png b/res/images/call_button_circle.png new file mode 100755 index 0000000..8bc44ab Binary files /dev/null and b/res/images/call_button_circle.png differ diff --git a/res/images/call_button_div_01.png b/res/images/call_button_div_01.png new file mode 100755 index 0000000..6859e23 Binary files /dev/null and b/res/images/call_button_div_01.png differ diff --git a/res/images/call_button_div_02.png b/res/images/call_button_div_02.png new file mode 100755 index 0000000..4de86ef Binary files /dev/null and b/res/images/call_button_div_02.png differ diff --git a/res/images/call_button_div_03.png b/res/images/call_button_div_03.png new file mode 100755 index 0000000..7b7254b Binary files /dev/null and b/res/images/call_button_div_03.png differ diff --git a/res/images/call_button_div_04.png b/res/images/call_button_div_04.png new file mode 100755 index 0000000..cd5fda6 Binary files /dev/null and b/res/images/call_button_div_04.png differ diff --git a/res/images/call_button_icon_01.png b/res/images/call_button_icon_01.png new file mode 100755 index 0000000..a1f21a9 Binary files /dev/null and b/res/images/call_button_icon_01.png differ diff --git a/res/images/call_button_icon_02.png b/res/images/call_button_icon_02.png new file mode 100755 index 0000000..ff76a88 Binary files /dev/null and b/res/images/call_button_icon_02.png differ diff --git a/res/images/call_button_icon_03.png b/res/images/call_button_icon_03.png new file mode 100755 index 0000000..1b8c83a Binary files /dev/null and b/res/images/call_button_icon_03.png differ diff --git a/res/images/call_button_icon_04.png b/res/images/call_button_icon_04.png new file mode 100755 index 0000000..c31b8b6 Binary files /dev/null and b/res/images/call_button_icon_04.png differ diff --git a/res/images/call_button_reject_arrow.png b/res/images/call_button_reject_arrow.png new file mode 100755 index 0000000..c7f1fe4 Binary files /dev/null and b/res/images/call_button_reject_arrow.png differ diff --git a/res/images/call_button_reject_circle_arrow.png b/res/images/call_button_reject_circle_arrow.png new file mode 100755 index 0000000..c7f1fe4 Binary files /dev/null and b/res/images/call_button_reject_circle_arrow.png differ diff --git a/res/images/call_button_swap.png b/res/images/call_button_swap.png new file mode 100755 index 0000000..8ef3d19 Binary files /dev/null and b/res/images/call_button_swap.png differ diff --git a/res/images/call_claro.png b/res/images/call_claro.png new file mode 100755 index 0000000..22275ff Binary files /dev/null and b/res/images/call_claro.png differ diff --git a/res/images/call_dual_sim_1.png b/res/images/call_dual_sim_1.png new file mode 100755 index 0000000..8d6c660 Binary files /dev/null and b/res/images/call_dual_sim_1.png differ diff --git a/res/images/call_dual_sim_2.png b/res/images/call_dual_sim_2.png new file mode 100755 index 0000000..d48e569 Binary files /dev/null and b/res/images/call_dual_sim_2.png differ diff --git a/res/images/call_dual_sim_bg.png b/res/images/call_dual_sim_bg.png new file mode 100755 index 0000000..6610fdf Binary files /dev/null and b/res/images/call_dual_sim_bg.png differ diff --git a/res/images/call_during_record.png b/res/images/call_during_record.png new file mode 100755 index 0000000..c8ef133 Binary files /dev/null and b/res/images/call_during_record.png differ diff --git a/res/images/call_during_volume.png b/res/images/call_during_volume.png new file mode 100755 index 0000000..eda2ef1 Binary files /dev/null and b/res/images/call_during_volume.png differ diff --git a/res/images/call_extra_merge.png b/res/images/call_extra_merge.png new file mode 100755 index 0000000..5c7ed29 Binary files /dev/null and b/res/images/call_extra_merge.png differ diff --git a/res/images/call_extra_play.png b/res/images/call_extra_play.png new file mode 100755 index 0000000..938a254 Binary files /dev/null and b/res/images/call_extra_play.png differ diff --git a/res/images/call_extra_split.png b/res/images/call_extra_split.png new file mode 100755 index 0000000..55a1521 Binary files /dev/null and b/res/images/call_extra_split.png differ diff --git a/res/images/call_extra_swap.png b/res/images/call_extra_swap.png new file mode 100755 index 0000000..e0fc6ca Binary files /dev/null and b/res/images/call_extra_swap.png differ diff --git a/res/images/call_extra_volume.png b/res/images/call_extra_volume.png new file mode 100755 index 0000000..5cfc524 Binary files /dev/null and b/res/images/call_extra_volume.png differ diff --git a/res/images/call_ic_controll_01.png b/res/images/call_ic_controll_01.png new file mode 100755 index 0000000..1956bf4 Binary files /dev/null and b/res/images/call_ic_controll_01.png differ diff --git a/res/images/call_ic_controll_02.png b/res/images/call_ic_controll_02.png new file mode 100755 index 0000000..4858d5e Binary files /dev/null and b/res/images/call_ic_controll_02.png differ diff --git a/res/images/call_inline_button_close.png b/res/images/call_inline_button_close.png new file mode 100755 index 0000000..2c9103d Binary files /dev/null and b/res/images/call_inline_button_close.png differ diff --git a/res/images/call_inline_button_close_1.png b/res/images/call_inline_button_close_1.png new file mode 100755 index 0000000..3385152 Binary files /dev/null and b/res/images/call_inline_button_close_1.png differ diff --git a/res/images/call_inline_button_open.png b/res/images/call_inline_button_open.png new file mode 100755 index 0000000..24cd2ba Binary files /dev/null and b/res/images/call_inline_button_open.png differ diff --git a/res/images/call_lock_icon.png b/res/images/call_lock_icon.png new file mode 100755 index 0000000..8731ee1 Binary files /dev/null and b/res/images/call_lock_icon.png differ diff --git a/res/images/call_multi_hold_bg.png b/res/images/call_multi_hold_bg.png new file mode 100644 index 0000000..3273f6b Binary files /dev/null and b/res/images/call_multi_hold_bg.png differ diff --git a/res/images/call_multi_hold_btn_merge_bg.png b/res/images/call_multi_hold_btn_merge_bg.png new file mode 100644 index 0000000..bad5896 Binary files /dev/null and b/res/images/call_multi_hold_btn_merge_bg.png differ diff --git a/res/images/call_multi_hold_btn_swap_bg.png b/res/images/call_multi_hold_btn_swap_bg.png new file mode 100644 index 0000000..d8c28d3 Binary files /dev/null and b/res/images/call_multi_hold_btn_swap_bg.png differ diff --git a/res/images/call_nextel.png b/res/images/call_nextel.png new file mode 100755 index 0000000..172c5a4 Binary files /dev/null and b/res/images/call_nextel.png differ diff --git a/res/images/call_oi.png b/res/images/call_oi.png new file mode 100755 index 0000000..ecc332e Binary files /dev/null and b/res/images/call_oi.png differ diff --git a/res/images/call_open_arrow_01.png b/res/images/call_open_arrow_01.png new file mode 100755 index 0000000..0e59196 Binary files /dev/null and b/res/images/call_open_arrow_01.png differ diff --git a/res/images/call_open_arrow_2.png b/res/images/call_open_arrow_2.png new file mode 100755 index 0000000..32c80b8 Binary files /dev/null and b/res/images/call_open_arrow_2.png differ diff --git a/res/images/call_open_bg.png b/res/images/call_open_bg.png new file mode 100755 index 0000000..ba20789 Binary files /dev/null and b/res/images/call_open_bg.png differ diff --git a/res/images/call_pattern_bg.png b/res/images/call_pattern_bg.png new file mode 100755 index 0000000..0d03848 Binary files /dev/null and b/res/images/call_pattern_bg.png differ diff --git a/res/images/call_photo_id.png b/res/images/call_photo_id.png new file mode 100755 index 0000000..65a5545 Binary files /dev/null and b/res/images/call_photo_id.png differ diff --git a/res/images/call_photo_id_98.png b/res/images/call_photo_id_98.png new file mode 100644 index 0000000..ea903f7 Binary files /dev/null and b/res/images/call_photo_id_98.png differ diff --git a/res/images/call_photo_id_bg.png b/res/images/call_photo_id_bg.png new file mode 100755 index 0000000..e7eb05e Binary files /dev/null and b/res/images/call_photo_id_bg.png differ diff --git a/res/images/call_photo_id_conference.png b/res/images/call_photo_id_conference.png new file mode 100755 index 0000000..5f63cf9 Binary files /dev/null and b/res/images/call_photo_id_conference.png differ diff --git a/res/images/call_photo_id_emergency.png b/res/images/call_photo_id_emergency.png new file mode 100644 index 0000000..a8e5824 Binary files /dev/null and b/res/images/call_photo_id_emergency.png differ diff --git a/res/images/call_photo_id_mask.png b/res/images/call_photo_id_mask.png new file mode 100755 index 0000000..e7eb05e Binary files /dev/null and b/res/images/call_photo_id_mask.png differ diff --git a/res/images/call_photo_id_outer.png b/res/images/call_photo_id_outer.png new file mode 100755 index 0000000..3c5ef2b Binary files /dev/null and b/res/images/call_photo_id_outer.png differ diff --git a/res/images/call_resume_add.png b/res/images/call_resume_add.png new file mode 100755 index 0000000..04bec5b Binary files /dev/null and b/res/images/call_resume_add.png differ diff --git a/res/images/call_resume_group_icon.png b/res/images/call_resume_group_icon.png new file mode 100755 index 0000000..3886ae3 Binary files /dev/null and b/res/images/call_resume_group_icon.png differ diff --git a/res/images/call_resume_icon.png b/res/images/call_resume_icon.png new file mode 100755 index 0000000..791016f Binary files /dev/null and b/res/images/call_resume_icon.png differ diff --git a/res/images/call_resume_play_bg.png b/res/images/call_resume_play_bg.png new file mode 100755 index 0000000..9d132ff Binary files /dev/null and b/res/images/call_resume_play_bg.png differ diff --git a/res/images/call_tim.png b/res/images/call_tim.png new file mode 100755 index 0000000..ba186df Binary files /dev/null and b/res/images/call_tim.png differ diff --git a/res/images/call_vivo.png b/res/images/call_vivo.png new file mode 100755 index 0000000..558521f Binary files /dev/null and b/res/images/call_vivo.png differ diff --git a/res/images/handler_btn_02.png b/res/images/handler_btn_02.png new file mode 100644 index 0000000..d123e14 Binary files /dev/null and b/res/images/handler_btn_02.png differ diff --git a/res/images/icon/B03_Call_Missedcall.png b/res/images/icon/B03_Call_Missedcall.png new file mode 100755 index 0000000..fa746dd Binary files /dev/null and b/res/images/icon/B03_Call_Missedcall.png differ diff --git a/res/images/icon/B03_Call_Mute.png b/res/images/icon/B03_Call_Mute.png new file mode 100755 index 0000000..f224ac6 Binary files /dev/null and b/res/images/icon/B03_Call_Mute.png differ diff --git a/res/images/icon/B03_Call_SOSmessge_active.png b/res/images/icon/B03_Call_SOSmessge_active.png new file mode 100755 index 0000000..bc36b3a Binary files /dev/null and b/res/images/icon/B03_Call_SOSmessge_active.png differ diff --git a/res/images/icon/B03_Call_Speaker_on.png b/res/images/icon/B03_Call_Speaker_on.png new file mode 100755 index 0000000..78d8db9 Binary files /dev/null and b/res/images/icon/B03_Call_Speaker_on.png differ diff --git a/res/images/icon/B03_Call_bluetooth.png b/res/images/icon/B03_Call_bluetooth.png new file mode 100755 index 0000000..8a3fc80 Binary files /dev/null and b/res/images/icon/B03_Call_bluetooth.png differ diff --git a/res/images/icon/Notification_ic_missedcall.png b/res/images/icon/Notification_ic_missedcall.png new file mode 100755 index 0000000..b90a877 Binary files /dev/null and b/res/images/icon/Notification_ic_missedcall.png differ diff --git a/res/images/icon/call_button_add.png b/res/images/icon/call_button_add.png new file mode 100644 index 0000000..dad2078 Binary files /dev/null and b/res/images/icon/call_button_add.png differ diff --git a/res/images/icon/call_inline_button_open.png b/res/images/icon/call_inline_button_open.png new file mode 100644 index 0000000..24cd2ba Binary files /dev/null and b/res/images/icon/call_inline_button_open.png differ diff --git a/res/images/icon/call_photo_id_mask.png b/res/images/icon/call_photo_id_mask.png new file mode 100755 index 0000000..e7eb05e Binary files /dev/null and b/res/images/icon/call_photo_id_mask.png differ diff --git a/res/images/icon/call_resume_play_mask.png b/res/images/icon/call_resume_play_mask.png new file mode 100755 index 0000000..9d132ff Binary files /dev/null and b/res/images/icon/call_resume_play_mask.png differ diff --git a/res/images/icon/noti_icon_reject_auto.png b/res/images/icon/noti_icon_reject_auto.png new file mode 100644 index 0000000..e24e794 Binary files /dev/null and b/res/images/icon/noti_icon_reject_auto.png differ diff --git a/res/images/icon/noti_missed_call.png b/res/images/icon/noti_missed_call.png new file mode 100755 index 0000000..bb43e21 Binary files /dev/null and b/res/images/icon/noti_missed_call.png differ diff --git a/res/images/icon/vc_voice_control.png b/res/images/icon/vc_voice_control.png new file mode 100755 index 0000000..8430768 Binary files /dev/null and b/res/images/icon/vc_voice_control.png differ diff --git a/res/images/icon/vc_volume_icon.png b/res/images/icon/vc_volume_icon.png new file mode 100755 index 0000000..6dd03a3 Binary files /dev/null and b/res/images/icon/vc_volume_icon.png differ diff --git a/res/images/keypad_bg_div.png b/res/images/keypad_bg_div.png new file mode 100755 index 0000000..8756b2f Binary files /dev/null and b/res/images/keypad_bg_div.png differ diff --git a/res/images/keypad_english_01.png b/res/images/keypad_english_01.png new file mode 100644 index 0000000..309dd86 Binary files /dev/null and b/res/images/keypad_english_01.png differ diff --git a/res/images/keypad_english_02.png b/res/images/keypad_english_02.png new file mode 100644 index 0000000..2fa7a0b Binary files /dev/null and b/res/images/keypad_english_02.png differ diff --git a/res/images/keypad_english_03.png b/res/images/keypad_english_03.png new file mode 100644 index 0000000..98f7ad1 Binary files /dev/null and b/res/images/keypad_english_03.png differ diff --git a/res/images/keypad_english_04.png b/res/images/keypad_english_04.png new file mode 100644 index 0000000..6b6a172 Binary files /dev/null and b/res/images/keypad_english_04.png differ diff --git a/res/images/keypad_english_05.png b/res/images/keypad_english_05.png new file mode 100644 index 0000000..288854f Binary files /dev/null and b/res/images/keypad_english_05.png differ diff --git a/res/images/keypad_english_06.png b/res/images/keypad_english_06.png new file mode 100644 index 0000000..f346c46 Binary files /dev/null and b/res/images/keypad_english_06.png differ diff --git a/res/images/keypad_english_07.png b/res/images/keypad_english_07.png new file mode 100644 index 0000000..e70e9a8 Binary files /dev/null and b/res/images/keypad_english_07.png differ diff --git a/res/images/keypad_english_08.png b/res/images/keypad_english_08.png new file mode 100644 index 0000000..f4de8af Binary files /dev/null and b/res/images/keypad_english_08.png differ diff --git a/res/images/keypad_input_del.png b/res/images/keypad_input_del.png new file mode 100755 index 0000000..406851c Binary files /dev/null and b/res/images/keypad_input_del.png differ diff --git a/res/images/keypad_number_00.png b/res/images/keypad_number_00.png new file mode 100644 index 0000000..255c897 Binary files /dev/null and b/res/images/keypad_number_00.png differ diff --git a/res/images/keypad_number_01.png b/res/images/keypad_number_01.png new file mode 100644 index 0000000..409bfb8 Binary files /dev/null and b/res/images/keypad_number_01.png differ diff --git a/res/images/keypad_number_02.png b/res/images/keypad_number_02.png new file mode 100644 index 0000000..b12b92f Binary files /dev/null and b/res/images/keypad_number_02.png differ diff --git a/res/images/keypad_number_03.png b/res/images/keypad_number_03.png new file mode 100644 index 0000000..058876c Binary files /dev/null and b/res/images/keypad_number_03.png differ diff --git a/res/images/keypad_number_04.png b/res/images/keypad_number_04.png new file mode 100644 index 0000000..3906f18 Binary files /dev/null and b/res/images/keypad_number_04.png differ diff --git a/res/images/keypad_number_05.png b/res/images/keypad_number_05.png new file mode 100644 index 0000000..a104591 Binary files /dev/null and b/res/images/keypad_number_05.png differ diff --git a/res/images/keypad_number_06.png b/res/images/keypad_number_06.png new file mode 100644 index 0000000..4c0893b Binary files /dev/null and b/res/images/keypad_number_06.png differ diff --git a/res/images/keypad_number_07.png b/res/images/keypad_number_07.png new file mode 100644 index 0000000..e9eb6a0 Binary files /dev/null and b/res/images/keypad_number_07.png differ diff --git a/res/images/keypad_number_08.png b/res/images/keypad_number_08.png new file mode 100644 index 0000000..f6bd01b Binary files /dev/null and b/res/images/keypad_number_08.png differ diff --git a/res/images/keypad_number_09.png b/res/images/keypad_number_09.png new file mode 100644 index 0000000..ede6db2 Binary files /dev/null and b/res/images/keypad_number_09.png differ diff --git a/res/images/keypad_number_asterisk.png b/res/images/keypad_number_asterisk.png new file mode 100644 index 0000000..923ea88 Binary files /dev/null and b/res/images/keypad_number_asterisk.png differ diff --git a/res/images/keypad_number_sharp.png b/res/images/keypad_number_sharp.png new file mode 100644 index 0000000..e0118d4 Binary files /dev/null and b/res/images/keypad_number_sharp.png differ diff --git a/res/images/lock_circle_line_camera.png b/res/images/lock_circle_line_camera.png new file mode 100755 index 0000000..14c6cf3 Binary files /dev/null and b/res/images/lock_circle_line_camera.png differ diff --git a/res/images/lock_circle_line_camera_drag.png b/res/images/lock_circle_line_camera_drag.png new file mode 100755 index 0000000..73008ab Binary files /dev/null and b/res/images/lock_circle_line_camera_drag.png differ diff --git a/res/images/logs_icon_sim_1.png b/res/images/logs_icon_sim_1.png new file mode 100755 index 0000000..9f8418b Binary files /dev/null and b/res/images/logs_icon_sim_1.png differ diff --git a/res/images/logs_icon_sim_2.png b/res/images/logs_icon_sim_2.png new file mode 100755 index 0000000..3294eaf Binary files /dev/null and b/res/images/logs_icon_sim_2.png differ diff --git a/res/images/logs_icon_sim_data.png b/res/images/logs_icon_sim_data.png new file mode 100755 index 0000000..a5e5e8f Binary files /dev/null and b/res/images/logs_icon_sim_data.png differ diff --git a/res/images/logs_icon_sim_heart.png b/res/images/logs_icon_sim_heart.png new file mode 100755 index 0000000..762ae56 Binary files /dev/null and b/res/images/logs_icon_sim_heart.png differ diff --git a/res/images/logs_icon_sim_home.png b/res/images/logs_icon_sim_home.png new file mode 100755 index 0000000..cb226cf Binary files /dev/null and b/res/images/logs_icon_sim_home.png differ diff --git a/res/images/logs_icon_sim_internet.png b/res/images/logs_icon_sim_internet.png new file mode 100755 index 0000000..6fa2b93 Binary files /dev/null and b/res/images/logs_icon_sim_internet.png differ diff --git a/res/images/logs_icon_sim_messages.png b/res/images/logs_icon_sim_messages.png new file mode 100755 index 0000000..4fc31e4 Binary files /dev/null and b/res/images/logs_icon_sim_messages.png differ diff --git a/res/images/logs_icon_sim_office.png b/res/images/logs_icon_sim_office.png new file mode 100755 index 0000000..37de18c Binary files /dev/null and b/res/images/logs_icon_sim_office.png differ diff --git a/res/images/logs_icon_sim_phone.png b/res/images/logs_icon_sim_phone.png new file mode 100755 index 0000000..88f307a Binary files /dev/null and b/res/images/logs_icon_sim_phone.png differ diff --git a/res/images/quick_end.png b/res/images/quick_end.png new file mode 100755 index 0000000..5bdb2a1 Binary files /dev/null and b/res/images/quick_end.png differ diff --git a/res/images/quick_end_press.png b/res/images/quick_end_press.png new file mode 100755 index 0000000..09ce4ba Binary files /dev/null and b/res/images/quick_end_press.png differ diff --git a/res/images/quick_extra.png b/res/images/quick_extra.png new file mode 100755 index 0000000..c59a84f Binary files /dev/null and b/res/images/quick_extra.png differ diff --git a/res/images/quick_extra_off.png b/res/images/quick_extra_off.png new file mode 100755 index 0000000..e452766 Binary files /dev/null and b/res/images/quick_extra_off.png differ diff --git a/res/images/quick_extra_off_press.png b/res/images/quick_extra_off_press.png new file mode 100755 index 0000000..6ed377a Binary files /dev/null and b/res/images/quick_extra_off_press.png differ diff --git a/res/images/quick_extra_press.png b/res/images/quick_extra_press.png new file mode 100755 index 0000000..7e2a1eb Binary files /dev/null and b/res/images/quick_extra_press.png differ diff --git a/res/images/sound_volume_popup_bg.#.png b/res/images/sound_volume_popup_bg.#.png new file mode 100755 index 0000000..512eafe Binary files /dev/null and b/res/images/sound_volume_popup_bg.#.png differ diff --git a/res/images/vc_volume_icon.png b/res/images/vc_volume_icon.png new file mode 100755 index 0000000..6dd03a3 Binary files /dev/null and b/res/images/vc_volume_icon.png differ diff --git a/res/images/vc_volume_icon_bt.png b/res/images/vc_volume_icon_bt.png new file mode 100755 index 0000000..eb33c25 Binary files /dev/null and b/res/images/vc_volume_icon_bt.png differ diff --git a/res/images/vc_volume_mute_icon.png b/res/images/vc_volume_mute_icon.png new file mode 100755 index 0000000..8ed6fca Binary files /dev/null and b/res/images/vc_volume_mute_icon.png differ diff --git a/res/images/without_proximity_seneor_bg.png b/res/images/without_proximity_seneor_bg.png new file mode 100755 index 0000000..74205a0 Binary files /dev/null and b/res/images/without_proximity_seneor_bg.png differ diff --git a/res/themes/bg/00_focus.png b/res/themes/bg/00_focus.png new file mode 100644 index 0000000..fed29db Binary files /dev/null and b/res/themes/bg/00_focus.png differ diff --git a/res/themes/bg/00_list_circle_thumbnail_bg.png b/res/themes/bg/00_list_circle_thumbnail_bg.png new file mode 100755 index 0000000..96a0eb8 Binary files /dev/null and b/res/themes/bg/00_list_circle_thumbnail_bg.png differ diff --git a/res/themes/bg/00_list_group_bg.png b/res/themes/bg/00_list_group_bg.png new file mode 100755 index 0000000..358d215 Binary files /dev/null and b/res/themes/bg/00_list_group_bg.png differ diff --git a/res/themes/bg/00_list_group_bg_press.png b/res/themes/bg/00_list_group_bg_press.png new file mode 100755 index 0000000..cc4f97b Binary files /dev/null and b/res/themes/bg/00_list_group_bg_press.png differ diff --git a/res/themes/bg/C01-1_call_bottom_bg_function_press.png b/res/themes/bg/C01-1_call_bottom_bg_function_press.png new file mode 100644 index 0000000..5d02ccc Binary files /dev/null and b/res/themes/bg/C01-1_call_bottom_bg_function_press.png differ diff --git a/res/themes/bg/call_btn_bg.#.png b/res/themes/bg/call_btn_bg.#.png new file mode 100644 index 0000000..f9b84da Binary files /dev/null and b/res/themes/bg/call_btn_bg.#.png differ diff --git a/res/themes/bg/call_btn_circle.png b/res/themes/bg/call_btn_circle.png new file mode 100755 index 0000000..58ddf4f Binary files /dev/null and b/res/themes/bg/call_btn_circle.png differ diff --git a/res/themes/bg/call_resume_play_bg.png b/res/themes/bg/call_resume_play_bg.png new file mode 100755 index 0000000..9d132ff Binary files /dev/null and b/res/themes/bg/call_resume_play_bg.png differ diff --git a/res/themes/bg/core_button_bg.#.png b/res/themes/bg/core_button_bg.#.png new file mode 100644 index 0000000..eba1fe5 Binary files /dev/null and b/res/themes/bg/core_button_bg.#.png differ diff --git a/res/themes/bg/core_button_effect_normal.#.png b/res/themes/bg/core_button_effect_normal.#.png new file mode 100644 index 0000000..28c6e47 Binary files /dev/null and b/res/themes/bg/core_button_effect_normal.#.png differ diff --git a/res/themes/bg/core_button_effect_pressed.#.png b/res/themes/bg/core_button_effect_pressed.#.png new file mode 100644 index 0000000..8b93be3 Binary files /dev/null and b/res/themes/bg/core_button_effect_pressed.#.png differ diff --git a/res/themes/bg/vc_btn_bg.png b/res/themes/bg/vc_btn_bg.png new file mode 100755 index 0000000..a86bff0 Binary files /dev/null and b/res/themes/bg/vc_btn_bg.png differ diff --git a/res/themes/bg/vc_btn_bg_dim.png b/res/themes/bg/vc_btn_bg_dim.png new file mode 100755 index 0000000..86e1599 Binary files /dev/null and b/res/themes/bg/vc_btn_bg_dim.png differ diff --git a/res/themes/bg/vc_btn_bg_press.png b/res/themes/bg/vc_btn_bg_press.png new file mode 100755 index 0000000..d899bc1 Binary files /dev/null and b/res/themes/bg/vc_btn_bg_press.png differ diff --git a/res/themes/bg/vc_btn_circle.png b/res/themes/bg/vc_btn_circle.png new file mode 100755 index 0000000..0a3f3d0 Binary files /dev/null and b/res/themes/bg/vc_btn_circle.png differ diff --git a/res/themes/bg/vc_btn_circle_on.png b/res/themes/bg/vc_btn_circle_on.png new file mode 100755 index 0000000..1bf82f5 Binary files /dev/null and b/res/themes/bg/vc_btn_circle_on.png differ diff --git a/res/themes/bg/vc_btn_circle_press.png b/res/themes/bg/vc_btn_circle_press.png new file mode 100755 index 0000000..9b5d9c7 Binary files /dev/null and b/res/themes/bg/vc_btn_circle_press.png differ diff --git a/res/themes/bg/vc_btn_focus.png b/res/themes/bg/vc_btn_focus.png new file mode 100755 index 0000000..2d02de8 Binary files /dev/null and b/res/themes/bg/vc_btn_focus.png differ diff --git a/res/themes/bg/vc_btn_red_bg.png b/res/themes/bg/vc_btn_red_bg.png new file mode 100755 index 0000000..09630c6 Binary files /dev/null and b/res/themes/bg/vc_btn_red_bg.png differ diff --git a/res/themes/bg/vc_btn_red_bg_dim.png b/res/themes/bg/vc_btn_red_bg_dim.png new file mode 100755 index 0000000..f66465f Binary files /dev/null and b/res/themes/bg/vc_btn_red_bg_dim.png differ diff --git a/res/themes/bg/vc_btn_red_bg_press.png b/res/themes/bg/vc_btn_red_bg_press.png new file mode 100755 index 0000000..321e484 Binary files /dev/null and b/res/themes/bg/vc_btn_red_bg_press.png differ diff --git a/res/themes/bg/vc_call_btn.png b/res/themes/bg/vc_call_btn.png new file mode 100755 index 0000000..67da889 Binary files /dev/null and b/res/themes/bg/vc_call_btn.png differ diff --git a/res/themes/bg/vc_call_btn_bg.png b/res/themes/bg/vc_call_btn_bg.png new file mode 100755 index 0000000..c612920 Binary files /dev/null and b/res/themes/bg/vc_call_btn_bg.png differ diff --git a/res/themes/bg/vc_call_btn_press.png b/res/themes/bg/vc_call_btn_press.png new file mode 100755 index 0000000..b1f812e Binary files /dev/null and b/res/themes/bg/vc_call_btn_press.png differ diff --git a/res/themes/bg/vc_contact_btn.png b/res/themes/bg/vc_contact_btn.png new file mode 100755 index 0000000..65614db Binary files /dev/null and b/res/themes/bg/vc_contact_btn.png differ diff --git a/res/themes/bg/vc_contact_btn_press.png b/res/themes/bg/vc_contact_btn_press.png new file mode 100755 index 0000000..89b7dd5 Binary files /dev/null and b/res/themes/bg/vc_contact_btn_press.png differ diff --git a/res/themes/bg/vc_easymode_call_bottom_bg_press.png b/res/themes/bg/vc_easymode_call_bottom_bg_press.png new file mode 100755 index 0000000..4bb0556 Binary files /dev/null and b/res/themes/bg/vc_easymode_call_bottom_bg_press.png differ diff --git a/res/themes/bg/vc_reject_message_list_create_bg.png b/res/themes/bg/vc_reject_message_list_create_bg.png new file mode 100755 index 0000000..d0ca92e Binary files /dev/null and b/res/themes/bg/vc_reject_message_list_create_bg.png differ diff --git a/res/themes/bg/vc_reject_message_list_create_bg_press.png b/res/themes/bg/vc_reject_message_list_create_bg_press.png new file mode 100755 index 0000000..4ff70fb Binary files /dev/null and b/res/themes/bg/vc_reject_message_list_create_bg_press.png differ diff --git a/res/themes/bg/vc_six_button_press.png b/res/themes/bg/vc_six_button_press.png new file mode 100644 index 0000000..35d77b5 Binary files /dev/null and b/res/themes/bg/vc_six_button_press.png differ diff --git a/res/themes/bg/vc_toggle.png b/res/themes/bg/vc_toggle.png new file mode 100755 index 0000000..bb63057 Binary files /dev/null and b/res/themes/bg/vc_toggle.png differ diff --git a/res/themes/bg/vc_toggle_dim.png b/res/themes/bg/vc_toggle_dim.png new file mode 100755 index 0000000..c5c544e Binary files /dev/null and b/res/themes/bg/vc_toggle_dim.png differ diff --git a/res/themes/bg/vc_toggle_focus.png b/res/themes/bg/vc_toggle_focus.png new file mode 100755 index 0000000..589e79b Binary files /dev/null and b/res/themes/bg/vc_toggle_focus.png differ diff --git a/res/themes/bg/vc_toggle_press.png b/res/themes/bg/vc_toggle_press.png new file mode 100755 index 0000000..fdd9fbc Binary files /dev/null and b/res/themes/bg/vc_toggle_press.png differ diff --git a/res/themes/bg/vc_volume_progress_bar.png b/res/themes/bg/vc_volume_progress_bar.png new file mode 100755 index 0000000..d7eb2ad Binary files /dev/null and b/res/themes/bg/vc_volume_progress_bar.png differ diff --git a/res/themes/bg/vc_volume_progress_bg.png b/res/themes/bg/vc_volume_progress_bg.png new file mode 100755 index 0000000..9d3751d Binary files /dev/null and b/res/themes/bg/vc_volume_progress_bg.png differ diff --git a/res/themes/bg/vc_volume_slider_handle.png b/res/themes/bg/vc_volume_slider_handle.png new file mode 100755 index 0000000..3a64686 Binary files /dev/null and b/res/themes/bg/vc_volume_slider_handle.png differ diff --git a/res/themes/bg/vc_volume_slider_handle_dim.png b/res/themes/bg/vc_volume_slider_handle_dim.png new file mode 100755 index 0000000..68639ff Binary files /dev/null and b/res/themes/bg/vc_volume_slider_handle_dim.png differ diff --git a/res/themes/bg/vc_volume_slider_handle_press.png b/res/themes/bg/vc_volume_slider_handle_press.png new file mode 100755 index 0000000..b8966ce Binary files /dev/null and b/res/themes/bg/vc_volume_slider_handle_press.png differ diff --git a/res/themes/call_genlist_theme.edc b/res/themes/call_genlist_theme.edc new file mode 100755 index 0000000..e23aba6 --- /dev/null +++ b/res/themes/call_genlist_theme.edc @@ -0,0 +1,1461 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#define BG_IMG_PATH "./bg" + +////////////Second Incoming Call Popup genlist Item customization start///////// +#define GENLIST_LIST_BG_COLOR 0 0 0 255 +#define GENLIST_LIST_PRESS_COLOR 43 58 175 255 +#define GENLIST_LIST_DIM_COLOR 0 0 0 255 +#define GENLIST_LIST_LINE1_COLOR 64 64 64 255 +#define GENLIST_LIST_LINE2_COLOR 0 0 0 255 +#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#1382FF" +#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#FAFAFAFF" +#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#969696FF" +#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FAFAFAFF" +#define GENLIST_LIST_BG_POPUP_COLOR 29 38 60 255 +#define GENLIST_LIST_LINE1_POPUP_COLOR 29 38 60 255 +#define GENLIST_LIST_LINE2_POPUP_COLOR 86 92 109 255 + +#define GENLIST_TREESIZE_DEFAULT 26 +#define GENLIST_PART_LIST_LINE_HEIGHT 1 +#define GENLIST_PADDING_SIZE_LEFT 26 +#define GENLIST_PADDING_SIZE_RIGHT 26 +#define GENLIST_PADDING_SIZE_TOP 2 +#define GENLIST_PADDING_SIZE_BOTTOM 2 +#define GENLIST_PADDING_SIZE_DEFAULT 16 +#define GENLIST_HEIGHT_1LINE 110 +#define GENLIST_LIST_MAIN_TEXT_SIZE 40 + + +#define LIST_ITEM_HEIGHT 96 +#define LIST_PADDING_TOP_SIZE 15 // FIXME: please check font height +#define LIST_PADDING_BOTTOM_SIZE 15 // FIXME: please check font height +#define LIST_PADDING_CENTER_LEFT_SIZE 15 +#define LIST_PADDING_CENTER_RIGHT_SIZE 15 +#define LIST_PADDING_DEFAULT_SIZE 10 +#define LIST_TEXT_MAIN_SIZE 28 + +#define STYLE_TAGS \ + tag: "br" "\n";\ + tag: "ps" "ps";\ + tag: "tab" "\t";\ + tag: "b" "+ font_weight=Bold"; + + #define DSC_FROM_L( STATE, PARAM ) \ + description { state: STATE;\ + fixed: 1 0; \ + align: 0.0 0.5; \ + rel2.relative: 0.0 1.0; \ + PARAM\ + } + +// ------------------ +// HERE <-- | +// ------------------ + #define DSC_FROM_R( STATE, PARAM ) \ + description { state: STATE;\ + fixed: 1 0; \ + align: 1.0 0.5; \ + rel1.relative: 1 0; \ + PARAM\ + } + +// ---------- +// | HERE | +// ---------- +// | | +// ---------- + #define DSC_FROM_T( STATE, PARAM ) \ + description { state: STATE;\ + fixed: 0 1; \ + align: 0.5 0.0; \ + rel2.relative: 1.0 0.0; \ + PARAM\ + } + +// ---------- +// | HERE | +// ---------- +// | | +// ---------- + #define DSC_FROM_B( STATE, PARAM ) \ + description { state: STATE;\ + fixed: 0 1; \ + align: 0.5 1.0; \ + rel1.relative: 0.0 1.0; \ + PARAM\ + } + +// ------------------ +// | PART == HERE | +// ------------------ + #define DSC_TO( STATE, PART, PARAM ) \ + description { state: STATE;\ + rel1 { \ + relative: 0 0; \ + to: PART; \ + }\ + rel2 {\ + relative: 1 1;\ + to: PART; \ + }\ + PARAM\ + } + +// | TOP | +// --------------------- +// LEFT | HERE | RIGHT +// --------------------- +// | BOTTOM | +#define DSC_LRTB( STATE, LEFT, RIGHT, TOP, BOTTOM, PARAM ) \ + description { state: STATE;\ + rel1 { \ + relative: 1 1; \ + to_x: LEFT; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 0 0;\ + to_x: RIGHT;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// --------------------- +// LEFT |--> HERE +// --------------------- +#define DSC_L( STATE, LEFT, REL_X, PARAM ) \ + description { state: STATE;\ + align: 0.5 0.5; \ + aspect: 0 0; \ + fixed: 1 0; \ + rel1 { \ + relative: 1 0; \ + to_x: LEFT; \ + }\ + rel2 { \ + relative: REL_X 1;\ + }\ + PARAM\ + } + +// --------------------- +// HERE <--| RIGHT +// --------------------- +#define DSC_R( STATE, RIGHT, REL_X, PARAM ) \ + description { state: STATE;\ + align: 1 0.5; \ + fixed: 1 0; \ + rel1 { \ + relative: REL_X 0; \ + }\ + rel2 {\ + relative: 0 1;\ + to_x: RIGHT; \ + }\ + PARAM\ + } + +// -------------------------- +// LEFT |--> HERE <--| RIGHT +// -------------------------- +#define DSC_LR( STATE, LEFT, RIGHT, PARAM ) \ + description { state: STATE;\ + rel1 { \ + relative: 1 0; \ + to_x: LEFT; \ + }\ + rel2 {\ + relative: 0 1;\ + to_x: RIGHT;\ + }\ + PARAM\ + } + +// | TOP | +// ----------------- +// | HERE <--| RIGHT +// ----------------- +// | BOTTOM | +#define DSC_RTB( STATE, RIGHT, TOP, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 1 0.5;\ + rel1 { \ + relative: 0 1; \ + to_x: RIGHT; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 0 0;\ + to_x: RIGHT;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// LEFT | HERE | RIGHT +// --------------------- +// | BOTTOM | +#define DSC_LRB( STATE, LEFT, RIGHT, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 0.5 1;\ + rel1 { \ + relative: 1 0; \ + to_x: LEFT; \ + to_y: BOTTOM; \ + }\ + rel2 {\ + relative: 0 0;\ + to_x: RIGHT;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// | TOP | +// --------------------- +// LEFT | HERE | RIGHT +#define DSC_LRT( STATE, LEFT, RIGHT, TOP, PARAM ) \ + description { state: STATE;\ + align: 0.5 0;\ + rel1 { \ + relative: 1 1; \ + to_x: LEFT; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 0 1;\ + to_x: RIGHT;\ + to_y: TOP;\ + }\ + PARAM\ + } + +// | TOP | +// --------------------- +// LEFT | --> HERE | +#define DSC_LT( STATE, LEFT, TOP, PARAM ) \ + description { state: STATE;\ + align: 0 0;\ + rel1 { \ + relative: 1 1; \ + to_x: LEFT; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 1 1;\ + to_x: LEFT;\ + to_y: TOP;\ + }\ + PARAM\ + } + +// LEFT | --> HERE | +// --------------------- +// | BOTTOM | +#define DSC_LB( STATE, LEFT, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 0 1;\ + rel1 { \ + relative: 1 0; \ + to_x: LEFT; \ + to_y: BOTTOM; \ + }\ + rel2 {\ + relative: 1 0;\ + to_x: LEFT;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// | TOP | +// --------------------- +// LEFT |--> HERE | +// --------------------- +// | BOTTOM | +#define DSC_LTB( STATE, LEFT, TOP, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 0 0.5;\ + rel1 { \ + relative: 1 1; \ + to_x: LEFT; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 1 0;\ + to_x: LEFT;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// | TOP | +// --------------------- +// | HERE <--| RIGHT +#define DSC_RT( STATE, RIGHT, TOP, PARAM ) \ + description { state: STATE;\ + align: 1 0;\ + rel1 { \ + relative: 0 1; \ + to_x: RIGHT; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 0 1;\ + to_x: RIGHT;\ + to_y: TOP;\ + }\ + PARAM\ + } + +// | HERE <-- | RIGHT +// --------------------- +// | BOTTOM | +#define DSC_RB( STATE, RIGHT, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 1 1;\ + rel1 { \ + relative: 0 0; \ + to_x: RIGHT; \ + to_y: BOTTOM; \ + }\ + rel2 {\ + relative: 0 0;\ + to_x: RIGHT;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// | TOP | +// ---------- +// | HERE | +// ---------- +// | BOTTOM | +#define DSC_TB( STATE, TOP, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 0.5 0.5;\ + rel1 { \ + relative: 0 1; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 1 0;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// | TOP | +// ---------- +// | HERE | +// ---------- +#define DSC_T( STATE, TOP, PARAM ) \ + description { state: STATE;\ + align: 0.5 0.0;\ + rel1 { \ + relative: 0 1; \ + to_y: TOP; \ + }\ + rel2 {\ + relative: 1 1;\ + to_y: TOP;\ + }\ + PARAM\ + } + +// | HERE | +// ---------- +// | BOTTOM | +// ---------- +#define DSC_B( STATE, BOTTOM, PARAM ) \ + description { state: STATE;\ + align: 0.5 1.0;\ + rel1 { \ + relative: 0 0; \ + to_y: BOTTOM; \ + }\ + rel2 {\ + relative: 1 0;\ + to_y: BOTTOM;\ + }\ + PARAM\ + } + +// PART +#define PART(TYPE, NAME, DESCRIPION) \ + part { name: NAME; \ + scale: 1; \ + type: TYPE; \ + DESCRIPION \ + } + + +//**************************************************************************// +// Genlist Macros +//**************************************************************************// +#define LIST_PART_BG \ + PART(RECT, "bg", \ + description { state: "default" 0.0; \ + color_class: "B0211"; \ + } \ + description { state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + color_class: "B0211P"; \ + } \ + description { state: "disabled" 0.0; \ + color_class: "B0211"; \ + } \ + description { state: "reorder" 0.0; \ + color: 0 0 0 0; \ + } \ + ) + +#define LIST_PROGRAM_DEFAULT( TARGET ) \ + program { name: "default"; \ + signal: "elm,state,default"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + TARGET \ + } \ + +#define LIST_PROGRAM_DISABLED( TARGET ) \ + program { name: "enabled"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + TARGET \ + } \ + program { name: "disabled"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + TARGET \ + } + +#define LIST_PROGRAM_SELECT( TARGET ) \ + program { name: "pressed"; \ + signal: "elm,state,selected"; \ + source: "elm"; \ + action: STATE_SET "pressed" 0.0; \ + TARGET \ + } \ + program { name: "unselected"; \ + signal: "elm,state,unselected"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + TARGET \ + } + +#define LIST_PROGRAM_SOUND \ + program { name: "play_sound"; \ + signal: "elm,state,clicked"; \ + source: "elm"; \ + script { \ + run_program(PROGRAM:"touch_sound"); \ + } \ + } \ + program { name: "touch_sound"; \ + action: RUN_PLUGIN "touch_sound"; \ + } + +#define LIST_PROGRAMS( TARGET ) \ + programs { \ + LIST_PROGRAM_DEFAULT( TARGET \ + target: "bg"; \ + ) \ + LIST_PROGRAM_DISABLED( TARGET \ + target: "bg"; \ + ) \ + LIST_PROGRAM_SELECT( TARGET \ + target: "bg"; \ + ) \ + LIST_PROGRAM_SOUND \ + } + +#define PARAM_TEXT(STYLE)\ + text { \ + min: 0 1; \ + style: STYLE; \ + } + + +#define GENLIST_PROLOG \ + data.item: "stacking" "above"; \ + data.item: "selectraise" "on"; \ + data.item: "treesize" 0; + +#define GENLIST_PROLOG_NORMAL \ + GENLIST_PROLOG \ + data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \ + data.item: "flips" "elm.flip.icon elm.flip.content"; \ + images { \ + image : BG_IMG_PATH"/00_list_group_bg.png" COMP; \ + image : BG_IMG_PATH"/00_list_group_bg_press.png" COMP; \ + image : BG_IMG_PATH"/00_focus.png" COMP; \ + } + +#define GENLIST_PART_BASE_SIZE(HEIGHT) \ + part { name: "base"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + min: 0 HEIGHT; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default"; \ + } \ + } \ + part { name: "state"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "decorate" 0.0; \ + inherit: "default"; \ + } \ + description { state: "reorder" 0.0; \ + inherit: "default"; \ + } \ + description { state: "decorate_reorder" 0.0; \ + inherit: "default"; \ + } \ + } + +#define GENLIST_PART_BASE \ + GENLIST_PART_BASE_SIZE(0) + +#define GENLIST_PART_SPACER(NAME, DESCRIPION) \ + part { name: NAME; \ + scale: 1; \ + mouse_events: 0; \ + type: SPACER; \ + DESCRIPION \ + } + +#define GENLIST_PART_RECT(NAME, DESCRIPION) \ + part { name: NAME; \ + scale: 1; \ + type: RECT; \ + DESCRIPION \ + } + +#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \ + part { name: NAME; \ + scale: 1; \ + type: IMAGE; \ + DESCRIPION \ + } + +#define GENLIST_DESCRIPTION_LR( left, right, param ) \ + description { state: "default" 0.0;\ + rel1 { \ + relative: 1 0; \ + to_x: left; \ + to_y: "base"; \ + }\ + rel2 {\ + relative: 0 1;\ + to_x: right;\ + to_y: "base"; \ + }\ + param\ + } + +#define GENLIST_PART_BG_NORMAL \ + GENLIST_PART_RECT("bg_clip", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "reorder" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "decorate_reorder" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + ) \ + GENLIST_PART_RECT("bg_reorder_clip", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "reorder" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + description { state: "decorate_reorder" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "reorder_flip" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + ) \ + GENLIST_PART_RECT("bg", \ + clip_to: "bg_clip"; \ + description { state: "default" 0.0; \ + color: GENLIST_LIST_BG_COLOR; \ + } \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: GENLIST_LIST_PRESS_COLOR; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: GENLIST_LIST_DIM_COLOR; \ + } \ + ) \ + GENLIST_PART_SPACER("bg_reorder_left", \ + description { state: "default" 0.0; \ + min: 16 0; \ + max: 16 -1; \ + fixed: 1 0; \ + align: 0 0.5; \ + rel2.relative: 0 1; \ + } \ + ) \ + GENLIST_PART_SPACER("bg_reorder_right", \ + description { state: "default" 0.0; \ + min: 16 0; \ + max: 16 -1; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + rel1.relative: 1 0; \ + } \ + ) \ + GENLIST_PART_IMAGE("bg_reorder", \ + clip_to: "bg_reorder_clip"; \ + GENLIST_DESCRIPTION_LR("bg_reorder_left", "bg_reorder_right", \ + image { \ + normal: BG_IMG_PATH"/00_list_group_bg.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + ) \ + description { state: "selected" 0.0; \ + inherit: "default"; \ + image { \ + normal: BG_IMG_PATH"/00_list_group_bg_press.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "flipped" 0.0; \ + inherit: "default"; \ + visible: 0; \ + } \ + ) + +#define GENLIST_PART_BOTTOM_LINE \ + GENLIST_PART_RECT("bottom_line_clip", \ + description { state: "default" 0.0; \ + color: 255 255 255 255; \ + } \ + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "reorder" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "decorate_reorder" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + ) \ + GENLIST_PART_RECT("bottom_line", \ + mouse_events: 0; \ + clip_to: "bottom_line_clip"; \ + description { state: "default" 0.0; \ + min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \ + max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \ + fixed: 0 1; \ + align: 0.5 1; \ + color: GENLIST_LIST_LINE1_COLOR; \ + rel1.to: "bottom_line2"; \ + rel2.to: "bottom_line2"; \ + rel2.relative: 1 0; \ + rel1.offset: -1 -1; \ + } \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + ) \ + GENLIST_PART_RECT("bottom_line2", \ + mouse_events: 0; \ + clip_to: "bottom_line_clip"; \ + description { state: "default" 0.0; \ + min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \ + max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \ + fixed: 0 1; \ + align: 0.5 1; \ + color: GENLIST_LIST_LINE2_COLOR; \ + rel1.to_x: "base"; \ + rel1.relative: 0 0; \ + rel2.to_x: "base"; \ + rel2.relative: 1 1; \ + rel1.offset: -1 -1; \ + } \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + ) + +#define GENLIST_PART_EXPANDED_PAD \ + part { name: "elm.swallow.pad"; \ + type: SWALLOW; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 0; \ + min: 0 0; \ + fixed: 1 0; \ + align: 0.0 0.5; \ + rel1.to: "base"; \ + rel2.to: "base"; \ + rel2.relative: 0.0 1.0; \ + } \ + } \ + +#define GENLIST_DESCRIPTION_L( left, param ) \ + description { state: "default" 0.0;\ + align: 0 0.5; \ + fixed: 1 0; \ + rel1 { \ + relative: 1 0; \ + to_x: left; \ + to_y: "base"; \ + }\ + rel2 { \ + relative: 1 1;\ + to_x: left; \ + to_y: "base"; \ + }\ + param\ + } + +#define GENLIST_DESCRIPTION_DECORATE_PADDING \ + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ + min: 0 0; \ + max: 0 0; \ + } + +#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + description { state: "decorate_reorder" 0.0; \ + inherit: "default" 0.0; \ + min: 0 0; \ + max: 0 0; \ + } + +#define GENLIST_DESCRIPTION_REORDER_PADDING \ + description { state: "reorder" 0.0; \ + inherit: "default" 0.0; \ + min: 32 0; \ + max: 32 -1; \ + } + +#define GENLIST_PART_PADDING_LEFT \ + GENLIST_PART_EXPANDED_PAD \ + GENLIST_PART_SPACER("elm.padding.left", \ + GENLIST_DESCRIPTION_L("elm.swallow.pad", \ + min: GENLIST_PADDING_SIZE_LEFT 0; \ + max: GENLIST_PADDING_SIZE_LEFT -1; \ + fixed: 1 0; \ + ) \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + ) + +#define GENLIST_PART_PADDING_RIGHT \ + GENLIST_PART_SPACER("elm.padding.right", \ + description { state: "default" 0.0; \ + min: GENLIST_PADDING_SIZE_RIGHT 0; \ + max: GENLIST_PADDING_SIZE_RIGHT -1; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + rel1.to: "base"; \ + rel2.to: "base"; \ + rel1.relative: 1 0; \ + } \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + ) + +#define GENLIST_PART_PADDING_TOP \ + GENLIST_PART_SPACER("elm.padding.top", \ + description { \ + state: "default" 0.0; \ + min: 0 GENLIST_PADDING_SIZE_TOP; \ + max: -1 GENLIST_PADDING_SIZE_TOP; \ + fixed: 0 1; \ + rel1.to: "base"; \ + rel2.to: "base"; \ + rel2.relative: 1.0 0.0; \ + align: 0.5 0.0; \ + } \ + ) + +#define GENLIST_PART_PADDING_BOTTOM \ + GENLIST_PART_SPACER("elm.padding.bottom", \ + description { state: "default" 0.0; \ + min: 0 GENLIST_PADDING_SIZE_BOTTOM; \ + max: -1 GENLIST_PADDING_SIZE_BOTTOM; \ + fixed: 0 1; \ + rel1.to: "base"; \ + rel2.to: "base"; \ + rel1.relative: 0.0 1.0; \ + align: 0.5 1.0; \ + } \ + ) + +#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \ + description { state: "default" 0.0;\ + rel1 { \ + relative: 1 1; \ + to_x: left; \ + to_y: top; \ + }\ + rel2 {\ + relative: 0 0;\ + to_x: right;\ + to_y: bottom;\ + }\ + param\ + } + +#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \ + part { name: NAME; \ + scale: 1; \ + type: TEXTBLOCK; \ + repeat_events: 1; \ + DESCRIPION \ + } + +#define GENLIST_PARAM_LISTITEM_TB \ + text { \ + min: 0 1; \ + style: "genlist_style_list_main_text_unread"; \ + } + +#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + text.style: "genlist_style_list_main_text_unread_dim"; \ + } \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + text.style: "genlist_style_list_main_text_focus"; \ + } + +#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \ + GENLIST_PART_TEXTBLOCK(NAME, \ + GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \ + min: 0 HEIGHT; \ + max: 9999 HEIGHT; \ + fixed: 1 0; \ + GENLIST_PARAM_LISTITEM_TB \ + PARAM \ + ) \ + GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \ + ) + +#define GENLIST_PART_ICON(NAME, DESCRIPION) \ + part { name: NAME; \ + scale: 1; \ + type: SWALLOW; \ + DESCRIPION \ + } + +#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \ + GENLIST_PART_SPACER(NAME, \ + description { state: "default" 0.0; \ + fixed: 1 0; \ + min: GENLIST_PADDING_SIZE_DEFAULT 0; \ + max: GENLIST_PADDING_SIZE_DEFAULT -1; \ + align: 1 0.5; \ + rel1 { \ + relative: 0 0; \ + to_x: RIGHT; \ + } \ + rel2 { \ + relative: 0 1; \ + to_x: RIGHT; \ + } \ + } \ + ) + +#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \ + description { state: "default" 0.0;\ + align: 1 0.5;\ + rel1 { \ + relative: 0 1; \ + to_x: right; \ + to_y: top; \ + }\ + rel2 {\ + relative: 0 0;\ + to_x: right;\ + to_y: bottom;\ + }\ + param\ + } + +#define GENLIST_PART_FLIP \ + GENLIST_PART_RECT("elm.flip.bg", \ + mouse_events: 0; \ + description { state: "default" 0.0;\ + color: 0 0 0 0;\ + } \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ + rel2.offset: 0 -3; \ + color: GENLIST_LIST_BG_COLOR;\ + }\ + ) \ + GENLIST_PART_SPACER("elm.flip.padding.right", \ + description { state: "default" 0.0; \ + min: 26 0; \ + max: 26 -1; \ + fixed: 1 0; \ + align: 1 0.5; \ + rel1.relative: 1 0; \ + } \ + ) \ + GENLIST_PART_ICON("elm.flip.content", \ + GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left", \ + "elm.padding.top", "elm.padding.bottom", \ + visible: 0; \ + aspect: 1 1; \ + min: 0 96; \ + ) \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + ) \ + GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \ + GENLIST_PART_ICON( "elm.flip.icon", \ + GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \ + "elm.padding.top", "elm.padding.bottom", \ + visible: 0; \ + aspect: 1 1; \ + align: 1 0.5; \ + max: 158 74; \ + ) \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + ) + +#define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \ + description { state: "default" 0.0;\ + rel1 { \ + relative: 0 0; \ + to: PART; \ + }\ + rel2 {\ + relative: 1 1;\ + to: PART; \ + }\ + PARAM\ + } + +#define GENLIST_PART_FOCUS \ + GENLIST_PART_IMAGE("focus_part", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 0; \ + image { \ + normal: BG_IMG_PATH"/00_focus.png"; \ + border: 6 6 6 6; \ + border_scale: 1; \ + } \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + ) \ + GENLIST_PART_ICON("elm.icon.focus", \ + repeat_events: 1; \ + GENLIST_DESCRIPTION_ENVELOP("focus_part", \ + fixed: 1 1; \ + ) \ + ) + +#define GENLIST_PART_FOCUS_REORDER \ + GENLIST_PART_IMAGE("focus_part_reorder", \ + mouse_events: 0; \ + GENLIST_DESCRIPTION_LR("bg_reorder_left", "bg_reorder_right", \ + visible: 0; \ + image { \ + normal: BG_IMG_PATH"/00_focus.png"; \ + border: 6 6 6 6; \ + border_scale: 1; \ + } \ + ) \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + ) + +#define GENLIST_PART_FOCUS_NORMAL \ + GENLIST_PART_FOCUS \ + GENLIST_PART_FOCUS_REORDER + +#define GENLIST_PROGRAM_DEFAULT( TARGET ) \ + program { name: "default"; \ + signal: "elm,state,default"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + TARGET \ + } \ + +#define GENLIST_PROGRAM_DISABLED( TARGET ) \ + program { name: "enabled"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "base"; \ + TARGET \ + } \ + program { name: "disabled"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "base"; \ + TARGET \ + } + +#define GENLIST_PROGRAM_FOCUS_NORMAL \ + program { name: "focused"; \ + signal: "elm,state,focused"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"bg_reorder_clip", st, 30, vl); \ + if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \ + set_state(PART:"focus_part_reorder", "focused", 0.0); \ + else \ + set_state(PART:"focus_part", "focused", 0.0); \ + } \ + } \ + program { name: "unfocused"; \ + signal: "elm,state,unfocused"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_part_reorder"; \ + target: "focus_part"; \ + } + +#define GENLIST_PROGRAM_SELECT( TARGET ) \ + program { name: "selected"; \ + signal: "elm,state,selected"; \ + source: "elm"; \ + action: STATE_SET "selected" 0.0; \ + TARGET \ + } \ + program { name: "unselected"; \ + signal: "elm,state,unselected"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + TARGET \ + } + +#define GENLIST_PROGRAM_SOUND( SRC ) \ + program { \ + name: "sound_disable"SRC; \ + signal: "elm,state,slide,active"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "base"; \ + } \ + program { \ + name: "sound_enable"SRC; \ + signal: "elm,state,slide,passive"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "base"; \ + } \ + program { name: "play_sound"SRC; \ + signal: "mouse,clicked,1"; \ + source: SRC; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"base", st, 30, vl); \ + if (strcmp(st, "disabled")) \ + play_sample("touch_sound", 1.0); \ + } \ + } + +#define GENLIST_PROGRAM_REORDER_SOUND( SRC ) \ + program { name: "play_sound"SRC; \ + signal: "mouse,clicked,1"; \ + source: SRC; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"base", st, 30, vl); \ + if (strcmp(st, "disabled")) \ + run_program(PROGRAM:"play_button_press"SRC); \ + } \ + } \ + program { name: "play_button_press"SRC; \ + action: PLAY_SAMPLE "reorder_sound" 1.0; \ + } + +#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \ + program { name: "reorder_enabled"NAME; \ + signal: "elm,state,reorder,mode_set"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"state", st, 30, vl); \ + if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \ + run_program(PROGRAM:"decorate_reorder_set"NAME); \ + } else { \ + run_program(PROGRAM:"reorder_set"NAME); \ + } \ + } \ + } \ + program { name: "reorder_disabled"NAME; \ + signal: "elm,state,reorder,mode_unset"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"state", st, 30, vl); \ + if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \ + run_program(PROGRAM:"decorate_set"NAME); \ + } else { \ + run_program(PROGRAM:"default_set"NAME); \ + } \ + } \ + } \ + program { name: "decorate_enabled_effect"NAME; \ + signal: "elm,state,decorate,enabled,effect";\ + source: "elm";\ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"state", st, 30, vl); \ + if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \ + run_program(PROGRAM:"decorate_reorder_set"NAME); \ + } else { \ + run_program(PROGRAM:"decorate_set"NAME); \ + } \ + } \ + }\ + program { name: "decorate_disabled_effect"NAME;\ + signal: "elm,state,decorate,disabled,effect";\ + source: "elm";\ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"state", st, 30, vl); \ + if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \ + run_program(PROGRAM:"reorder_set"NAME); \ + } else { \ + run_program(PROGRAM:"default_set"NAME); \ + } \ + } \ + }\ + program { name: "decorate_enabled"NAME;\ + signal: "elm,state,decorate,enabled";\ + source: "elm";\ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"state", st, 30, vl); \ + if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \ + run_program(PROGRAM:"decorate_reorder_set"NAME); \ + } else { \ + run_program(PROGRAM:"decorate_set"NAME); \ + } \ + } \ + }\ + program { name: "decorate_disabled"NAME;\ + signal: "elm,state,decorate,disabled";\ + source: "elm";\ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"state", st, 30, vl); \ + if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \ + run_program(PROGRAM:"reorder_set"NAME); \ + } else { \ + run_program(PROGRAM:"default_set"NAME); \ + } \ + } \ + } \ + program { name: "default_set"NAME; \ + action: STATE_SET "default" 0.0;\ + target: "state"; \ + TARGET \ + } \ + program { name: "decorate_set"NAME; \ + action: STATE_SET "decorate" 0.0;\ + target: "state"; \ + TARGET \ + } \ + program { name: "reorder_set"NAME; \ + action: STATE_SET "reorder" 0.0;\ + target: "state"; \ + TARGET \ + } \ + program { name: "decorate_reorder_set"NAME; \ + action: STATE_SET "decorate_reorder" 0.0;\ + target: "state"; \ + TARGET \ + } + +#define GENLIST_PROGRAM_FLIP \ + program { name: "flip_enabled"; \ + signal: "elm,state,flip,enabled"; \ + source: "elm"; \ + transition: DECELERATE 0.5; \ + action: STATE_SET "flipped" 0.0; \ + target: "elm.flip.content"; \ + target: "elm.flip.icon"; \ + } \ + program { name: "flip_disabled"; \ + signal: "elm,state,flip,disabled"; \ + source: "elm"; \ + transition: DECELERATE 0.5; \ + action: STATE_SET "default" 0.0; \ + target: "elm.flip.content"; \ + target: "elm.flip.icon"; \ + } \ + program { name: "flip_enabled_bg"; \ + signal: "elm,state,flip,enabled"; \ + source: "elm"; \ + action: STATE_SET "flipped" 0.0; \ + target: "elm.flip.bg"; \ + } \ + program { name: "flip_disabled_bg"; \ + signal: "elm,state,flip,disabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.flip.bg"; \ + } + +#define GENLIST_PROGRAMS_NORMAL( TARGET ) \ + programs { \ + GENLIST_PROGRAM_DEFAULT( TARGET \ + target: "base"; \ + target: "bg"; \ + target: "bg_clip"; \ + target: "bottom_line"; \ + target: "bottom_line2"; \ + target: "bottom_line_clip"; \ + target: "bg_reorder"; \ + target: "elm.padding.left"; \ + target: "elm.padding.right"; \ + ) \ + GENLIST_PROGRAM_DISABLED( TARGET \ + target: "bg"; \ + target: "bg_reorder"; \ + ) \ + GENLIST_PROGRAM_FOCUS_NORMAL \ + GENLIST_PROGRAM_SELECT( TARGET \ + target: "bg"; \ + target: "bg_reorder"; \ + ) \ + GENLIST_PROGRAM_SOUND("bg") \ + GENLIST_PROGRAM_REORDER_SOUND("bg_reorder") \ + GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \ + target: "bg_clip"; \ + target: "bg_reorder_clip"; \ + target: "bottom_line_clip"; \ + target: "elm.padding.left"; \ + target: "elm.padding.right"; \ + ) \ + GENLIST_PROGRAM_FLIP \ + } + +#define STYLE_TAG \ + tag: "br" "\n";\ + tag: "ps" "ps";\ + tag: "tab" "\t";\ + tag: "b" "+ font=Tizen:style=Regular"; + +#define STYLE_TAG_MATCH \ + tag: "match" GENLIST_PART_MATCH_TAG_COLOR; + +#define GENLIST_POPUP_STYLE(NAME) \ + group { \ + GENLIST_NAME(NAME"/popup/default") \ + inherit: "elm/genlist/item/"NAME"/default"; \ + parts { \ + GENLIST_PART_RECT("bg", \ + description { state: "default" 0.0; \ + color: GENLIST_LIST_BG_POPUP_COLOR; \ + } \ + ) \ + GENLIST_PART_RECT("bottom_line", \ + description { state: "default" 0.0; \ + color: GENLIST_LIST_LINE1_POPUP_COLOR; \ + } \ + ) \ + GENLIST_PART_RECT("bottom_line2", \ + description { state: "default" 0.0; \ + color: GENLIST_LIST_LINE2_POPUP_COLOR; \ + } \ + ) \ + } \ + } + +#define GENLIST_NAME(NAME) \ + name: "elm/genlist/item/"NAME; \ + +#define GENLIST_INHERIT_THUMB_CIRCLE(PARENT) \ + images { \ + image: BG_IMG_PATH/"00_list_circle_thumbnail_bg.png" COMP; \ + } \ + PART(RECT, "elm.thumb.clip", \ + description { state: "default"; \ + } \ + description { state: "flipped"; \ + color: 0 0 0 0; \ + } \ + ) \ + PART(IMAGE, "elm.thumb", \ + insert_before: "focus_part"; \ + clip_to: "elm.thumb.clip"; \ + mouse_events: 0; \ + DSC_TO("default", PARENT, \ + image.normal: BG_IMG_PATH"/00_list_circle_thumbnail_bg.png"; \ + fixed:1 1; \ + color_class: "B0211"; \ + ) \ + description { state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + color_class: "B0211P"; \ + } \ + description { state: "reorder" 0.0; \ + inherit: "default" 0.0; \ + color_class: "B0217L1"; \ + } \ + description { state: "reorder_selected" 0.0; \ + inherit: "default" 0.0; \ + color_class: "B0211P"; \ + } \ + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "decorate_reorder" 0.0; \ + inherit: "reorder" 0.0; \ + } \ + ) \ + +collections { + base_scale: 1.8; + + sounds { + sample { + name: "touch_sound" RAW; + source: "Tizen_Touch.wav"; + } + sample { + name: "reorder_sound" RAW; + source: "List_reorder.wav"; + } + } + + styles { + style { name: "genlist_style_list_main_text_unread"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=list_item wrap=word"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_main_text_unread_dim"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=list_item wrap=word"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_main_text_focus"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=list_item wrap=word"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "list_text_main"; + base: "font=Tizen:style=Regular font_size="LIST_TEXT_MAIN_SIZE" color=#000 ellipsis=1.0"; + STYLE_TAGS + } + } + + group { + GENLIST_NAME("1text_customized/default") + GENLIST_PROLOG_NORMAL + + data.item: "texts" "elm.text"; + + parts { + GENLIST_PART_BASE + GENLIST_PART_BG_NORMAL + GENLIST_PART_BOTTOM_LINE + GENLIST_PART_PADDING_LEFT + GENLIST_PART_PADDING_RIGHT + GENLIST_PART_PADDING_TOP + GENLIST_PART_PADDING_BOTTOM + + GENLIST_PART_LISTITEM_TB_("elm.text", GENLIST_HEIGHT_1LINE, + "elm.padding.left", "elm.padding.right", + "elm.padding.top", "elm.padding.bottom", + ) + + GENLIST_PART_FLIP + GENLIST_PART_FOCUS_NORMAL + } + GENLIST_PROGRAMS_NORMAL( target: "elm.text"; ) + }/*End of 1text_customized group*/ + + GENLIST_POPUP_STYLE("1text_customized") +}/*End of collections*/ +////////////Second Incoming Call Popup genlist Item customization end///////// diff --git a/res/themes/call_theme.edc b/res/themes/call_theme.edc new file mode 100755 index 0000000..86ae493 --- /dev/null +++ b/res/themes/call_theme.edc @@ -0,0 +1,3349 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "../../include/callui-view-layout-wvga.h" +#include "../callui-color-classes.h" + +#define BG_IMG_PATH "./bg" +#define ICON_IMG_PATH "./icon" + +/////VOLUMEBAR-CUSTOMIZATION START////// +#define PROGRESS_BG_IMAGE_BORDER_INC 17 17 0 0 +#define PROGRESS_BAR_IMAGE_BORDER_INC 17 17 0 0 +#define PROGRESS_BAR_IMAGE_PADDING_SIZE_INC 0 0 + +#define SLIDER_UNITS_TEXT_COLOR_INC 0 0 0 255 +#define SLIDER_INDICATOR_TEXT_COLOR_INC 255 255 255 255 +#define SLIDER_INDICATOR_TEXT_PRESSED_COLOR_INC 255 255 255 255 + +#define SLIDER_BASE_MIN_WIDTH_INC 375 +#define SLIDER_BASE_HEIGHT_INC 34 +#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC 72 +#define SLIDER_SWALLOW_BAR_HEIGHT_INC 74 +#define SLIDER_UNITS_TEXT_SIZE_INC 30 +#define SLIDER_INDICATOR_WIDTH_INC 48 +#define SLIDER_INDICATOR_HEIGHT_INC 72 +#define SLIDER_INDICATOR_MAX_WIDTH_INC 90 +#define SLIDER_INDICATOR_TEXT_SIZE_INC 40 +#define SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC 12 0 +#define SLIDER_INDICATOR_POPUP_HEIGHT_INC 108 +/////VOLUMEBAR-CUSTOMIZATION END////// + +#define BUTTON_LEFT_REL1 0.25 0.1 +#define BUTTON_LEFT_REL2 0.9 0.9 +#define BUTTON_RIGHT_REL1 0.1 0.1 +#define BUTTON_RIGHT_REL2 0.75 0.9 +#define BUTTON_CENTER_REL1 0.1 0.1 +#define BUTTON_CENTER_REL2 0.9 0.9 +#define FOCUS_BORDER 8 8 8 8 + +#define BUTTON_BOTTOM_MIN_HEIGHT 74 +#define BUTTON_MIN_WIDTH 142 +#define BUTTON_MAX_WIDTH 450 +#define BUTTON_BOTTOM_PADDING_LEFT_RIGHT 8 +#define BUTTON_ICON_HEIGHT 64 +#define BUTTON_ICON_WIDTH 64 +#define BUTTON_BOTTOM_TEXT_SIZE 33 + +#define BUTTON_BOTTOM_ICON_SIZE 104 +#define BUTTON_BOTTOM_ICON_OFFSET 16 +#define BUTTON_BOTTOM_ICON_OFFSET_L (BUTTON_BOTTOM_ICON_OFFSET/BUTTON_BOTTOM_ICON_SIZE) +#define BUTTON_BOTTOM_ICON_OFFSET_R ((BUTTON_BOTTOM_ICON_SIZE - BUTTON_BOTTOM_ICON_OFFSET)/BUTTON_BOTTOM_ICON_SIZE) + +#define STYLE_CALL_HOLD_SWAP_BTN(grp_name, img1, img2, style_name, disabled_name) \ + group { \ + name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + data.item: "item_max_size" 244; \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { \ + name: "event_blocker"; \ + type: RECT; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + min: 244 41; \ + max: 244 41; \ + fixed: 1 1; \ + align: 0 0; \ + color: 0 0 0 0; \ + } \ + } \ + part { \ + name: "seperator_1"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 3 35; \ + max: 3 35; \ + align: 0 0.5; \ + fixed: 1 1; \ + visible: 1; \ + color: 97 98 100 255; \ + } \ + } \ + part { \ + name: "seperator_2"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 3 35; \ + max: 3 35; \ + align: 1 0.5; \ + fixed: 1 1; \ + visible: 1; \ + color: 97 98 100 255; \ + } \ + } \ + part { \ + name: "icon_left_padding"; \ + type: SPACER; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + min: 25 41; \ + max: 25 41; \ + align: 0 0.5; \ + rel1 { relative: 1.0 0.0; to_x:"seperator_1"; to_y: "event_blocker";} \ + rel2 { relative: 1.0 1.0; to_x:"seperator_1"; to_y: "event_blocker";} \ + fixed: 1 1; \ + } \ + } \ + part { \ + name: "elm.swallow.content"; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 30 30; \ + max: 30 30; \ + align: 0 0; \ + aspect: 1.0 1.0; \ + fixed: 1 1; \ + rel1 { relative: 1.0 0.15; to_x:"icon_left_padding"; to_y: "event_blocker";} \ + rel2 { relative: 1.0 1.0; to_x:"icon_left_padding"; to_y: "event_blocker";} \ + image { \ + normal: img1; \ + } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: img2; \ + } \ + } \ + } \ + part { \ + name: "icon_right_padding"; \ + type: SPACER; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + min: 6 41; \ + max: 6 41; \ + align: 0 0.5; \ + fixed: 1 1; \ + rel1 { relative: 1.0 0.0; to_x:"elm.swallow.content"; to_y: "event_blocker"; } \ + rel2 { relative: 1.0 1.0; to_x:"elm.swallow.content"; to_y: "event_blocker"; } \ + } \ + } \ + part { \ + name: "elm.text"; \ + type: TEXTBLOCK; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 149 41; \ + max: 149 41; \ + align: 0 0; \ + fixed: 1 1; \ + rel1 {relative: 1.0 0.1; to_x: "icon_right_padding"; to_y: "event_blocker"; } \ + rel2 {relative: 1.0 1.0; to_x: "icon_right_padding"; to_y: "event_blocker"; } \ + text { \ + min: 1 1; \ + style: style_name; \ + } \ + visible:1; \ + } \ + description { \ + state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + text { \ + style: disabled_name; \ + } \ + } \ + description { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + text { \ + style: disabled_name; \ + } \ + } \ + description { \ + state: "ellipsis" 0.0; \ + inherit: "default" 0.0; \ + min: 149 41; \ + text.min: 0 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { \ + name: "text_right_padding"; \ + type: SPACER; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + min: 19 41; \ + max: 19 41; \ + fixed: 1 1; \ + rel1 {relative: 1.0 0.0; to: "elm.text"; } \ + rel2 {relative: 1.0 1.0; to: "event_blocker"; } \ + fixed: 0 1; \ + align: 0 0.5; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "elm.text"; \ + target: "elm.swallow.content"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"elm.text", "default", 0.0); \ + set_state(PART:"elm.swallow.content", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "elm.text"; \ + target: "elm.swallow.content"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.text"; \ + target: "elm.swallow.content"; \ + target: "disabler"; \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_INDICATOR_BG_COLOR(grp_name, r, g, b, op) \ + group { \ + name: "elm/bg/base/"grp_name; \ + parts { \ + part { name: "base"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + color: r g b op; \ + } \ + } \ + } \ + } + +#define CIRCLE_BUTTON_STYLE(grp_name, bg_img, bg_press, img, img_press, img_w, img_h) \ + group { name: "elm/button/base/"grp_name; \ + data { \ + item: "focus_highlight" "on"; \ + } \ + images { \ + image: bg_img COMP; \ + image: bg_press COMP; \ + image: img COMP; \ + image: img_press COMP; \ + }\ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image";\ + type: IMAGE; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: 40 40; \ + image { \ + normal: bg_img; \ + border: 0 0 0 0; \ + border_scale: 1; \ + } \ + color_class: "AO023"; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: bg_press; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: bg_img; \ + } \ + } \ + part { name: "focus_image"; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + rel1.to : "button_image"; \ + rel2.to : "button_image"; \ + image { \ + normal: bg_img; \ + border: 0 0 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "padding_left_top"; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + align: 0.0 0.0; \ + rel2.relative: 0.0 0.0; \ + min: 0 0; \ + fixed: 1 1; \ + } \ + } \ + part { name: "padding_right_bottom"; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + align: 1.0 1.0; \ + rel1.relative: 1.0 1.0; \ + min: 0 0; \ + fixed: 1 1; \ + } \ + } \ + part { name: "content_image"; \ + type: IMAGE; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: img_w img_h; \ + max: img_w img_h; \ + rel1 { \ + relative: 1.0 0.0; \ + to_x: "padding_left_top"; \ + } \ + rel2 { \ + relative: 0.0 1.0; \ + to_x: "padding_right_bottom"; \ + } \ + image.normal: img; \ + color_class: "AO024"; \ + aspect: 1.0 1.0; \ + aspect_preference: VERTICAL; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: img_press; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: img; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "content_image"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over3"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"button_image", "default", 0.0); \ + set_state(PART:"content_image", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "content_image"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "content_image"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "focus_image"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_image"; \ + } \ + } \ + } + +#define CIRCLE_BUTTON_WITHOUT_BG_STYLE(grp_name, img, img_press, img_w, img_h) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img COMP; \ + image: img_press COMP; \ + }\ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "padding_left_top"; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + align: 0.0 0.0; \ + rel2.relative: 0.0 0.0; \ + min: 0 0; \ + fixed: 1 1; \ + } \ + } \ + part { name: "padding_right_bottom"; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + align: 1.0 1.0; \ + rel1.relative: 1.0 1.0; \ + min: 0 0; \ + fixed: 1 1; \ + } \ + } \ + part { name: "content_image"; \ + type: IMAGE; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: img_w img_h; \ + max: img_w img_h; \ + rel1 { \ + relative: 1.0 0.0; \ + to_x: "padding_left_top"; \ + } \ + rel2 { \ + relative: 0.0 1.0; \ + to_x: "padding_right_bottom"; \ + } \ + image.normal: img; \ + aspect: 1.0 1.0; \ + aspect_preference: VERTICAL; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: img_press; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: img; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "content_image"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over3"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"content_image", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "content_image"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "content_image"; \ + target: "disabler"; \ + } \ + } \ + } + +#define STYLE_CALL_SIX_BUTTON(grp_name, img1, color_code, value, vis_value) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color_class: color_code; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "highlight"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color: 0 0 0 0; \ + } \ + description { state: "clicked" 0.0; \ + visible: 1; \ + color_class: "AO008P"; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + aspect_preference: VERTICAL; \ + color_class: "AO009";\ + visible: 1; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + color_class: "ATO005"; \ + text { \ + text_class: "ATO005"; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + text { \ + text_class: "ATO006"; \ + } \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + text { \ + text_class: "ATO006"; \ + } \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "highlight"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"highlight", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_CALL_SIX_BUTTON_DISABLED(grp_name, img1, color_code, value, vis_value) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + color_class: color_code; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color_class: color_code; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + aspect_preference: VERTICAL; \ + color: 127 127 127 77; \ + visible: 1; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + color: 127 127 127 77; \ + text { \ + text_class: "ATO006"; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"button_image", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_CALL_SIX_BUTTON_TOGGLE(grp_name, img1, color_code, value, vis_value) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color_class: color_code; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "highlight"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color: 0 0 0 0; \ + } \ + description { state: "clicked" 0.0; \ + visible: 1; \ + color_class: "AO008P"; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + aspect_preference: VERTICAL; \ + color_class: "AO009";\ + visible: 1; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + color_class: "ATO005"; \ + text { \ + text_class: "ATO005"; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + text { \ + text_class: "ATO006"; \ + } \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + text { \ + text_class: "ATO006"; \ + } \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "toggle_bar_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \ + } \ + align: 0.5 0.5; \ + rel1.relative: (STYLE_ONOFF_BAR_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_ONOFF_BAR_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + color_class: "AO100L1";\ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "highlight"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"highlight", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED(grp_name, img1, color_code, value, vis_value) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color_class: color_code; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "highlight"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color: 0 0 0 0; \ + } \ + description { state: "clicked" 0.0; \ + visible: 1; \ + color_class: "AO008P"; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + aspect_preference: VERTICAL; \ + color_class: "AO016";\ + visible: 1; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + color_class: "AO016"; \ + text { \ + text_class: "ATO005"; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + text { \ + text_class: "ATO006"; \ + } \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + text { \ + text_class: "ATO006"; \ + } \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "toggle_bar_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \ + } \ + align: 0.5 0.5; \ + rel1.relative: (STYLE_ONOFF_BAR_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_ONOFF_BAR_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + color_class: "AO100";\ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "highlight"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"highlight", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED(grp_name, img1, color_code, value, vis_value) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description { state: "default" 0.0; \ + color_class: color_code; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color_class: color_code; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + aspect_preference: VERTICAL; \ + color_class: "ATO009D"; \ + visible: 1; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \ + color_class: "ATO009D"; \ + text { \ + text_class: "ATO006"; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "toggle_bar_image"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \ + } \ + align: 0.5 0.5; \ + rel1.relative: (STYLE_ONOFF_BAR_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + rel2.relative: (STYLE_ONOFF_BAR_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \ + color_class: "AO010D";\ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"button_image", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_CALL_END_CONTACT_BUTTONS(grp_name, bg_image_color, pressed_bg_image_color, icon_top_pad, icon_height, icon_color, text_top_pad, text_height, text_color, button_height, img1) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color_class: bg_image_color; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "highlight"; \ + type: RECT; \ + mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color: 0 0 0 0; \ + } \ + description { state: "clicked" 0.0; \ + visible: 1; \ + color_class: AO010P; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: 1; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (icon_top_pad/button_height); \ + rel2.relative: 1.0 ((icon_top_pad+icon_height)/button_height); \ + aspect_preference: VERTICAL; \ + color_class: icon_color;\ + visible: 1; \ + min: icon_height icon_height; \ + max: icon_height icon_height; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1 { relative: 0.0 text_top_pad/button_height; to: "button_image";} \ + rel2 { relative: 1.0 ((text_top_pad+text_height)/button_height); to: "button_image";} \ + text { \ + text_class: text_color; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + color_class: text_color; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0 0; } \ + rel2 { relative: 1 1; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0 0; } \ + rel2 { relative: 1 1; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "highlight"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"highlight", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_MERGE_SWAP_BUTTONS(grp_name, bg_image_color, pressed_bg_image_color, icon_top_pad, icon_height, icon_color, text_top_pad, text_height, text_color, button_height, img1) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + } \ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + color_class: bg_image_color; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color_class: pressed_bg_image_color; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "content_image"; \ + description { state: "default" 0.0; \ + visible: 1; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (icon_top_pad/button_height); \ + rel2.relative: 1.0 ((icon_top_pad+icon_height)/button_height); \ + aspect_preference: VERTICAL; \ + color_class: icon_color;\ + visible: 1; \ + min: icon_height icon_height; \ + max: icon_height icon_height; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + rel1 { relative: 0.0 text_top_pad/button_height; to: "button_image";} \ + rel2 { relative: 1.0 ((text_top_pad+text_height)/button_height); to: "button_image";} \ + text { \ + text_class: text_color; \ + min: 0 1; \ + align: 0.5 0.5; \ + } \ + color_class: text_color; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0 0; } \ + rel2 { relative: 1 1; } \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0 0; } \ + rel2 { relative: 1 1; } \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"button_image", "default", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_CALL_ICON_ONLY(grp_name, img1, img2, min_x, min_y) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: min_x min_y; \ + image { \ + normal: img1; \ + border: 0 0 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: img2; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + after: button_unpress; \ + } \ + program { name: "button_click2"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: STATE_SET "clicked" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick2"; \ + signal: "mouse,clicked,1"; \ + source: "over3"; \ + action: STATE_SET "default" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick3"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + } \ + program { name: "focused"; \ + signal: "elm,action,focus"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,action,unfocus"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + } \ + } + +#define STYLE_CALL_TOGGLE_BUTTON(grp_name, bg_cc, bg_cc_p, img, img_cc, img_cc_p) \ + group { name: "elm/button/base/"grp_name; \ + data { \ + item: "focus_highlight" "on"; \ + } \ + images { \ + image: BG_IMG_PATH"/call_btn_circle.png" COMP; \ + image: BG_IMG_PATH"/vc_toggle_focus.png" COMP; \ + image: img COMP; \ + }\ + script { \ + public button_state = 0; \ + } \ + parts { \ + part { name: "button_image";\ + type: IMAGE; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1 { relative: 0.0 0.0;} \ + rel2 { relative: 1.0 1.0;} \ + image { \ + normal: BG_IMG_PATH"/call_btn_circle.png"; \ + } \ + aspect_preference: SOURCE;\ + color_class: bg_cc; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + color_class: bg_cc_p; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color_class: "AO014D"; \ + } \ + } \ + part { name: "focus_image"; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + rel1.to : "button_image"; \ + rel2.to : "button_image"; \ + image { \ + normal: BG_IMG_PATH"/vc_toggle_focus.png"; \ + border: 0 0 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "content_image"; \ + type: IMAGE; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1 { relative: BUTTON_BOTTOM_ICON_OFFSET_L CALL_QUICKPANEL_BTN_ICON_T; to: "button_image";} \ + rel2 { relative: BUTTON_BOTTOM_ICON_OFFSET_R CALL_QUICKPANEL_BTN_ICON_B; to: "button_image";} \ + image.normal: img; \ + color_class: img_cc; \ + align: 0.5 0.5; \ + aspect_preference: SOURCE; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + color_class: img_cc_p; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color_class: "ATO017"; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "content_image"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over3"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + if (get_int(button_state) != 1) \ + set_state(PART:"button_image", "default", 0.0); \ + set_state(PART:"content_image", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: RUN_PLUGIN "touch_sound"; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "content_image"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "content_image"; \ + target: "disabler"; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "focus_image"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_image"; \ + } \ + } \ + } + +collections { + base_scale: 1.8; + + plugins { + plugin { + name: "touch_sound"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; + } + } + + styles { + style { name: "normal_hold"; + base: "font=Tizen:style=Regular font_size=36 align=center color=#FAFAFAFF style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "disabled_hold"; + base: "font=Tizen:style=Regular font_size=36 align=center color=#FAFAFA80 style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "normal_unhold"; + base: "font=Tizen:style=Regular font_size=36 align=center color=#87E22DFF style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "disabled_unhold"; + base: "font=Tizen:style=Regular font_size=36 align=center color=#87E22D80 style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "normal_swap"; + base: "font=Tizen:style=Regular font_size=36 align=center color=#FAFAFAFF style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "disabled_swap"; + base: "font=Tizen:style=Regular font_size=36 align=center color=#00000080 style=shadow,bottom shadow_color=#00000066 ellipsis=1.0 wrap=none text_class=tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "end_button"; + base: "font=Tizen:style=Regular color=#FAFAFAFF text_class="ATO008""; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "end_button_disabled"; + base: "font=Tizen:style=Regular color=#FAFAFAFF text_class="ATO008""; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "end_button_disabled_visible"; + base: "font=Tizen:style=Regular color=#FAFAFAFF text_class="ATO008""; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + } + style { name: "button_bottom"; + base: "font=Tizen:style=Regular font_size="BUTTON_BOTTOM_TEXT_SIZE" align=center color=#ffffff color_class="ATO012" text_class="ATO012" ellipsis=1.0"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + tag: "b" "+ font_weight=Bold"; + } + style { name: "button_bottom_dim"; + base: "font=Tizen:style=Regular font_size="BUTTON_BOTTOM_TEXT_SIZE" align=center color=#ffffff color_class="ATO014" text_class="ATO014" ellipsis=1.0"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + tag: "b" "+ font_weight=Bold"; + } + style { name: "button_bottom_press"; + base: "font=Tizen:style=Regular font_size="BUTTON_BOTTOM_TEXT_SIZE" align=center color=#ffffff color_class="ATO013" text_class="ATO013" ellipsis=1.0"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + tag: "b" "+ font_weight=Bold"; + } + } + + +////////////// elm/button/base/default -disabled ////////////////////////////////////////////// +//////This is disabled effect for buttons of Six buttons layout and disabled effect is when making MO call//// + STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_add", ICON_IMG_PATH"/call_button_add_call.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_keypad", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_keypad_hide", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_speaker", ICON_IMG_PATH"/call_button_speaker.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_mute", ICON_IMG_PATH"/call_button_mute.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_headset", ICON_IMG_PATH"/call_button_bluetooth.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_contacts", ICON_IMG_PATH"/call_button_contacts.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_extra_vol", ICON_IMG_PATH"/call_button_extra.png", "AO008", 1, 1) + +////////////// elm/button/base/default ////////////////////////////////////////////// +//////This effect is for buttons of Six buttons layout when they are enabled////// + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_add", ICON_IMG_PATH"/call_button_add_call.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_keypad", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_keypad_hide", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_speaker", ICON_IMG_PATH"/call_button_speaker.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_speaker_on", ICON_IMG_PATH"/call_button_speaker.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_mute", ICON_IMG_PATH"/call_button_mute.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_mute_on", ICON_IMG_PATH"/call_button_mute.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_headset", ICON_IMG_PATH"/call_button_bluetooth.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_headset_on", ICON_IMG_PATH"/call_button_bluetooth.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_contacts", ICON_IMG_PATH"/call_button_contacts.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_extra_vol", ICON_IMG_PATH"/call_button_extra.png", "AO008", 1, 1) + STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_extra_vol_on", ICON_IMG_PATH"/call_button_extra.png", "AO008", 1, 1) + +// STYLE_CALL_SIX_BUTTON_PRESSED("style_call_sixbtn_keypad_pressed", ICON_IMG_PATH"/call_button_keypad.png", 1, 1); + +////////////// elm/button/base/style_call_icon_only_end ////////////////////////////////////////////// +/////////////This style is for End button in quickpanel view////////////////////////////////////////////////////////// + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_end, "AO013", "AO013P", ICON_IMG_PATH"/icon_end_call.png", "ATO017", "ATO017"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_call, "AO012P1", "AO012P", ICON_IMG_PATH"/icon_call.png", "ATO017", "ATO017"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_end_landscape, "AO013", "AO013P", ICON_IMG_PATH"/icon_end_call.png", "AO017", "ATO017"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_call_landscape, "AO012P1", "AO012P", ICON_IMG_PATH"/icon_call.png", "AO017", "ATO017"); + +////////////// elm/button/base/style_call_icon_only_qp_mute ////////////////////////////////////////////// +/////////////This style is for mute/unhold button in quickpanel view////////////////////////////////////////////////////////// + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO019", "AO019P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute_on, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO018", "AO018P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO019", "AO019P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute_on_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO018", "AO018P"); +////////////// elm/button/base/style_call_icon_only_qp_speaker ////////////////////////////////////////////// +/////////////This style is for speaker/unhold button in quickpanel view////////////////////////////////////////////////////////// + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO019", "AO019P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker_on, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO018", "AO018P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO019", "AO019P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker_on_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO018", "AO018P"); +/////////////This style is for speaker/resume button in quickpanel view////////////////////////////////////////////////////////// + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_resume, "AO001", "AO014P", ICON_IMG_PATH"/call_btn_resume.png", "AO019", "AO019P"); + STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_resume_on, "AO001", "AO014P", ICON_IMG_PATH"/call_btn_resume.png", "AO018", "AO018P"); +////////////// elm/button/base/text_only/call_end_grey ////////////////////////////////////////////// +///////////// This style is for add to contacts button in end call view////////////////////////////// + STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_create_contact_button", "AO026L1", "AO026P", 15, 60, "AO049", 79, 30, "ATO008", 130, ICON_IMG_PATH"/call_btn_end_03.png") + STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_update_contact_button", "AO026L2", "AO026P", 15, 60, "AO049", 79, 30, "ATO008", 130, ICON_IMG_PATH"/call_btn_end_02.png") + STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_view_contact_button", "AO026L1", "AO026P", 15, 60, "AO049", 79, 30, "ATO008", 130, ICON_IMG_PATH"/call_btn_end_01.png") + STYLE_MERGE_SWAP_BUTTONS("style_call_merge_call_button", "AO022", "AO022P", 0, 60, "AO026", 60, 25, "ATO028", 98, ICON_IMG_PATH"/call_extra_merge.png") + STYLE_MERGE_SWAP_BUTTONS("style_call_swap_call_button", "AO022", "AO022P", 0, 60, "AO026", 60, 25, "ATO028", 98, ICON_IMG_PATH"/call_extra_swap.png") + + //STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_contact_button_ln", A026L1, ICON_IMG_PATH"/call_btn_end_01.png") + + STYLE_INDICATOR_BG_COLOR("during_indicator", 94, 163, 10, 255); + STYLE_INDICATOR_BG_COLOR("ending_indicator", 224, 89, 37, 255); + + group { name: "elm/layout/list/B/popup/sim_select"; + parts { + part { + name: "padding.left"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel2.relative: 0.0 1.0; + min: 15 0; + max: 15 -1; + fixed: 1 0; + rel2.relative: 0.0 1.0; + align: 0.0 0.5; + } + } + part { + name: "padding.right"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: 1.0 0.0; + min: 1 0; + max: 1 -1; + fixed: 1 0; + align: 1.0 0.5; + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; to_x: "padding.left"; } + rel2 { relative: 0.0 1.0; to_x: "padding.right";} + min: 46 46; + max: 46 46; + } + } + } + } + + group { name: "elm/slider/horizontal/indicator/default"; + alias: "elm/slider/horizontal/indicator/disabled"; + alias: "elm/slider/horizontal/indicator/tap_to_drag"; + images { + image: BG_IMG_PATH"/vc_volume_slider_handle.png" COMP; + image: BG_IMG_PATH"/vc_volume_slider_handle_dim.png" COMP; + image: BG_IMG_PATH"/vc_volume_slider_handle_press.png" COMP; + } + parts { + part { name: "access"; + type: RECT; + description { state: "default" 0.0; + fixed: 1 1; + color: 0 0 0 0; + } + } + part { name: "button_events"; + type: RECT; + mouse_events: 1; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 2*SLIDER_INDICATOR_WIDTH_INC 1.5*SLIDER_INDICATOR_HEIGHT_INC; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + color: 0 0 0 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "image_left_padding"; + type: SPACER; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC; + max: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC; + rel1 { + to_x: "elm.indicator"; + relative: -1.0 0.0; + } + rel2 { + to_x: "elm.indicator"; + relative: 0.0 1.0; + } + align: 1.0 0.5; + } + } + part { name: "image_right_padding"; + type: SPACER; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC; + max: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC; + rel1 { + to_x: "elm.indicator"; + relative: 1.0 0.0; + } + rel2 { + to_x: "elm.indicator"; + relative: 2.0 1.0; + } + align: 0.0 0.5; + } + } + part { name: "button0"; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: SLIDER_INDICATOR_WIDTH_INC SLIDER_INDICATOR_HEIGHT_INC; + max: SLIDER_INDICATOR_MAX_WIDTH_INC SLIDER_INDICATOR_HEIGHT_INC; + rel1.to: "image_left_padding"; + rel2.to: "image_right_padding"; + image { + normal: BG_IMG_PATH"/vc_volume_slider_handle.png"; + border: 32 32 32 32; + border_scale: 1; + } + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + image { + normal: BG_IMG_PATH"/vc_volume_slider_handle_press.png"; + } + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + image { + normal: BG_IMG_PATH"/vc_volume_slider_handle_dim.png"; + } + } + } + part { name: "elm.indicator"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 1; + color: SLIDER_INDICATOR_TEXT_COLOR_INC; + text { + font: "Tizen:style=Medium"; + size: SLIDER_INDICATOR_TEXT_SIZE_INC; + min: 1 1; + align: 0.5 0.5; + text_class: "tizen"; + } + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: SLIDER_INDICATOR_TEXT_PRESSED_COLOR_INC; + } + } + } + programs { + program { name: "set_val_show"; + signal: "elm,state,val,show"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.indicator"; + } + program { name: "set_val_hide"; + signal: "elm,state,val,hide"; + source: "elm"; + action: STATE_SET "hide" 0.0; + target: "elm.indicator"; + } + program { name: "slider_disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "button0"; + target: "button_events"; + } + program { name: "slider_enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "button0"; + target: "button_events"; + } + program { name: "mouse_down"; + signal: "mouse,down,*"; + source: "button_events"; + action: STATE_SET "pressed" 0.0; + target: "button0"; + after: "text_pressed"; + } + program { name: "mouse_up"; + signal: "mouse,up,*"; + source: "button_events"; + action: STATE_SET "default" 0.0; + target: "button0"; + after: "text_unpressed"; + } + program { name: "text_pressed"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.indicator", st, 30, vl); + if (!strcmp(st, "default")) + set_state(PART:"elm.indicator", "pressed", 0.0); + } + } + program { name: "text_unpressed"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.indicator", st, 30, vl); + if (!strcmp(st, "pressed")) + set_state(PART:"elm.indicator", "default", 0.0); + } + } + } + } + +group { name: "elm/button/base/text_only"; + script { + public mouse_down = 0; + public multi_down = 0; + } + images { + image: BG_IMG_PATH"/core_button_bg.#.png" COMP; + } + parts { + part { name: "base"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: BUTTON_MIN_WIDTH BUTTON_BOTTOM_MIN_HEIGHT; + } + } + part { name: "bg"; + scale: 1; + description { state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + image.normal: BG_IMG_PATH"/core_button_bg.#.png"; + color_class: "AO043"; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color_class: "AO043P"; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color_class: "AO043D"; + } + } + part { name: "padding_left_top"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + rel2.relative: 0.0 0.0; + min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0; + fixed: 1 1; + } + } + part { name: "padding_right_bottom"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 1.0 1.0; + rel1.relative: 1.0 1.0; + min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0; + fixed: 1 1; + } + } + part { name: "icon_rect"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.5; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "padding_right_bottom"; + } + min: 0 0; + fixed: 1 1; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT; + fixed: 1 1; + } + description { state: "disabled" 0.0; + inherit: "visible" 0.0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + visible: 1; + align: 0.0 0.5; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "padding_right_bottom"; + } + fixed: 1 0; + } + description { state: "visible" 0.0; + fixed: 1 1; + min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT; + align: 1.0 0.5; + rel1 { + relative: 0.0 1.0; + to_x: "elm.text"; + to_y: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to_x: "elm.text"; + to_y: "padding_right_bottom"; + } + } + description { state: "icononly" 0.0; + min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT; + } + description { state: "disabled" 0.0; + inherit: "visible" 0.0; + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: BUTTON_MAX_WIDTH BUTTON_ICON_HEIGHT; + max: BUTTON_MAX_WIDTH BUTTON_ICON_HEIGHT; + rel1 { + relative: 1.0 1.0; + to_x: "icon_rect"; + to_y: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + text { + min: 1 0; + style: "button_bottom"; + } + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + text.style: "button_bottom_press"; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + text.style: "button_bottom_dim"; + } + description { state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "event"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + color: 0 0 0 0; + } + } + } + programs { + program { name: "pressed"; + signal: "mouse,down,1*"; + source: "event"; + script { + if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) + { + set_int(mouse_down, 1); + run_program(PROGRAM:"button_press1"); + } + } + } + program { name: "button_press1"; + script { + new st[31]; + new Float:vl; + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + set_state(PART:"base", "pressed", 0.0); + set_state(PART:"bg", "pressed", 0.0); + set_state(PART:"elm.text", "pressed", 0.0); + emit("elm,action,press", ""); + } + } + } + program { name: "unpressed"; + signal: "mouse,up,1"; + source: "event"; + script { + if (get_int(mouse_down) == 1) { + set_int(mouse_down, 0); + run_program(PROGRAM:"button_unpress1"); + } + } + } + program { name: "button_unpress1"; + script { + new st[31]; + new Float:vl; + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + set_state(PART:"base", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + set_state(PART:"elm.text", "default", 0.0); + emit("elm,action,unpress", ""); + } + } + } + program { name: "touch_snd"; + signal: "mouse,clicked,1"; + source: "event"; + script { + new st[31]; + new Float:vl; + if (get_int(multi_down) == 0) { + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + run_program(PROGRAM:"touch_sound"); + emit("elm,action,click", ""); + } + } + } + } + program { name: "touch_sound"; + action: RUN_PLUGIN "touch_sound"; + } + program { name: "text_show"; + signal: "elm,state,text,visible"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program { name: "text_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + action: STATE_SET "invisible" 0.0; + target: "elm.text"; + } + program { name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "bg"; + target: "elm.text"; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "elm.text"; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "multi_down"; + signal: "elm,action,multi,down"; + source: "elm"; + script { + set_int(multi_down, 1); + } + } + program { name: "multi_up"; + signal: "elm,action,multi,up"; + source: "elm"; + script { + set_int(multi_down, 0); + } + } + } + } + +group { name: "elm/button/base/call_icon_only"; + script { + public mouse_down = 0; + public multi_down = 0; + } + images { + image: BG_IMG_PATH"/core_button_bg.#.png" COMP; + } + parts { + part { name: "base"; + scale: 1; + description { state: "default" 0.0; + image.normal: BG_IMG_PATH"/core_button_bg.#.png"; + color_class: "W011E1"; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 0 ; + } + } + part { name: "bg"; + scale: 1; + description { state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + image.normal: BG_IMG_PATH"/call_btn_circle.png"; + color_class: "AO043"; + aspect_preference: SOURCE; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color_class: "AO043P"; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color_class: "AO043D"; + } + } + part { name: "padding_left_top"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + rel2.relative: 0.0 0.0; + min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0; + fixed: 1 1; + } + } + part { name: "padding_right_bottom"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 1.0 1.0; + rel1.relative: 1.0 1.0; + min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0; + fixed: 1 1; + } + } + part { name: "icon_rect"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.5; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "padding_right_bottom"; + } + min: 0 0; + fixed: 1 1; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT; + max: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT; + fixed: 1 1; + } + description { state: "disabled" 0.0; + inherit: "visible" 0.0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + visible: 1; + align: 0.5 0.5; + rel1 { + relative: BUTTON_BOTTOM_ICON_OFFSET_L 0.0; + } + rel2 { + relative: BUTTON_BOTTOM_ICON_OFFSET_R 1.0; + } + fixed: 1 0; + } + description { state: "visible" 0.0; + fixed: 1 1; + inherit: "default" 0.0; + } + description { state: "icononly" 0.0; + inherit: "visible" 0.0; + } + description { state: "disabled" 0.0; + inherit: "visible" 0.0; + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + rel1 { + relative: 1.0 1.0; + to_x: "icon_rect"; + to_y: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + text { + max: 1 0; + style: "button_bottom"; + } + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + text.style: "button_bottom_press"; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + text.style: "button_bottom_dim"; + } + description { state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "event"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + color: 0 0 0 0; + } + } + } + programs { + program { name: "pressed"; + signal: "mouse,down,1*"; + source: "event"; + script { + if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) + { + set_int(mouse_down, 1); + run_program(PROGRAM:"button_press1"); + } + } + } + program { name: "button_press1"; + script { + new st[31]; + new Float:vl; + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + set_state(PART:"base", "pressed", 0.0); + set_state(PART:"bg", "pressed", 0.0); + set_state(PART:"elm.text", "pressed", 0.0); + emit("elm,action,press", ""); + } + } + } + program { name: "unpressed"; + signal: "mouse,up,1"; + source: "event"; + script { + if (get_int(mouse_down) == 1) { + set_int(mouse_down, 0); + run_program(PROGRAM:"button_unpress1"); + } + } + } + program { name: "button_unpress1"; + script { + new st[31]; + new Float:vl; + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + set_state(PART:"base", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + set_state(PART:"elm.text", "default", 0.0); + emit("elm,action,unpress", ""); + } + } + } + program { name: "touch_snd"; + signal: "mouse,clicked,1"; + source: "event"; + script { + new st[31]; + new Float:vl; + if (get_int(multi_down) == 0) { + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + run_program(PROGRAM:"touch_sound"); + emit("elm,action,click", ""); + } + } + } + } + program { name: "touch_sound"; + action: RUN_PLUGIN "touch_sound"; + } + program { name: "text_show"; + signal: "elm,state,text,visible"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program { name: "text_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + action: STATE_SET "invisible" 0.0; + target: "elm.text"; + } + program { name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "bg"; + target: "elm.text"; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "elm.text"; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "multi_down"; + signal: "elm,action,multi,down"; + source: "elm"; + script { + set_int(multi_down, 1); + } + } + program { name: "multi_up"; + signal: "elm,action,multi,up"; + source: "elm"; + script { + set_int(multi_down, 0); + } + } + } + } +} diff --git a/res/themes/icon/call_btn_end_01.png b/res/themes/icon/call_btn_end_01.png new file mode 100755 index 0000000..4c6a356 Binary files /dev/null and b/res/themes/icon/call_btn_end_01.png differ diff --git a/res/themes/icon/call_btn_end_02.png b/res/themes/icon/call_btn_end_02.png new file mode 100755 index 0000000..ad30f30 Binary files /dev/null and b/res/themes/icon/call_btn_end_02.png differ diff --git a/res/themes/icon/call_btn_end_03.png b/res/themes/icon/call_btn_end_03.png new file mode 100755 index 0000000..2b80f2d Binary files /dev/null and b/res/themes/icon/call_btn_end_03.png differ diff --git a/res/themes/icon/call_btn_resume.png b/res/themes/icon/call_btn_resume.png new file mode 100644 index 0000000..98600e2 Binary files /dev/null and b/res/themes/icon/call_btn_resume.png differ diff --git a/res/themes/icon/call_button_add_call.png b/res/themes/icon/call_button_add_call.png new file mode 100755 index 0000000..ff411d9 Binary files /dev/null and b/res/themes/icon/call_button_add_call.png differ diff --git a/res/themes/icon/call_button_bluetooth.png b/res/themes/icon/call_button_bluetooth.png new file mode 100755 index 0000000..5be0b4a Binary files /dev/null and b/res/themes/icon/call_button_bluetooth.png differ diff --git a/res/themes/icon/call_button_contacts.png b/res/themes/icon/call_button_contacts.png new file mode 100755 index 0000000..451c0a0 Binary files /dev/null and b/res/themes/icon/call_button_contacts.png differ diff --git a/res/themes/icon/call_button_extra.png b/res/themes/icon/call_button_extra.png new file mode 100755 index 0000000..f0f2c3a Binary files /dev/null and b/res/themes/icon/call_button_extra.png differ diff --git a/res/themes/icon/call_button_headset.png b/res/themes/icon/call_button_headset.png new file mode 100755 index 0000000..dbda9d0 Binary files /dev/null and b/res/themes/icon/call_button_headset.png differ diff --git a/res/themes/icon/call_button_keypad.png b/res/themes/icon/call_button_keypad.png new file mode 100755 index 0000000..0213635 Binary files /dev/null and b/res/themes/icon/call_button_keypad.png differ diff --git a/res/themes/icon/call_button_mute.png b/res/themes/icon/call_button_mute.png new file mode 100755 index 0000000..5e11026 Binary files /dev/null and b/res/themes/icon/call_button_mute.png differ diff --git a/res/themes/icon/call_button_speaker.png b/res/themes/icon/call_button_speaker.png new file mode 100755 index 0000000..66179a6 Binary files /dev/null and b/res/themes/icon/call_button_speaker.png differ diff --git a/res/themes/icon/call_extra_call.png b/res/themes/icon/call_extra_call.png new file mode 100755 index 0000000..8ce6294 Binary files /dev/null and b/res/themes/icon/call_extra_call.png differ diff --git a/res/themes/icon/call_extra_merge.png b/res/themes/icon/call_extra_merge.png new file mode 100755 index 0000000..5c7ed29 Binary files /dev/null and b/res/themes/icon/call_extra_merge.png differ diff --git a/res/themes/icon/call_extra_swap.png b/res/themes/icon/call_extra_swap.png new file mode 100755 index 0000000..e0fc6ca Binary files /dev/null and b/res/themes/icon/call_extra_swap.png differ diff --git a/res/themes/icon/call_extra_volume.png b/res/themes/icon/call_extra_volume.png new file mode 100755 index 0000000..5cfc524 Binary files /dev/null and b/res/themes/icon/call_extra_volume.png differ diff --git a/res/themes/icon/call_onoff_bar.#.png b/res/themes/icon/call_onoff_bar.#.png new file mode 100755 index 0000000..6daf3cb Binary files /dev/null and b/res/themes/icon/call_onoff_bar.#.png differ diff --git a/res/themes/icon/icon_call.png b/res/themes/icon/icon_call.png new file mode 100644 index 0000000..cf48689 Binary files /dev/null and b/res/themes/icon/icon_call.png differ diff --git a/res/themes/icon/icon_end_call.png b/res/themes/icon/icon_end_call.png new file mode 100644 index 0000000..97eb8cb Binary files /dev/null and b/res/themes/icon/icon_end_call.png differ diff --git a/res/themes/icon/icon_mic.png b/res/themes/icon/icon_mic.png new file mode 100644 index 0000000..7ac836a Binary files /dev/null and b/res/themes/icon/icon_mic.png differ diff --git a/res/themes/icon/icon_noti_call.png b/res/themes/icon/icon_noti_call.png new file mode 100755 index 0000000..22ca0ca Binary files /dev/null and b/res/themes/icon/icon_noti_call.png differ diff --git a/res/themes/icon/icon_speaker.png b/res/themes/icon/icon_speaker.png new file mode 100644 index 0000000..fe08bbb Binary files /dev/null and b/res/themes/icon/icon_speaker.png differ diff --git a/res/themes/icon/icon_video_call.png b/res/themes/icon/icon_video_call.png new file mode 100755 index 0000000..b74b1ce Binary files /dev/null and b/res/themes/icon/icon_video_call.png differ diff --git a/res/themes/icon/icon_voice_recorder.png b/res/themes/icon/icon_voice_recorder.png new file mode 100755 index 0000000..c25f574 Binary files /dev/null and b/res/themes/icon/icon_voice_recorder.png differ diff --git a/res/themes/icon/vc_button_qp_call.png b/res/themes/icon/vc_button_qp_call.png new file mode 100755 index 0000000..d258c84 Binary files /dev/null and b/res/themes/icon/vc_button_qp_call.png differ diff --git a/res/themes/icon/vc_button_qp_call_landscape.png b/res/themes/icon/vc_button_qp_call_landscape.png new file mode 100755 index 0000000..c1a77b4 Binary files /dev/null and b/res/themes/icon/vc_button_qp_call_landscape.png differ diff --git a/res/themes/icon/vc_button_qp_call_press.png b/res/themes/icon/vc_button_qp_call_press.png new file mode 100755 index 0000000..9146e8f Binary files /dev/null and b/res/themes/icon/vc_button_qp_call_press.png differ diff --git a/res/themes/icon/vc_button_qp_call_press_landscape.png b/res/themes/icon/vc_button_qp_call_press_landscape.png new file mode 100755 index 0000000..075f371 Binary files /dev/null and b/res/themes/icon/vc_button_qp_call_press_landscape.png differ diff --git a/res/themes/icon/vc_button_qp_end_normal.png b/res/themes/icon/vc_button_qp_end_normal.png new file mode 100755 index 0000000..e1ee8b3 Binary files /dev/null and b/res/themes/icon/vc_button_qp_end_normal.png differ diff --git a/res/themes/icon/vc_button_qp_end_normal_landscape.png b/res/themes/icon/vc_button_qp_end_normal_landscape.png new file mode 100755 index 0000000..98a341b Binary files /dev/null and b/res/themes/icon/vc_button_qp_end_normal_landscape.png differ diff --git a/res/themes/icon/vc_button_qp_end_press.png b/res/themes/icon/vc_button_qp_end_press.png new file mode 100755 index 0000000..a11d950 Binary files /dev/null and b/res/themes/icon/vc_button_qp_end_press.png differ diff --git a/res/themes/icon/vc_button_qp_end_press_landscape.png b/res/themes/icon/vc_button_qp_end_press_landscape.png new file mode 100755 index 0000000..eafc92b Binary files /dev/null and b/res/themes/icon/vc_button_qp_end_press_landscape.png differ diff --git a/res/themes/icon/vc_conf_end_dim.png b/res/themes/icon/vc_conf_end_dim.png new file mode 100755 index 0000000..64a3f01 Binary files /dev/null and b/res/themes/icon/vc_conf_end_dim.png differ diff --git a/res/themes/icon/vc_conf_end_normal.png b/res/themes/icon/vc_conf_end_normal.png new file mode 100755 index 0000000..91116a1 Binary files /dev/null and b/res/themes/icon/vc_conf_end_normal.png differ diff --git a/res/themes/icon/vc_conf_end_press.png b/res/themes/icon/vc_conf_end_press.png new file mode 100755 index 0000000..fc79110 Binary files /dev/null and b/res/themes/icon/vc_conf_end_press.png differ diff --git a/res/themes/icon/vc_conf_split.png b/res/themes/icon/vc_conf_split.png new file mode 100755 index 0000000..4b1b703 Binary files /dev/null and b/res/themes/icon/vc_conf_split.png differ diff --git a/res/themes/icon/vc_conf_split_dim.png b/res/themes/icon/vc_conf_split_dim.png new file mode 100755 index 0000000..86e2a65 Binary files /dev/null and b/res/themes/icon/vc_conf_split_dim.png differ diff --git a/res/themes/icon/vc_conf_split_press.png b/res/themes/icon/vc_conf_split_press.png new file mode 100755 index 0000000..aaea502 Binary files /dev/null and b/res/themes/icon/vc_conf_split_press.png differ diff --git a/res/themes/icon/vc_quick_btn_mute_disabled.png b/res/themes/icon/vc_quick_btn_mute_disabled.png new file mode 100755 index 0000000..feb5e41 Binary files /dev/null and b/res/themes/icon/vc_quick_btn_mute_disabled.png differ diff --git a/res/themes/icon/vc_quick_btn_mute_nor.png b/res/themes/icon/vc_quick_btn_mute_nor.png new file mode 100755 index 0000000..b01cb7a Binary files /dev/null and b/res/themes/icon/vc_quick_btn_mute_nor.png differ diff --git a/res/themes/icon/vc_quick_btn_speaker_off.png b/res/themes/icon/vc_quick_btn_speaker_off.png new file mode 100755 index 0000000..e15284a Binary files /dev/null and b/res/themes/icon/vc_quick_btn_speaker_off.png differ diff --git a/res/themes/icon/vc_quick_btn_speaker_on.png b/res/themes/icon/vc_quick_btn_speaker_on.png new file mode 100755 index 0000000..8ef4511 Binary files /dev/null and b/res/themes/icon/vc_quick_btn_speaker_on.png differ diff --git a/res/themes/sounds/List_reorder.wav b/res/themes/sounds/List_reorder.wav new file mode 100755 index 0000000..5ab6958 Binary files /dev/null and b/res/themes/sounds/List_reorder.wav differ diff --git a/res/themes/sounds/Tizen_Touch.wav b/res/themes/sounds/Tizen_Touch.wav new file mode 100755 index 0000000..ef6e6ae Binary files /dev/null and b/res/themes/sounds/Tizen_Touch.wav differ diff --git a/src/callui-common.c b/src/callui-common.c new file mode 100755 index 0000000..41070e8 --- /dev/null +++ b/src/callui-common.c @@ -0,0 +1,858 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "callui-common.h" +#include "callui-view-elements.h" +#include "callui.h" +#include "callui-view-dialing.h" +#include "callui-view-single-call.h" +#include "callui-view-callend.h" +#include "callui-view-manager.h" +#include "callui-view-multi-call-list.h" +#include "callui-view-multi-call-split.h" +#include "callui-view-multi-call-conf.h" +#include "callui-view-quickpanel.h" +#include "callui-view-caller-info-defines.h" + +#define CONTACT_PKG "org.tizen.contacts" +#define PHONE_PKG "org.tizen.phone" +#define BLUETOOTH_PKG "ug-bluetooth-efl" +#define BUS_NAME "org.tizen.system.deviced" +#define OBJECT_PATH "/Org/Tizen/System/DeviceD" +#define INTERFACE_NAME BUS_NAME + +#define DEVICED_PATH_DISPLAY OBJECT_PATH"/Display" +#define DEVICED_INTERFACE_DISPLAY INTERFACE_NAME".display" +#define LCD_ON_SIGNAL_NAME "LCDOnByPowerkey" +#define METHOD_SET_LCDTIMEOUT "setlcdtimeout" + +#define TIME_BUF_LEN (16) + +#define DBUS_REPLY_TIMEOUT (120 * 1000) + +static bool g_is_headset_connected; + +#define SCREEN_WIDTH 720 +#define SCREEN_HEIGHT 1280 + +#define SYSTEM_INFO_KEY_SCREEN_WIDTH "http://tizen.org/feature/screen.width" +#define SYSTEM_INFO_KEY_SCREEN_HEIGHT "http://tizen.org/feature/screen.height" + +struct dbus_byte { + const char *data; + int size; +}; + +static Eina_Bool __callui_common_duration_timer_cb(void *data) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, ECORE_CALLBACK_CANCEL); + + if ((ad->active) && (ad->incom == NULL) && (ad->active->call_state != CM_CALL_STATE_DIALING)) { + if (ad->held) { + _callui_common_update_call_duration(ad->held->start_time); + } else { + _callui_common_update_call_duration(ad->active->start_time); + } + } + return ECORE_CALLBACK_RENEW; +} + +void _callui_common_set_call_duration(char *time_dur) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + Evas_Object *layout = NULL; + layout = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + CALLUI_RETURN_IF_FAIL(layout); + if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_SPLIT_VIEW) { + Evas_Object *one_hold_layout = elm_object_part_content_get(layout, PART_SWALLOW_CALL_INFO); + Evas_Object *active_layout = elm_object_part_content_get(one_hold_layout, PART_SWALLOW_ACTIVE_INFO); + elm_object_part_text_set(active_layout, PART_TEXT_STATUS, time_dur); + } else { + edje_object_part_text_set(_EDJ(layout), "call_txt_status", _(time_dur)); + } + + if (ad->win_quickpanel && ad->quickpanel_layout) { + _callui_view_qp_set_call_timer(ad->quickpanel_layout, time_dur); + } +} + +void _callui_common_update_call_duration(long starttime) +{ + callui_app_data_t *ad = _callui_get_app_data(); + long curr_time = 0; + struct tm loctime; + long call_time; + + curr_time = _callui_common_get_uptime(); + call_time = curr_time - starttime; + gmtime_r((const time_t *)&call_time, &loctime); + + ad->current_sec = loctime.tm_sec; + ad->current_min = loctime.tm_min; + ad->current_hour = loctime.tm_hour; + + char dur[TIME_BUF_LEN]; + if (ad->current_hour > 0) { + snprintf(dur, TIME_BUF_LEN, "%02d:%02d:%02d", ad->current_hour, ad->current_min, ad->current_sec); + } else { + snprintf(dur, TIME_BUF_LEN, "%02d:%02d", ad->current_min, ad->current_sec); + } + + _callui_common_set_call_duration(dur); +} + +Eina_Bool _callui_common_is_earjack_connected(void) +{ + int result = EINA_FALSE; + int earjack_status = -1; + + int ret = runtime_info_get_value_int(RUNTIME_INFO_KEY_AUDIO_JACK_STATUS, &earjack_status); + if (RUNTIME_INFO_ERROR_NONE == ret) { + dbg("earjack_status:[%d]", earjack_status); + if (RUNTIME_INFO_AUDIO_JACK_STATUS_UNCONNECTED != earjack_status) { + result = EINA_TRUE; + } + } else { + err("runtime_info_get_value_int failed.. Error: %d", ret); + } + + return result; +} + +void _callui_common_set_quickpanel_scrollable(Eina_Bool benable) +{ + callui_app_data_t *ad = _callui_get_app_data(); + unsigned int val[3]; + + CALLUI_RETURN_IF_FAIL(ad); + + if (benable) { + val[0] = 1; + val[1] = 1; + val[2] = 1; + } else { + val[0] = 0; + val[1] = 0; + val[2] = 0; + } + + dbg("Set Quick panel scrollable : %d", benable); + ecore_x_window_prop_card32_set(elm_win_xwindow_get(ad->win), ad->quickpanel_scroll_state, val, 3); +} + +void _callui_common_create_duration_timer() +{ + dbg("_callui_common_create_duration_timer.."); + callui_app_data_t *ad = _callui_get_app_data(); + + if (ad->duration_timer) { + ecore_timer_del(ad->duration_timer); + ad->duration_timer = NULL; + } + CALLUI_RETURN_IF_FAIL(ad->active); + + _callui_common_update_call_duration(ad->active->start_time); + ad->duration_timer = ecore_timer_add(1.0, __callui_common_duration_timer_cb, NULL); + if (ad->duration_timer == NULL) { + err("ecore_timer_add returned NULL"); + } +} + +void _callui_common_delete_duration_timer() +{ + callui_app_data_t *ad = _callui_get_app_data(); + if (ad->duration_timer) { + ecore_timer_del(ad->duration_timer); + ad->duration_timer = NULL; + } +} + +static Eina_Bool __callui_common_ending_timer_expired_cb(void *data) +{ + dbg("__callui_common_ending_timer_expired_cb"); + callui_app_data_t *ad = _callui_get_app_data(); + + ad->ending_timer = NULL; + _callvm_terminate_app_or_view_change(ad); + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool __callui_common_ending_timer_blink_cb(void *data) +{ + dbg("__callui_common_ending_timer_blink_cb"); + callui_app_data_t *ad = _callui_get_app_data(); + call_view_data_t *vd = data; + + if ((ad->blink_cnt % 2) == 0) { + _callui_show_caller_info_status(ad, _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"), 0); + } else if ((ad->blink_cnt % 2) == 1) { + _callui_show_caller_info_status(ad, _(" "), 0); + } + + ad->blink_cnt++; + if (ad->blink_cnt == 5) { + /* Run a timer of 2secs for destroying the end selection menu */ + if (ad->ending_timer) { + ecore_timer_del(ad->ending_timer); + ad->ending_timer = NULL; + } + ad->ending_timer = ecore_timer_add(2, __callui_common_ending_timer_expired_cb, NULL); + + ad->blink_timer = NULL; + return ECORE_CALLBACK_CANCEL; + } + return ECORE_CALLBACK_RENEW; +} + +void _callui_common_create_ending_timer(call_view_data_t *vd, long start_time) +{ + CALLUI_RETURN_IF_FAIL(vd); + callui_app_data_t *ad = _callui_get_app_data(); + ad->blink_cnt = 0; + if (ad->blink_timer) { + ecore_timer_del(ad->blink_timer); + ad->blink_timer = NULL; + } + ad->blink_timer = ecore_timer_add(0.5, __callui_common_ending_timer_blink_cb, vd); +} + +void _callui_common_delete_ending_timer(void) +{ + callui_app_data_t *ad = _callui_get_app_data(); + if (ad->ending_timer) { + ecore_timer_del(ad->ending_timer); + ad->ending_timer = NULL; + } + + if (ad->blink_timer) { + ecore_timer_del(ad->blink_timer); + ad->blink_timer = NULL; + } +} + +char *_callui_common_get_sim_name(void *appdata) +{ + dbg("_callui_common_get_sim_name"); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + char *sim_name = NULL; + if (ad->sim_slot == CM_SIM_SLOT_1_E) { + sim_name = vconf_get_str(VCONFKEY_SETAPPL_SIM1_NAME); + } else if (ad->sim_slot == CM_SIM_SLOT_2_E) { + sim_name = vconf_get_str(VCONFKEY_SETAPPL_SIM2_NAME); + } else { + err("Invalid option for sim slot reached !!!"); + } + info("sim name is : %s ", sim_name); + return sim_name; +} + + +static bool __callui_common_bt_device_connected_profile(bt_profile_e profile, void *user_data) +{ + dbg(".."); + if ((profile == BT_PROFILE_A2DP) || (profile == BT_PROFILE_HSP)) { + dbg("found connected bluetooth headset device"); + g_is_headset_connected = true; + return false; + } + return true; +} + + +static bool __callui_common_bt_adapter_bonded_device_cb(bt_device_info_s *device_info, void *user_data) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)user_data; + if (device_info->is_connected) { + bt_device_foreach_connected_profiles(device_info->remote_address, __callui_common_bt_device_connected_profile, ad); + } + return true; +} + + +Eina_Bool _callui_common_is_headset_conected(void) +{ + g_is_headset_connected = false; + callui_app_data_t *ad = _callui_get_app_data(); + bt_adapter_foreach_bonded_device(__callui_common_bt_adapter_bonded_device_cb, ad); + + return g_is_headset_connected; +} + +callui_idle_lock_type_t _callui_common_get_idle_lock_type(void) +{ + int lock_state = -1; + int lock_type = SETTING_SCREEN_LOCK_TYPE_NONE; + int ret = 0; + callui_idle_lock_type_t ret_val = LOCK_TYPE_UNLOCK; + + ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE, &lock_state); + if (ret < 0) { + err("system_settings_get_value_int failed with code %d", ret); + } + + ret = vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type); + if (ret < 0) { + err("vconf_get_int error"); + } + + if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) { + if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD + || lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + ret_val = LOCK_TYPE_SECURITY_LOCK; + } else { + ret_val = LOCK_TYPE_SWIPE_LOCK; + } + } else { + ret_val = LOCK_TYPE_UNLOCK; + } + + info("Lock state : %d", ret_val); + return ret_val; +} + +int _callui_common_unlock_swipe_lock(void) +{ + vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + return 0; +} + +long _callui_common_get_uptime(void) +{ + struct sysinfo info; + + if (sysinfo(&info) == 0) { + return info.uptime; + } + return 0; +} + +void _callui_common_win_set_noti_type(void *appdata, int bwin_noti) +{ + dbg("_callui_common_win_set_noti_type"); + Ecore_X_Window xwin; + callui_app_data_t *ad = (callui_app_data_t *)appdata; + + /* Get x-window */ + xwin = elm_win_xwindow_get(ad->win); + + if (bwin_noti == EINA_FALSE) { + dbg("window type: NORMAL"); + /* Set Normal window */ + ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NORMAL); + } else { + dbg("window type: NOTI-HIGH"); + /* Set Notification window */ + ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION); + /* Set Notification's priority to LEVEL_HIGH */ + utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_HIGH); + } + return; +} + +void _callui_common_get_contact_info(int person_id, call_contact_data_t *ct_info) +{ + dbg("_callui_common_get_contact_info"); + contacts_error_e err = CONTACTS_ERROR_NONE; + contacts_record_h person_record = NULL; + + if (person_id == -1) { + err("Invalid contact index!!!"); + return; + } + + if (ct_info == NULL) { + err("Empty contact info!!!"); + return; + } + + err = contacts_connect(); + if (CONTACTS_ERROR_NONE != err) { + err("contacts_connect is error : %d", err); + return; + } + + ct_info->person_id = person_id; + err = contacts_db_get_record(_contacts_person._uri, person_id, &person_record); + if (CONTACTS_ERROR_NONE != err) { + err("contacts_db_get_record error %d", err); + } else { + char *name = NULL; + char *img_path = NULL; + + /* Get display name */ + err = contacts_record_get_str(person_record, _contacts_person.display_name, &name); + if (CONTACTS_ERROR_NONE != err) { + err("contacts_record_get_str(display name) error %d", err); + } else { + g_strlcpy(ct_info->call_disp_name, name, CALLUI_DISPLAY_NAME_LENGTH_MAX); + free(name); + } + + /* Get caller id path */ + err = contacts_record_get_str(person_record, _contacts_person.image_thumbnail_path, &img_path); + if (CONTACTS_ERROR_NONE != err) { + err("contacts_record_get_str(caller id path) error %d", err); + } else { + g_strlcpy(ct_info->caller_id_path, img_path, CALLUI_IMAGE_PATH_LENGTH_MAX); + free(img_path); + } + contacts_record_destroy(person_record, TRUE); + } + + dbg("contact index:[%d]", ct_info->person_id); + dbg("display name:[%s]", ct_info->call_disp_name); + dbg("img path:[%s]", ct_info->caller_id_path); + + contacts_disconnect(); + return; +} + +void _callui_common_launch_contacts(void *appdata) +{ + dbg(".."); + app_control_h service; + + _callui_common_win_set_noti_type(appdata, EINA_FALSE); + + int ret = app_control_create(&service); + if (ret < 0) { + err("app_control_create() return error : %d", ret); + return; + } + + if (app_control_set_app_id(service, CONTACT_PKG) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_app_id() is failed"); + } else if (app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_operation() is failed"); + } else if (app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() is failed"); + } + + app_control_destroy(service); +} + +void _callui_common_launch_bt_app(void *appdata) +{ + dbg(".."); + app_control_h service; + + _callui_common_win_set_noti_type(appdata, EINA_FALSE); + + int ret = app_control_create(&service); + if (ret < 0) { + err("app_control_create() return error : %d", ret); + return; + } + + if (app_control_set_app_id(service, BLUETOOTH_PKG) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_app_id() is failed"); + } else if (app_control_set_operation(service, APP_CONTROL_OPERATION_PICK) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_operation() is failed"); + } else if (app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() is failed"); + } + + app_control_destroy(service); +} + +void _callui_common_launch_dialer(void *appdata) +{ + app_control_h service = NULL; + int ret = APP_CONTROL_ERROR_NONE; + char *uri = NULL; + + _callui_common_win_set_noti_type(appdata, EINA_FALSE); + + ret = app_control_create(&service); + if (ret < 0) { + err("app_control_create() return error : %d", ret); + return; + } + + uri = (char *)calloc(5, sizeof(char)); + if (uri == NULL) { + err("memory alloc failed"); + app_control_destroy(service); + return; + } + snprintf(uri, sizeof(char)*5, "%s", "tel:"); + + if (app_control_set_app_id(service, PHONE_PKG) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_app_id() is failed"); + } else if (app_control_set_operation(service, APP_CONTROL_OPERATION_DIAL) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_operation() is failed"); + } else if (app_control_set_uri(service, uri) != APP_CONTROL_ERROR_NONE) { + err("app_control_set_uri() is failed"); + } else if (app_control_add_extra_data(service, "launch_type", "add_call") != APP_CONTROL_ERROR_NONE) { + err("app_control_add_extra_data() is failed"); + } else if (app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() is failed"); + } + + app_control_destroy(service); + g_free(uri); + + return; +} + +void _callui_common_launch_msg_composer(void *appdata, char *number) +{ + dbg(".."); + + app_control_h service; + int ret = APP_CONTROL_ERROR_NONE; + + _callui_common_win_set_noti_type(appdata, EINA_FALSE); + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + warn("app_control_create() return error : %d", ret); + return; + } + + ret = app_control_set_app_id(service, MSG_PKG); + if (ret != APP_CONTROL_ERROR_NONE) { + warn("app_control_set_app_id() return error : %d", ret); + ret = app_control_destroy(service); + return; + } + + if (number) { + ret = app_control_add_extra_data(service, "type", "compose"); + if (ret != APP_CONTROL_ERROR_NONE) { + warn("app_control_add_extra_data() return error : %d", ret); + ret = app_control_destroy(service); + return; + } + + if (strlen(number) > 0) { + ret = app_control_add_extra_data_array(service, APP_CONTROL_DATA_TO, &number, 1); + if (ret != APP_CONTROL_ERROR_NONE) { + warn("app_control_add_extra_data() return error : %d", ret); + ret = app_control_destroy(service); + return; + } + } + } + + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + warn("app_control_send_launch_request() is failed : %d", ret); + } + + app_control_destroy(service); +} + +/* LCD api */ +void _callui_common_dvc_control_lcd_state(callui_lcd_control_t state) +{ + dbg("[%d]", state); + int result = -1; + switch (state) { + case LCD_ON: + result = device_display_change_state(DISPLAY_STATE_NORMAL); + break; + + case LCD_ON_LOCK: + result = device_display_change_state(DISPLAY_STATE_NORMAL); + result = device_power_request_lock(POWER_LOCK_DISPLAY, 0); + break; + + case LCD_ON_UNLOCK: + result = device_display_change_state(DISPLAY_STATE_NORMAL); + result = device_power_release_lock(POWER_LOCK_DISPLAY); + result = device_power_release_lock(POWER_LOCK_CPU); + break; + + case LCD_OFF_SLEEP_LOCK: + result = device_power_request_lock(POWER_LOCK_CPU, 0); + break; + + case LCD_OFF_SLEEP_UNLOCK: + result = device_power_release_lock(POWER_LOCK_CPU); + break; + + default: + break; + } + if (result != DEVICE_ERROR_NONE) + warn("error during change lcd state"); +} + +static int __callui_common_dvc_append_variant(DBusMessageIter *iter, const char *sig, char *param[]) +{ + char *ch = NULL; + int i; + int int_type; + uint64_t int64_type; + DBusMessageIter arr; + struct dbus_byte *byte; + + if (!sig || !param) + return 0; + + for (ch = (char *)sig, i = 0; *ch != '\0'; ++i, ++ch) { + switch (*ch) { + case 'i': + int_type = atoi(param[i]); + dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &int_type); + break; + case 'u': + int_type = strtoul(param[i], NULL, 10); + dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &int_type); + break; + case 't': + int64_type = atoll(param[i]); + dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT64, &int64_type); + break; + case 's': + dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, ¶m[i]); + break; + case 'a': + if ((ch+1 != NULL) && (*(ch+1) == 'y')) { + dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &arr); + byte = (struct dbus_byte *)param[i]; + dbus_message_iter_append_fixed_array(&arr, DBUS_TYPE_BYTE, &(byte->data), byte->size); + dbus_message_iter_close_container(iter, &arr); + ch++; + } + break; + default: + return -EINVAL; + } + } + return 0; +} + +static void __callui_common_dvc_dbus_reply_cb(DBusPendingCall *call, gpointer user_data) +{ + DBusMessage *reply; + DBusError derr; + + reply = dbus_pending_call_steal_reply(call); + dbus_error_init(&derr); + + if (dbus_set_error_from_message(&derr, reply)) { + err("__callui_common_dvc_dbus_reply_cb error: %s, %s", + derr.name, derr.message); + dbus_error_free(&derr); + goto done; + } + dbus_pending_call_unref(call); +done: + dbg("__callui_common_dvc_dbus_reply_cb : -"); + dbus_message_unref(reply); +} +gboolean __callui_common_dvc_invoke_dbus_method_async(const char *dest, + const char *path, + const char *interface, + const char *method, const char *sig, char *param[]) +{ + DBusConnection *conn = NULL; + DBusMessage *msg = NULL; + DBusMessageIter iter; + DBusPendingCall *c = NULL; + dbus_bool_t ret = FALSE; + int r = -1; + conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); + if (!conn) { + err("dbus bus get error"); + return FALSE; + } + + msg = dbus_message_new_method_call(dest, path, interface, method); + if (!msg) { + err("dbus_message_new_method_call(%s:%s-%s", + path, interface, method); + return FALSE; + } + dbus_message_iter_init_append(msg, &iter); + r = __callui_common_dvc_append_variant(&iter, sig, param); + if (r < 0) { + err("append_variant error : %d", r); + goto EXIT; + } + + ret = dbus_connection_send_with_reply(conn, msg, &c, DBUS_REPLY_TIMEOUT); + if (!ret) { + err("dbus_connection_send_ error (False returned)"); + } + dbus_pending_call_set_notify(c, __callui_common_dvc_dbus_reply_cb, NULL, NULL); + +EXIT: + dbus_message_unref(msg); + + return ret; +} + +void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state) +{ + int bPowerkeyMode = 0; + char str_on[32]; + char str_dim[32]; + char str_holdkey[2]; + char *ar[3]; + int ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode); + if (ret < 0) { + err("vconf_get_int failed..[%d]\n", ret); + } + + dbg("set timeout : %d, powerkeymode : %d", state, bPowerkeyMode); + if (state == LCD_TIMEOUT_SET) { + snprintf(str_on, sizeof(str_on), "%d", 10); + snprintf(str_dim, sizeof(str_dim), "%d", 20); + snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode); + } else if (state == LCD_TIMEOUT_UNSET) { + snprintf(str_on, sizeof(str_on), "%d", 0); + snprintf(str_dim, sizeof(str_dim), "%d", 0); + snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode); + } else if (state == LCD_TIMEOUT_LOCKSCREEN_SET) { /*After lock-screen comes in Connected state LCD goes to OFF in 5 secs*/ + snprintf(str_on, sizeof(str_on), "%d", 5); + snprintf(str_dim, sizeof(str_dim), "%d", 0); + snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode); + } else if (state == LCD_TIMEOUT_KEYPAD_SET) { + snprintf(str_on, sizeof(str_on), "%d", 3); + snprintf(str_dim, sizeof(str_dim), "%d", 5); + snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode); + } else { + snprintf(str_on, sizeof(str_on), "%d", 0); + snprintf(str_dim, sizeof(str_dim), "%d", 0); + snprintf(str_holdkey, sizeof(str_holdkey), "%d", 0); + } + + dbg("on(%s), dim(%s), hold(%s)", str_on, str_dim, str_holdkey); + + ar[0] = str_on; + ar[1] = str_dim; + ar[2] = str_holdkey; + + __callui_common_dvc_invoke_dbus_method_async(BUS_NAME, + DEVICED_PATH_DISPLAY, + DEVICED_INTERFACE_DISPLAY, + METHOD_SET_LCDTIMEOUT, "iii", ar); +} + +void _callui_common_reset_main_ly_text_fields(Evas_Object *contents) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(contents); + Evas_Object *caller_info = NULL; + + edje_object_part_text_set(_EDJ(contents), "call_txt_status", ""); + edje_object_part_text_set(_EDJ(contents), "txt_timer", ""); + + caller_info = elm_object_part_content_get(contents, "caller_info"); + if (caller_info) { + edje_object_part_text_set(_EDJ(caller_info), "txt_call_name", ""); + edje_object_part_text_set(_EDJ(caller_info), "txt_phone_num", ""); + } + + return; +} + +gboolean _callui_common_is_extra_volume_available(void) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, EINA_TRUE); + cm_audio_state_type_e snd_path = CM_AUDIO_STATE_NONE_E; + + cm_get_audio_state(ad->cm_handle, &snd_path); + dbg("sound path : %d", snd_path); + + if ((snd_path == CM_AUDIO_STATE_BT_E) + || ((snd_path == CM_AUDIO_STATE_EARJACK_E) + && (_callui_common_is_earjack_connected() == EINA_TRUE))) { + return EINA_FALSE; + } else { + return EINA_TRUE; + } +} + +gboolean _callui_common_is_answering_mode_on(void) +{ + gboolean bAnswerMode = EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + + ret = vconf_get_bool(VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, &bAnswerMode); + if (0 == ret) { + dbg("bAnswerMode = [%d] \n", bAnswerMode); + } else { + dbg("vconf_get_int failed..[%d]\n", ret); + } + + return bAnswerMode; +} + +gboolean _callui_common_is_powerkey_mode_on(void) +{ + gboolean bPowerkeyMode = EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + + ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode); + if (0 == ret) { + dbg("bPowerkeyMode = [%d] \n", bPowerkeyMode); + } else { + dbg("vconf_get_int failed..[%d]\n", ret); + } + + return bPowerkeyMode; +} + +int _callui_common_get_scaled_width(int width) +{ + int systemWidth = 0; + int scaledWidth = 0; + int err = system_info_get_platform_int(SYSTEM_INFO_KEY_SCREEN_WIDTH, &systemWidth); + if (err != SYSTEM_INFO_ERROR_NONE) { + err("system_info_get_platform_int error %d", err); + return width; + } + scaledWidth = (systemWidth * width) / SCREEN_WIDTH; + return scaledWidth; +} + +int _callui_common_get_scaled_height(int height) +{ + int systemHeight = 0; + int scaledHeight = 0; + int err = system_info_get_platform_int(SYSTEM_INFO_KEY_SCREEN_HEIGHT, &systemHeight); + if (err != SYSTEM_INFO_ERROR_NONE) { + err("system_info_get_platform_int error %d", err); + return height; + } + scaledHeight = (systemHeight * height) / SCREEN_HEIGHT; + return scaledHeight; +} diff --git a/src/callui-keypad.c b/src/callui-keypad.c new file mode 100755 index 0000000..7ce8ba4 --- /dev/null +++ b/src/callui-keypad.c @@ -0,0 +1,441 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include "callui.h" +#include "callui-keypad.h" +#include "callui-common.h" +#include "callui-view-elements.h" +#include "callui-view-layout-wvga.h" +#include "callui-view-caller-info-defines.h" + +#define VC_KEYPAD_ENTRY_FONT "%s" +#define VC_KEYAD_ENTRY_STYLE "DEFAULT='align=center color=#ffffffff font_size=76'" +#define KEYPAD_ENTRY_DISP_DATA_SIZE 1024 + +typedef struct _keypad_data_t { + Evas_Object *keypad_ly; + Evas_Object *entry; + int data_len; + char entry_disp_data[KEYPAD_ENTRY_DISP_DATA_SIZE+1]; + Eina_Bool bkeypad_show; + Ecore_Timer *anim_timer; + + Evas_Object *gesture_ly; + int gesture_start_y; + int gesture_momentum_y; +} keypad_data_t; + +static keypad_data_t *gkeypad_data; + +static Evas_Object *__callui_keypad_create_contents(callui_app_data_t *ad, char *grp_name) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL); + Evas_Object *eo = NULL; + + /* load edje */ + eo = _callui_load_edj(ad->win, EDJ_NAME, grp_name); + if (eo == NULL) + return NULL; + + return eo; +} + +static keypad_data_t *__callui_keypad_memory_alloc() +{ + dbg(".."); + + CALLUI_RETURN_VALUE_IF_FAIL(gkeypad_data == NULL, gkeypad_data); + + gkeypad_data = (keypad_data_t *) calloc(1, sizeof(keypad_data_t)); + if (gkeypad_data == NULL) { + err("keydata structure not allocated"); + return NULL; + } + memset(gkeypad_data, 0x00, sizeof(keypad_data_t)); + gkeypad_data->bkeypad_show = EINA_FALSE; + + return gkeypad_data; +} + +static void __callui_keypad_back_cb(void *data, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + + _callui_keypad_hide_layout(ad); +} + +static Evas_Event_Flags __callui_keypad_arrow_flick_gesture_event_cb(void *data, void *event_info) +{ + dbg("Flick_Gesture Move"); + Elm_Gesture_Line_Info *info = (Elm_Gesture_Line_Info *)event_info; + keypad_data_t *pkeypad_data = gkeypad_data; + + dbg("*********************************************"); + dbg("info->angle = %lf", info->angle); + dbg("info->momentum.mx = %d, info->momentum.my = %d", info->momentum.mx, info->momentum.my); + dbg("info->momentum.n = %d", info->momentum.n); + dbg("info->momentum.tx = %d, info->momentum.ty = %d", info->momentum.tx, info->momentum.ty); + dbg("info->momentum.x1 = %d, info->momentum.x2 = %d", info->momentum.x1, info->momentum.x2); + dbg("info->momentum.y1 = %d, info->momentum.y2 = %d", info->momentum.y1, info->momentum.y2); + dbg("*********************************************"); + + pkeypad_data->gesture_momentum_y = info->momentum.my; + return EVAS_EVENT_FLAG_NONE; +} + +static void __callui_keypad_arrow_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + Evas_Event_Mouse_Move *ev = event_info; + + pkeypad_data->gesture_start_y = ev->cur.canvas.y; + + return; +} + +static void __callui_keypad_arrow_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + keypad_data_t *pkeypad_data = gkeypad_data; + Evas_Event_Mouse_Move *ev = event_info; + + if (((ev->cur.canvas.y-pkeypad_data->gesture_start_y) > 100) && (pkeypad_data->gesture_momentum_y > 500)) { + info("Hide keypad!!"); + _callui_keypad_hide_layout(ad); + } + + return; +} + +static void __callui_keypad_create_gesture_layer(void *data) +{ + dbg(".."); + + keypad_data_t *pkeypad_data = gkeypad_data; + Evas_Object *sweep_area = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + + if (pkeypad_data->gesture_ly) { + evas_object_del(pkeypad_data->gesture_ly); + pkeypad_data->gesture_ly = NULL; + } + + sweep_area = _callui_edje_object_part_get(pkeypad_data->keypad_ly, "sweep_area"); + pkeypad_data->gesture_ly = elm_gesture_layer_add(pkeypad_data->keypad_ly); + if (FALSE == elm_gesture_layer_attach(pkeypad_data->gesture_ly, sweep_area)) { + err("elm_gesture_layer_attach failed !!"); + evas_object_del(pkeypad_data->gesture_ly); + } else { + evas_object_event_callback_add(sweep_area, EVAS_CALLBACK_MOUSE_DOWN, __callui_keypad_arrow_mouse_down_cb, ad); + evas_object_event_callback_add(sweep_area, EVAS_CALLBACK_MOUSE_UP, __callui_keypad_arrow_mouse_up_cb, ad); + elm_gesture_layer_cb_set(pkeypad_data->gesture_ly, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __callui_keypad_arrow_flick_gesture_event_cb, ad); + } + + return; +} + + +Eina_Bool _callui_keypad_get_show_status(void) +{ + keypad_data_t *pkeypad_data = gkeypad_data; + CALLUI_RETURN_VALUE_IF_FAIL(pkeypad_data != NULL, EINA_FALSE); + + return pkeypad_data->bkeypad_show; +} + +static void __callui_keypad_set_show_status(Eina_Bool bkeypad_status) +{ + keypad_data_t *pkeypad_data = gkeypad_data; + + CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL); + + dbg("Set show status(%d)", bkeypad_status); + pkeypad_data->bkeypad_show = bkeypad_status; +} + +static void __callui_keypad_on_key_down(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + dbg("__callui_keypad_on_key_down"); + char *entry_dest = NULL; + char *keypad_source = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + keypad_data_t *pkeypad_data = gkeypad_data; + CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL); + char *entry_str = NULL; + char *disp_str = NULL; + + if (source == NULL || strlen(source) == 0) { + err("Source value is not valid"); + return; + } + + if (strcmp(source, "star") == 0) { + keypad_source = "*"; + } else if (strcmp(source, "sharp") == 0) { + keypad_source = "#"; + } else { + keypad_source = (char *)source; + } + + cm_start_dtmf(ad->cm_handle, keypad_source[0]); + + const char *text = elm_entry_entry_get(pkeypad_data->entry); + disp_str = elm_entry_markup_to_utf8(text); + + if (disp_str == NULL) { + err("disp_str is null"); + return; + } else if (strlen(disp_str) == 0) { + entry_dest = calloc(1, 2); + if (entry_dest == NULL) { + err("entry_dest allocation fail"); + free(disp_str); + return; + } + snprintf(entry_dest, 2, "%c", keypad_source[0]); + } else { + int buf_size = strlen(disp_str) + 2; + entry_dest = calloc(1, buf_size); + if (entry_dest == NULL) { + err("entry_dest allocation fail"); + free(disp_str); + return; + } + snprintf(entry_dest, buf_size, "%s%c", disp_str, keypad_source[0]); + } + + free(disp_str); + + entry_str = g_strdup_printf(VC_KEYPAD_ENTRY_FONT, entry_dest); + if (entry_str) { + elm_object_text_set(pkeypad_data->entry, entry_str); + g_free(entry_str); + } + elm_entry_cursor_end_set(pkeypad_data->entry); + + if (entry_dest) { + free(entry_dest); + entry_dest = NULL; + } +} + +static void __callui_keypad_on_key_up(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + + cm_stop_dtmf(ad->cm_handle); +} + +static Evas_Object *__callui_keypad_create_single_line_scrolled_entry(void *content) +{ + Evas_Object *en; + Elm_Entry_Filter_Accept_Set digits_filter_data; + + if (content == NULL) { + err("content is NULL!"); + return NULL; + } + + en = elm_entry_add(content); + elm_entry_editable_set(en, EINA_FALSE); + elm_entry_scrollable_set(en, EINA_TRUE); + + elm_entry_select_all(en); + elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); + + elm_scroller_bounce_set(en, EINA_FALSE, EINA_FALSE); + elm_entry_line_wrap_set(en, ELM_WRAP_WORD); + elm_entry_input_panel_enabled_set(en, EINA_FALSE); + elm_entry_single_line_set(en, EINA_TRUE); + + digits_filter_data.accepted = "0123456789+*#"; + digits_filter_data.rejected = NULL; + elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data); + + elm_entry_context_menu_disabled_set(en, EINA_TRUE); + elm_entry_cursor_end_set(en); + evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_entry_text_style_user_push(en, VC_KEYAD_ENTRY_STYLE); + + evas_object_show(en); + + return en; +} + +static void __callui_keypad_create_entry(void *data) +{ + dbg(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + Evas_Object *current_ly = _callvm_get_view_layout(ad); + + CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL); + + if (!pkeypad_data->entry) { + dbg(".."); + pkeypad_data->entry = __callui_keypad_create_single_line_scrolled_entry(ad->win_conformant); + memset(pkeypad_data->entry_disp_data, 0x0, sizeof(pkeypad_data->entry_disp_data)); + pkeypad_data->data_len = 0; + + elm_object_signal_callback_add(pkeypad_data->keypad_ly, "pad_down", "*", __callui_keypad_on_key_down, ad); + elm_object_signal_callback_add(pkeypad_data->keypad_ly, "pad_up", "*", __callui_keypad_on_key_up, ad); + + if (current_ly) { + edje_object_part_swallow(_EDJ(current_ly), PART_SWALLOW_TEXTBLOCK_AREA, pkeypad_data->entry); + } + } +} + +static Eina_Bool __down_arrow_animation_timerout_cb(void *data) +{ + keypad_data_t *pkeypad_data = (keypad_data_t *)data; + + if (pkeypad_data->keypad_ly) { + elm_object_signal_emit(pkeypad_data->keypad_ly, "start_animation", "down_arrow"); + } + + return ECORE_CALLBACK_RENEW; +} + +void _callui_keypad_show_layout(void *app_data) +{ + dbg(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + CALLUI_RETURN_IF_FAIL(pkeypad_data); + callui_app_data_t *ad = (callui_app_data_t *)app_data; + CALLUI_RETURN_IF_FAIL(ad); + Evas_Object *view_ly = _callvm_get_view_layout(ad); + CALLUI_RETURN_IF_FAIL(view_ly); + + elm_object_signal_emit(pkeypad_data->keypad_ly, "SHOW", "KEYPADBTN"); + elm_object_signal_emit(view_ly, "SHOW", "KEYPAD_BTN"); + + /* Start animation */ + elm_object_signal_emit(pkeypad_data->keypad_ly, "init", "down_arrow"); + elm_object_signal_emit(pkeypad_data->keypad_ly, "start_animation", "down_arrow"); + + __callui_keypad_set_show_status(EINA_TRUE); + /* change LCD timeout duration */ + _callui_lock_screen_stop_timer(); + _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_KEYPAD_SET); + + eext_object_event_callback_add(view_ly, EEXT_CALLBACK_BACK, __callui_keypad_back_cb, ad); + + if (pkeypad_data->anim_timer) { + ecore_timer_del(pkeypad_data->anim_timer); + pkeypad_data->anim_timer = NULL; + } + pkeypad_data->anim_timer = ecore_timer_add(2.0, __down_arrow_animation_timerout_cb, pkeypad_data); +} + +void _callui_keypad_hide_layout(void *app_data) +{ + dbg(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + CALLUI_RETURN_IF_FAIL(pkeypad_data); + callui_app_data_t *ad = (callui_app_data_t *)app_data; + CALLUI_RETURN_IF_FAIL(ad); + Evas_Object *view_ly = _callvm_get_view_layout(ad); + CALLUI_RETURN_IF_FAIL(view_ly); + + elm_object_signal_emit(pkeypad_data->keypad_ly, "HIDE", "KEYPADBTN"); + elm_object_signal_emit(view_ly, "HIDE", "KEYPAD_BTN"); + + __callui_keypad_set_show_status(EINA_FALSE); + _callui_lock_screen_start_timer(); + _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET); + + eext_object_event_callback_del(view_ly, EEXT_CALLBACK_BACK, __callui_keypad_back_cb); + + if (pkeypad_data->anim_timer) { + ecore_timer_del(pkeypad_data->anim_timer); + pkeypad_data->anim_timer = NULL; + } +} + +void _callui_keypad_create_layout(void *appdata) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + CALLUI_RETURN_IF_FAIL(ad); + Evas_Object *parent_ly = _callvm_get_view_layout(ad); + CALLUI_RETURN_IF_FAIL(parent_ly); + + _callui_keypad_delete_layout(ad); + + keypad_data_t *pkeypad_data = __callui_keypad_memory_alloc(); + CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL); + + if (!pkeypad_data->keypad_ly) { + dbg(".."); + pkeypad_data->keypad_ly = __callui_keypad_create_contents(ad, GRP_KEYPAD); + + __callui_keypad_create_gesture_layer(ad); + + elm_object_part_content_set(parent_ly, PART_SWALLOW_KEYPAD, pkeypad_data->keypad_ly); + } + + __callui_keypad_create_entry(ad); + memset(pkeypad_data->entry_disp_data, '\0', KEYPAD_ENTRY_DISP_DATA_SIZE+1); + pkeypad_data->data_len = 0; + elm_entry_entry_set(pkeypad_data->entry, ""); + elm_entry_cursor_end_set(pkeypad_data->entry); +} + +void _callui_keypad_delete_layout(void *appdata) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + CALLUI_RETURN_IF_FAIL(ad); + keypad_data_t *pkeypad_data = gkeypad_data; + CALLUI_RETURN_IF_FAIL(pkeypad_data); + Evas_Object *parent_ly = _callvm_get_view_layout(ad); + CALLUI_RETURN_IF_FAIL(parent_ly); + + elm_object_signal_emit(parent_ly, "HIDE", "KEYPAD_AREA"); + + if (pkeypad_data->entry) { + edje_object_part_unswallow(_EDJ(pkeypad_data->keypad_ly), pkeypad_data->entry); + evas_object_del(pkeypad_data->entry); + pkeypad_data->entry = NULL; + } + + if (pkeypad_data->anim_timer) { + ecore_timer_del(pkeypad_data->anim_timer); + pkeypad_data->anim_timer = NULL; + } + + if (pkeypad_data->keypad_ly) { + edje_object_part_unswallow(_EDJ(parent_ly), pkeypad_data->keypad_ly); + evas_object_del(pkeypad_data->keypad_ly); + pkeypad_data->keypad_ly = NULL; + } + + g_free(pkeypad_data); + pkeypad_data = NULL; + gkeypad_data = NULL; +} + diff --git a/src/callui-view-active-incoming-call.c b/src/callui-view-active-incoming-call.c new file mode 100644 index 0000000..d5dae04 --- /dev/null +++ b/src/callui-view-active-incoming-call.c @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui-view-incoming-lock.h" +#include "callui-view-active-incoming-call.h" +#include "callui-view-manager.h" +#include "callui-view-layout-wvga.h" +#include "callui-view-elements.h" +#include "callui-common.h" +#include +#include + +#define DURING_ICON "call_button_icon_03.png" +#define REJECT_ICON "call_button_icon_04.png" +#define END_ICON "call_button_icon_01.png" +#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data" + +static void __callui_view_active_incoming_call_effect_close_active(); +static void __callui_view_active_incoming_call_reject_msg_create_glist(void *data); +typedef void (*button_cb)(void *data, Evas *evas, Evas_Object *obj, void *event_info); + +static void __callui_view_active_incoming_call_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + __callui_view_active_incoming_call_effect_close_active(); +} + +static void __callui_view_active_incoming_call_effect_close_active() +{ + callui_app_data_t *ad = _callui_get_app_data(); + if (ad && ad->win) { + int xpos = 0; + int ypos = 0; + int width = 0; + int height = 0; + int transit_y = 0; + Evas_Object *screen_ly = ad->win; + Elm_Transit *transit = elm_transit_add(); + elm_transit_object_add(transit, screen_ly); + evas_object_geometry_get(screen_ly, &xpos, &ypos, &width, &height); + transit_y = -(height + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + elm_transit_duration_set(transit, 0.05); + elm_transit_objects_final_state_keep_set(transit, EINA_TRUE); + elm_transit_go(transit); + } +} + +static void __callui_view_active_incoming_call_reject_message_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + call_view_data_t *vd = (call_view_data_t *)data; + if (data) { + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) vd->priv; + callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data"); + if (ad) { + evas_object_resize(ad->win, ad->root_w, ad->root_h); + } + _callui_view_incoming_lock_reject_msg_create_call_setting_handle(vd); + __callui_view_active_incoming_call_reject_msg_create_glist(vd); + elm_object_signal_emit(priv->contents, "big_main_ly", "main_incoming_active_call"); + } +} + +static void __callui_view_active_incoming_call_reject_ms_back_cb(void *data, Evas_Object *obj, void *event_info) +{ + if (data) { + incoming_lock_view_priv_t *prev = (incoming_lock_view_priv_t *) data; + callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data"); + if (ad) { + evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT)); + } + elm_object_signal_emit(prev->contents, "small_main_ly", "main_incoming_active_call"); + evas_object_del(prev->msg_glist); + } +} + +static void __callui_view_active_incoming_call_reject_msg_create_glist(void *data) +{ + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_IF_FAIL(vd); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + CALLUI_RETURN_IF_FAIL(priv); + callui_app_data_t *ad = _callui_get_app_data(); + Elm_Object_Item *item = NULL; + int msg_cnt = 0; + int index = 0; + + if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) { + warn("vconf_get_int failed."); + } + + priv->reject_msg_gl = _callui_load_edj(ad->win, EDJ_NAME, "reject_msg_ly"); + elm_object_part_content_set(priv->contents, "swallow.reject_msg", priv->reject_msg_gl); + priv->msg_glist = elm_genlist_add(priv->contents); + CALLUI_RETURN_IF_FAIL(priv->msg_glist); + elm_genlist_realization_mode_set(priv->msg_glist, EINA_TRUE); + evas_object_data_set(priv->reject_msg_gl, "app_data", ad); + eext_object_event_callback_add(priv->reject_msg_gl, EEXT_CALLBACK_BACK, __callui_view_active_incoming_call_reject_ms_back_cb, (void *)priv); + + evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd); + evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(priv->reject_msg_gl, "swallow.content", priv->msg_glist); + + priv->itc_reject_msg = _callui_view_incoming_lock_create_item_class(); + + if (msg_cnt == 0) { + index = -1; + item = _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index); + if (item) { + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + } + } else { + for (index = 0; index < msg_cnt; index++) { + _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index); + } + } + elm_genlist_item_class_free(priv->itc_reject_msg); + priv->itc_reject_msg = NULL; + + _callui_view_incoming_lock_create_reject_msg_button(priv->reject_msg_gl, "swallow.button", data); + + elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE); + evas_object_size_hint_min_set(priv->msg_glist, ad->root_w, 0); + evas_object_size_hint_max_set(priv->msg_glist, ad->root_w, ELM_SCALE_SIZE(MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT * msg_cnt)); + evas_object_show(priv->reject_msg_gl); + evas_object_show(priv->msg_glist); +} + +static void __callui_view_active_incoming_call_app_control_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + char *key = (char *) data; + if (key == NULL) { + return; + } + app_control_h app_control = NULL; + if (app_control_create(&app_control) != APP_CONTROL_ERROR_NONE) { + dbg("app_control_create() is failed"); + } else if (app_control_set_app_id(app_control, "org.tizen.call-ui") != APP_CONTROL_ERROR_NONE) { + dbg("app_control_set_app_id() is failed"); + } else if (app_control_set_operation(app_control, key) != APP_CONTROL_ERROR_NONE) { + dbg("app_control_set_operation() is failed"); + } else if (app_control_send_launch_request(app_control, NULL, NULL) != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() is failed"); + } + + app_control_destroy(app_control); +} + +int _callui_view_active_incoming_call_oncreate(call_view_data_t *view_data, void *appdata) +{ + callui_app_data_t *ad = (callui_app_data_t *)appdata; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) view_data->priv; + + priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (priv->contents) { + priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info"); + if (priv->caller_info) { + evas_object_del(priv->caller_info); + priv->caller_info = NULL; + } + + Evas_Object *btn_ly = elm_object_part_content_get(priv->contents, "btn_region"); + if (btn_ly) { + evas_object_del(btn_ly); + btn_ly = NULL; + } + evas_object_del(priv->contents); + elm_win_alpha_set(ad->win, EINA_TRUE); + priv->contents = NULL; + } + if (ad->main_ly) { + evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT)); + priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (!priv->contents) { + priv->contents = _callui_load_edj(ad->main_ly, EDJ_NAME, "main_incoming_active_call"); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + } + evas_object_show(priv->contents); + evas_object_show(ad->main_ly); + } + return 0; +} + +void _callui_view_active_incoming_call_create_button(callui_app_data_t *ad, char *icon_name, char *part, button_cb func, void * data, void * data_bt_cb) +{ + incoming_lock_view_priv_t * priv = (incoming_lock_view_priv_t *)data; + if (priv) { + Evas_Object *button_call = elm_layout_add(priv->contents); + if (button_call) { + elm_layout_file_set(button_call, EDJ_NAME, "main_button_ly"); + Evas_Object *icon = elm_image_add(button_call); + elm_image_file_set(icon, EDJ_NAME, icon_name); + elm_object_part_content_set(button_call, "swallow.icon", icon); + elm_object_part_content_set(priv->contents, part, button_call); + evas_object_data_set(button_call, "app_data", ad); + evas_object_event_callback_add(button_call, EVAS_CALLBACK_MOUSE_UP, func, data_bt_cb); + } + } +} + +void _callui_view_active_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd) +{ + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + call_data_t *call_data = NULL; + + call_data = ad->incom; + if (call_data == NULL) { + err("call data is null"); + return; + } + elm_object_signal_emit(priv->contents, "small_main_ly", "main_incoming_active_call"); + + _callui_view_active_incoming_call_create_button(ad, DURING_ICON, "swallow.call_button", + __callui_view_active_incoming_call_app_control_cb, priv, (void *)APP_CONTROL_OPERATION_DURING_CALL); + _callui_view_active_incoming_call_create_button(ad, REJECT_ICON, "swallow.rj_msg_button", + __callui_view_active_incoming_call_reject_message_btn_cb, priv, (void *)vd); + _callui_view_active_incoming_call_create_button(ad, END_ICON, "swallow.end_call_button", + __callui_view_active_incoming_call_app_control_cb, priv, (void *)APP_CONTROL_OPERATION_END_CALL); + + Evas_Object *swipe_button = elm_layout_add(priv->contents); + if (swipe_button) { + elm_layout_file_set(swipe_button, EDJ_NAME, "swipe_call_button_ly"); + evas_object_event_callback_add(swipe_button, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_active_incoming_call_mouse_move_cb, (void *)priv); + evas_object_data_set(swipe_button, "app_data", ad); + } + elm_object_part_content_set(priv->contents, "swallow.swipe_button", swipe_button); + + char *call_name = call_data->call_ct_info.call_disp_name; + char *call_number = NULL; + if (call_data->call_disp_num[0] != '\0') { + call_number = call_data->call_disp_num; + } else { + call_number = call_data->call_num; + } + char *file_path = call_data->call_ct_info.caller_id_path; + + if (!(call_name && call_name[0] != '\0') && !(call_number && call_number[0] != '\0')) { + elm_object_signal_emit(priv->contents, "big_buttons", "main_incoming_active_call"); + elm_object_part_text_set(priv->contents, "text.contact_name", _("IDS_CALL_BODY_UNKNOWN")); + } else if (!(call_name && call_name[0] != '\0')) { + elm_object_signal_emit(priv->contents, "small_buttons", "main_incoming_active_call"); + elm_object_part_text_set(priv->contents, "text.contact_name", call_number); + } else { + elm_object_signal_emit(priv->contents, "small_buttons", "main_incoming_active_call"); + elm_object_part_text_set(priv->contents, "text.contact_name", call_name); + elm_object_part_text_set(priv->contents, "text.contact_number", call_number); + } + + if (strcmp(file_path, "default") != 0) { + _callui_show_caller_id(priv->contents, file_path, TRUE); + } else { + elm_object_signal_emit(priv->contents, "show_image", "main_incoming_active_call"); + } +} diff --git a/src/callui-view-callend.c b/src/callui-view-callend.c new file mode 100644 index 0000000..2501748 --- /dev/null +++ b/src/callui-view-callend.c @@ -0,0 +1,562 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui.h" +#include "callui-view-callend.h" +#include "callui-view-elements.h" +#include "callui-common.h" +#include + +#define CALLUI_VIEW_CALLEND_LAYOUT_ID "ENDCALLVIEW" +struct callui_endcall_view_priv { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *caller_id; + Evas_Object *btn_ly; + Evas_Object *ic; /* small size call image */ + Eina_Bool bshowbutton; + char caller_id_path[CALLUI_IMAGE_PATH_LENGTH_MAX]; + char call_number[CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX]; + int contact_person_id; + int call_end_type; + bool is_emergency_call; +}; + +#define APP_CONTROL_DATA_PHONE "http://tizen.org/appcontrol/data/phone" +#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact" +#define APP_CONTROL_OPERATION_ADD "http://tizen.org/appcontrol/operation/add" +#define APP_CONTROL_DATA_ITEM_ID "http://tizen.org/appcontrol/data/item_id" +#define CONTACT_NUMBER_BUF_LEN 32 +#define BG_COLOR_ALPHA 120 + +static int __callui_view_callend_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3); +static int __callui_view_callend_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_callend_onhide(call_view_data_t *view_data); +static int __callui_view_callend_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_callend_ondestroy(call_view_data_t *view_data); +static int __callui_view_callend_onrotate(call_view_data_t *view_data); +static void __callui_view_callend_create_screen(callui_app_data_t *ad, Evas_Object *eo, void *data); +static Evas_Object *__callui_view_callend_create_contents(void *data, char *grp_name); + +call_view_data_t *_callui_view_callend_new(callui_app_data_t *ad) +{ + static call_view_data_t callend_view = { + .type = VIEW_ENDCALL_VIEW, + .layout = NULL, + .onCreate = __callui_view_callend_oncreate, + .onUpdate = __callui_view_callend_onupdate, + .onHide = __callui_view_callend_onhide, + .onShow = __callui_view_callend_onshow, + .onDestroy = __callui_view_callend_ondestroy, + .onRotate = __callui_view_callend_onrotate, + .priv = NULL, + }; + + callend_view.priv = calloc(1, sizeof(callui_endcall_view_priv_t)); + + if (!callend_view.priv) { + err("ERROR!!!!!!!!!!!"); + } + + return &callend_view; +} + +static void __callui_endcall_voicecall_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __callui_endcall_voicecall_btn_cb); + + _callui_common_delete_ending_timer(); + ad->speaker_status = EINA_FALSE; + ad->mute_status = EINA_FALSE; + ad->extra_volume_status = EINA_FALSE; + cm_dial_call(ad->cm_handle, data, CM_CALL_TYPE_VOICE, ad->sim_slot); + free(data); + return; +} + +char *__vcui_endcall_get_item_text(void *data, Evas_Object *obj, const char *part) +{ + CALLUI_RETURN_VALUE_IF_FAIL(data, NULL); + if (!strcmp(part, "elm.text")) { + return strdup(data); + } + + return NULL; +} + +static void __vcui_endcall_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + _callvm_terminate_app_or_view_change(ad); + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_ADD); + app_control_set_mime(request, APP_CONTROL_MIME_CONTACT); + + if (data) { + app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, data); + } + int err = app_control_send_launch_request(request, NULL, NULL); + if (err != APP_CONTROL_ERROR_NONE) { + dbg("app_control_send_launch_request() is failed"); + } + app_control_destroy(request); +} + +static void __vcui_endcall_update_contact_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + _callvm_terminate_app_or_view_change(ad); + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_EDIT); + app_control_set_mime(request, APP_CONTROL_MIME_CONTACT); + + if (data) { + app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, data); + } + int result = app_control_send_launch_request(request, NULL, NULL); + if (result != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() failed (%d)", result); + } + app_control_destroy(request); +} + +static void __vcui_endcall_popup_destroy_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + free(data); +} + +static void __vcui_endcall_popup_back_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + evas_object_del(obj); + + if (ad->ending_timer) { + ecore_timer_thaw(ad->ending_timer); + } else if (ad->blink_timer) { + ecore_timer_thaw(ad->blink_timer); + } +} + +static void __vcui_endcall_create_popup_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + + if (ad->ending_timer) { + ecore_timer_freeze(ad->ending_timer); + } else if (ad->blink_timer) { + ecore_timer_freeze(ad->blink_timer); + } + char *number = (char *)data; + Evas_Object *parent = elm_object_top_widget_get(obj); + CALLUI_RETURN_IF_FAIL(parent); + Evas_Object *popup = elm_popup_add(parent); + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __vcui_endcall_popup_destroy_cb, number); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __vcui_endcall_popup_back_cb, ad); + + elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); + if (number) { + elm_object_part_text_set(popup, "title,text", number); + } + Evas_Object *genlist = elm_genlist_add(popup); + elm_genlist_homogeneous_set(genlist, EINA_TRUE); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE); + + Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); + CALLUI_RETURN_IF_FAIL(itc); + itc->item_style = "type1"; + itc->func.text_get = __vcui_endcall_get_item_text; + + elm_genlist_item_append(genlist, itc, _("IDS_COM_OPT_CREATE_CONTACT"), NULL, ELM_GENLIST_ITEM_NONE, __vcui_endcall_create_contact_btn_cb, number); + elm_genlist_item_append(genlist, itc, "Update contact", NULL, ELM_GENLIST_ITEM_NONE, __vcui_endcall_update_contact_btn_cb, number); + + elm_genlist_item_class_free(itc); + elm_object_content_set(popup, genlist); + elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER); + evas_object_show(popup); +} + +static void __vcui_endcall_msg_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_msg_btn_cb); + char *number = (char *)data; + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_COMPOSE); + char str[CONTACT_NUMBER_BUF_LEN]; + snprintf(str, sizeof(str), "sms:%s", number); + app_control_set_uri(request, str); + int result = app_control_send_launch_request(request, NULL, NULL); + if (result != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() failed (%d)", result); + } + free(number); + app_control_destroy(request); +} + +static void __callui_view_callend_create_screen(callui_app_data_t *ad, Evas_Object *eo, void *data) +{ + dbg(".."); + + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_IF_FAIL(vd); + callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv; + CALLUI_RETURN_IF_FAIL(priv); + call_data_t *call_data = NULL; + + if (ad->active) { + call_data = ad->active; + } else { + call_data = ad->held; + } + CALLUI_RETURN_IF_FAIL(call_data); + + char *file_path = call_data->call_ct_info.caller_id_path; + char *call_name = call_data->call_ct_info.call_disp_name; + char *disp_number = NULL; + if (call_data->call_disp_num[0] != '\0') { + disp_number = call_data->call_disp_num; + } else { + disp_number = call_data->call_num; + } + priv->contact_person_id = call_data->call_ct_info.person_id; + + Evas_Object *button_call_back = elm_layout_add(priv->contents); + if (button_call_back) { + elm_layout_file_set(button_call_back, EDJ_NAME, "call_back"); + evas_object_event_callback_add(button_call_back, EVAS_CALLBACK_MOUSE_UP, __callui_endcall_voicecall_btn_cb, (void *)strdup(call_data->call_num)); + elm_object_part_text_set(button_call_back, "call_back_text", _("IDS_CALL_BUTTON_CALL")); + } + elm_object_part_content_set(priv->contents, "button_call_back", button_call_back); + + Evas_Object *button_message = elm_layout_add(priv->contents); + if (button_message) { + elm_layout_file_set(button_message, EDJ_NAME, "message_button"); + evas_object_event_callback_add(button_message, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_msg_btn_cb, (void *)strdup(call_data->call_num)); + elm_object_part_text_set(button_message, "message_text", _("IDS_COM_BODY_MESSAGE")); + } + elm_object_part_content_set(priv->contents, "button_message_back", button_message); + elm_object_part_text_set(priv->contents, "main_title_status", _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB")); + + if (!(call_name && call_name[0] != '\0')) { + Evas_Object *button_create = elm_layout_add(priv->contents); + if (button_create) { + elm_layout_file_set(button_create, EDJ_NAME, "create_contact_button"); + evas_object_event_callback_add(button_create, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_create_popup_cb, (void *)strdup(call_data->call_num)); + elm_object_part_content_set(priv->contents, "swallow.create_contact", button_create); + } + elm_object_part_text_set(priv->contents, "contact_name", disp_number); + elm_object_part_text_set(priv->contents, "contact_number", _("IDS_COM_OPT_ADD_TO_CONTACTS")); + } else { + elm_object_part_text_set(priv->contents, "contact_name", call_name); + elm_object_part_text_set(priv->contents, "contact_number", disp_number); + } + + if (strcmp(file_path, "default") != 0) { + _callui_show_caller_id(priv->contents, file_path, TRUE); + } else { + elm_object_signal_emit(priv->contents, "show_image", "main_end_call"); + } + _callui_common_create_ending_timer(vd, call_data->start_time); +} + +static Evas_Object *__callui_view_callend_create_contents(void *data, char *grp_name) +{ + if (data == NULL) { + err("ERROR"); + return NULL; + } + callui_app_data_t *ad = (callui_app_data_t *)data; + Evas_Object *eo = NULL; + + eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grp_name); + + if (eo == NULL) + return NULL; + + return eo; +} + +static int __callui_view_callend_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *data) +{ + dbg("endcall view create"); + call_view_data_t *vd = view_data; + callui_app_data_t *ad = (callui_app_data_t *)data; + callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv; + call_data_t *call_data = NULL; + + priv->bshowbutton = FALSE; /* Init */ + + if (ad->active) { + call_data = ad->active; + } else { + call_data = ad->held; + } + CALLUI_RETURN_VALUE_IF_FAIL(call_data, -1); + + Evas_Object *contents = NULL; + Evas_Object *caller_info = NULL; + Evas_Object *btn_ly = NULL; + + contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (contents) { + caller_info = elm_object_part_content_get(contents, "caller_info"); + if (caller_info) { + evas_object_del(caller_info); + caller_info = NULL; + } + + btn_ly = elm_object_part_content_get(contents, "btn_region"); + if (btn_ly) { + evas_object_del(btn_ly); + btn_ly = NULL; + } + evas_object_del(contents); + + elm_win_alpha_set(ad->win, EINA_TRUE); + evas_object_color_set(ad->bg, 0, 0, 0, BG_COLOR_ALPHA); + contents = NULL; + } + + g_strlcpy(priv->caller_id_path, call_data->call_ct_info.caller_id_path, sizeof(priv->caller_id_path)); + if (ad->main_ly) { + priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (!priv->contents) { + priv->contents = __callui_view_callend_create_contents(ad, "main_end_call"); + _callui_set_object_data(priv->contents, CALLUI_END_TYPE_KEY, CALLUI_END_TYPE_SINGLE_CALL_END); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + evas_object_name_set(priv->contents, CALLUI_VIEW_CALLEND_LAYOUT_ID); + } + + __callui_view_callend_onshow(view_data, ad); + } + return 0; +} + +static int __callui_view_callend_onupdate(call_view_data_t *view_data, void *update_data) +{ + dbg("end call view update"); +#if 0 + callui_app_data_t *ad = view_data->app_data; + + if (ad->view_before_top != VIEW_INCALL_MULTICALL_SPLIT_VIEW && + ad->call_end_type != CALL_END_TYPE_MULTIPARTY_CALL) { + __callui_view_callend_onshow(view_data); + } +#endif + return 0; +} + +static int __callui_view_callend_onhide(call_view_data_t *view_data) +{ + dbg("end call view hide"); + callui_app_data_t *ad = _callui_get_app_data(); + + evas_object_hide(ad->main_ly); + return 0; +} + +static int __callui_view_callend_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("end call view show"); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)view_data->priv; + + __callui_view_callend_create_screen(ad, priv->contents, view_data); + +#if 0 + /* Check If View is launched in landscape mode and update accordingly */ + if (IS_LANDSCAPE_MODE(ad->rotate_angle)) { /* Landscape Mode */ + __callui_view_callend_onrotate(view_data); + } +#endif + _callui_common_win_set_noti_type(ad, EINA_TRUE); + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + return 0; +} + +static int __callui_view_callend_ondestroy(call_view_data_t *view_data) +{ + dbg("endcall view destroy"); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, -1); + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_ENDCALL_VIEW); + CALLUI_RETURN_VALUE_IF_FAIL(vd, -1); + callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv; + + _callui_common_delete_ending_timer(); + + if (priv != NULL) { + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + + if (priv->caller_info) { + evas_object_del(priv->caller_info); + priv->caller_info = NULL; + } + + if (priv->caller_id) { + evas_object_del(priv->caller_id); + priv->caller_id = NULL; + } + + free(priv); + priv = NULL; + } + _callvm_reset_call_view_data(ad, VIEW_ENDCALL_VIEW); + + dbg("complete destroy one view"); + return 0; +} + +static int __callui_view_callend_onrotate(call_view_data_t *view_data) +{ + dbg("*** Call End view Rotate ***"); +#if 0 + callui_endcall_view_priv_t *priv = view_data->priv; + callui_app_data_t *ad = _vcui_get_app_data(); + + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { /* Portrait Mode */ + if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { +/***This if else condtion has to be updated when we get more info on single sim and double sim handling***/ + if (0) { + edje_object_signal_emit(_EDJ(priv->contents), "set_portrait_3_btn", "end_singlecall_3_btn"); + } else { + edje_object_signal_emit(_EDJ(priv->contents), "set_portrait_2_btn", "end_singlecall_2_btn"); + } + } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { + elm_object_signal_emit(priv->contents, "set_portrait", "end_confcall"); + } else if (ad->call_end_type == CALL_END_TYPE_MULTIPARTY_CALL) { + elm_object_signal_emit(priv->contents, "set_portrait", "end_multicall"); + } + elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout"); + elm_object_signal_emit(priv->caller_info, "set-end-caller-info", "end-screen"); + } else { /* Landscape Mode */ + if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { + elm_object_signal_emit(priv->contents, "set_landscape", "end_singlecall"); + } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { + elm_object_signal_emit(priv->contents, "set_landscape", "end_confcall"); + } else if (ad->call_end_type == CALL_END_TYPE_MULTIPARTY_CALL) { + elm_object_signal_emit(priv->contents, "set_landscape", "end_multicall"); + } + elm_object_signal_emit(priv->caller_info, "set_landscape", "caller_info_layout"); + elm_object_signal_emit(priv->caller_info, "set-end-caller-info", "end-screen-landscape"); + } + + CALLUI_DEBUG(DEBUG, "priv->bshowbutton(%d)", priv->bshowbutton); + if (priv->bshowbutton == EINA_TRUE) { + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { +/***This if else condtion has to be updated when we get more info on single sim and double sim handling***/ + if (0) { + edje_object_signal_emit(_EDJ(priv->contents), "show_end_menu_3_btns", "show_3_btns"); + } else { + edje_object_signal_emit(_EDJ(priv->contents), "show_end_menu_2_btns", "show_2_btns"); + } + } else { + edje_object_signal_emit(_EDJ(priv->contents), "show_end_menu_btns_landscape", "show_btns"); + } + } + + if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { + CALLUI_DEBUG(DEBUG, "CALL_END_TYPE_SINGLE_CALL type end screen"); + CALLUI_SECURE_LOGD("file_path: %s", priv->caller_id_path); + + if (strcmp(priv->caller_id_path, "default") != 0) { + _vcui_show_caller_id(priv->caller_info, priv->caller_id_path, TRUE); + } else if (_vcui_doc_get_is_favorite_contact(call_data)) { + _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(call_data)); + } + + /* Update End-Screen Contacts btn's */ + if ((strlen(priv->call_number) != 0) && + (_vcui_is_fm_lock() != EINA_TRUE)) { + if (priv->contact_person_id > 0) { + _vcui_create_view_contact_button(view_data, priv->contact_person_id); + } else { + _vcui_create_create_contacts_button(view_data, + priv->call_number); + _vcui_create_update_existing_contact_button(view_data, + priv->call_number); + } + } + } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { + CALLUI_DEBUG(DEBUG, "CALL_END_TYPE_CONF_CALL type end screen"); + + if (priv->call_status == CALL_HOLD) { + CALLUI_DEBUG(DEBUG, "ad->root_w: %d ad->root_h: %d", ad->root_w, ad->root_h); + if (ad->root_w == MAIN_WIN_HD_W && ad->root_h == MAIN_WIN_HD_H) { + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { + elm_object_signal_emit(priv->contents, "SHOW_DIM_HD", "CID_HD"); + } else { + elm_object_signal_emit(priv->contents, "SHOW_DIM_HD_LANDSCAPE", "CID_HD"); + } + } else if (ad->root_w == MAIN_WIN_WVGA_W && ad->root_h == MAIN_WIN_WVGA_H) { + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { + elm_object_signal_emit(priv->contents, "SHOW_DIM_WVGA", "CID_WVGA"); + } else { + elm_object_signal_emit(priv->contents, "SHOW_DIM_WVGA_LANDSCAPE", "CID_WVGA"); + } + } + } else { + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { + elm_object_signal_emit(priv->contents, "HIDE_DIM", "CID"); + } else { + elm_object_signal_emit(priv->contents, "HIDE_DIM_LANDSCAPE", "CID"); + } + } + } else if (ad->call_end_type == CALL_END_TYPE_MULTIPARTY_CALL) { + CALLUI_DEBUG(DEBUG, "CALL_END_TYPE_MULTIPARTY_CALL type end screen"); + + CALLUI_SECURE_LOGD("file_path: %s", priv->caller_id_path); + if (strcmp(priv->caller_id_path, "default") != 0) { + _vcui_show_caller_id(priv->caller_info, priv->caller_id_path, TRUE); + /*put blur effect on full-cid*/ + } else if (_vcui_doc_get_is_favorite_contact(call_data)) { + _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(call_data)); + } + } else { + CALLUI_DEBUG(WARN, "invalid type... return"); + } +#endif + return 0; +} + +Evas_Object *_callui_view_callend_get_layout(call_view_data_t *vd) +{ + dbg(".."); + callui_endcall_view_priv_t *priv = NULL; + + CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL); + priv = (callui_endcall_view_priv_t *) vd->priv; + + CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL); + return priv->contents; +} + diff --git a/src/callui-view-circle.c b/src/callui-view-circle.c new file mode 100755 index 0000000..ef6e752 --- /dev/null +++ b/src/callui-view-circle.c @@ -0,0 +1,580 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui-view-manager.h" +#include "callui-view-circle.h" +#include "callui-view-incoming-lock.h" +#include "callui-view-elements.h" +#include "callui-view-layout-wvga.h" +#include "callui-common.h" + +static void __callui_view_circle_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void __callui_view_circle_multi_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void __callui_view_circle_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void __callui_view_circle_multi_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void __callui_view_circle_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void __callui_view_circle_multi_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void __callui_view_circle_accept_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y); +static void __callui_view_circle_accept_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y); +static void __callui_view_circle_accept_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y); +static void __callui_view_circle_reject_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y); +static void __callui_view_circle_reject_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y); +static void __callui_view_circle_reject_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y); + +static int accept_touch_num = -1; +static int reject_touch_num = -1; + +static int accept_button_center_x = -1; +static int reject_button_center_x = -1; +static int button_center_y = -1; +static int button_radius = -1; +static int accept_outer_circle_x = -1; +static int reject_outer_circle_x = -1; +static int outer_circle_y = -1; +static int outer_circle_radius = -1; +static int outer_circle_width = -1; +static int outer_circle_height = -1; + +static Eina_Bool baccept_clicked; +static Eina_Bool breject_clicked; + +static void __callui_view_circle_handle_accept(call_view_data_t *vd, callui_app_data_t *ad) +{ + dbg(".."); + + int ret = -1; + if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) { + _callui_common_unlock_swipe_lock(); + } + + if (vd->type == VIEW_INCOMING_LOCK_VIEW) { + if (ad->active == NULL) { + dbg("No Call Or Held call - Accept"); + + ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL); + if (ret != CM_ERROR_NONE) { + err("cm_answer_call() is failed"); + return; + } + } else { + dbg("Show popup - 2nd MT call - test volume popup"); + _callui_load_second_call_popup(ad); + } + } +} + +static void __callui_view_circle_handle_reject(call_view_data_t *vd, callui_app_data_t *ad) +{ + dbg(".."); + int ret = -1; + + if (vd->type == VIEW_INCOMING_LOCK_VIEW) { + ret = cm_reject_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_reject_call() is failed"); + } + } + return; +} + +static Evas_Object *__callui_view_circle_get_accept_layout(void *data) +{ + call_view_data_t *vd = (call_view_data_t *)data; + Evas_Object *layout = NULL; + switch (vd->type) { + case VIEW_INCOMING_LOCK_VIEW: + { + layout = _callui_view_incoming_lock_get_accept_layout(vd); + } + break; + default: + err("vd type is error"); + return NULL; + } + return layout; +} + +static void __callui_view_circle_set_accept_layout(void *data, Evas_Object *layout) +{ + call_view_data_t *vd = (call_view_data_t *)data; + switch (vd->type) { + case VIEW_INCOMING_LOCK_VIEW: + { + _callui_view_incoming_lock_set_accept_layout(vd, layout); + } + break; + default: + err("vd type is error"); + } +} + +static Evas_Object *__callui_view_circle_get_reject_layout(void *data) +{ + call_view_data_t *vd = (call_view_data_t *)data; + Evas_Object *layout = NULL; + switch (vd->type) { + case VIEW_INCOMING_LOCK_VIEW: + { + layout = _callui_view_incoming_lock_get_reject_layout(vd); + } + break; + default: + err("code should never reach here"); + return NULL; + } + return layout; +} + +static void __callui_view_circle_set_reject_layout(void *data, Evas_Object *layout) +{ + call_view_data_t *vd = (call_view_data_t *)data; + switch (vd->type) { + case VIEW_INCOMING_LOCK_VIEW: + { + _callui_view_incoming_lock_set_reject_layout(vd, layout); + } + break; + default: + err("vd type is error"); + } +} + +static Evas_Coord __callui_view_circle_get_distance(callui_app_data_t *ad, int centre_x, int point_x, int point_y) +{ + int centre_y = 0; + + centre_y = button_center_y; + return (Evas_Coord)sqrt((point_x-centre_x)*(point_x-centre_x) + (point_y-centre_y)*(point_y-centre_y)); +} + +static void __callui_view_circle_accept_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y) +{ + dbg(".."); + Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd); + + int point_distance = 0; + + point_distance = __callui_view_circle_get_distance(ad, accept_button_center_x, x, y); + dbg("point_distance(%d)", point_distance); + + if (point_distance < button_radius) { + dbg("Point lies inside the region"); + baccept_clicked = EINA_TRUE; + elm_object_signal_emit(lock_accept, "outer_circle,show", "outer-circle"); + } else { + warn("Point lies outside the region"); + baccept_clicked = EINA_FALSE; + } +} + +static void __callui_view_circle_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(""); + Evas_Event_Mouse_Down *ev = event_info; + callui_app_data_t *ad = (callui_app_data_t *)data; + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW); + + CALLUI_RETURN_IF_FAIL(vd); + + if (-1 == accept_touch_num && -1 == reject_touch_num) { + __callui_view_circle_accept_down(vd, ad, ev->canvas.x, ev->canvas.y); + if (TRUE == baccept_clicked) { + accept_touch_num = 0; + } else { + __callui_view_circle_reject_down(vd, ad, ev->canvas.x, ev->canvas.y); + if (TRUE == breject_clicked) + reject_touch_num = 0; + } + } +} + +static void __callui_view_circle_multi_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + Evas_Event_Multi_Down *ev = event_info; + callui_app_data_t *ad = (callui_app_data_t *)data; + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW); + + CALLUI_RETURN_IF_FAIL(vd); + + dbg("ev->device = %d, accept_touch_num = %d", ev->device, accept_touch_num); + if (-1 == accept_touch_num && -1 == reject_touch_num) { + __callui_view_circle_accept_down(vd, ad, ev->canvas.x, ev->canvas.y); + if (TRUE == baccept_clicked) { + accept_touch_num = ev->device; + } else { + __callui_view_circle_reject_down(vd, ad, ev->canvas.x, ev->canvas.y); + if (TRUE == breject_clicked) + reject_touch_num = ev->device; + } + } + +} + +static void __callui_view_circle_accept_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y) +{ + Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd); + + Evas_Coord point_distance = 0; + + if (baccept_clicked) { + Evas_Object *circle_bg = _callui_edje_object_part_get(lock_accept, "accept_inner_circle_bg"); + point_distance = __callui_view_circle_get_distance(ad, accept_button_center_x, x, y); + + if (point_distance < outer_circle_radius) { + evas_object_move(circle_bg, accept_button_center_x-point_distance, button_center_y-point_distance); + evas_object_resize(circle_bg, point_distance*2, point_distance*2); + evas_object_image_fill_set(circle_bg, 0, 0, point_distance*2, point_distance*2); + } else { + evas_object_move(circle_bg, accept_outer_circle_x, outer_circle_y); + evas_object_resize(circle_bg, outer_circle_width, outer_circle_height); + evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height); + } + } else { + warn("Initial click is not in correct region"); + } +} + +static void __callui_view_circle_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Move *ev = event_info; + CALLUI_RETURN_IF_FAIL(ev); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW); + CALLUI_RETURN_IF_FAIL(vd); + if (accept_touch_num == 0) + __callui_view_circle_accept_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y); + else if (reject_touch_num == 0) + __callui_view_circle_reject_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y); +} + +static void __callui_view_circle_multi_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + Evas_Event_Multi_Move *ev = event_info; + callui_app_data_t *ad = (callui_app_data_t *)data; + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW); + dbg("ev->device = %d, accept_touch_num = %d", ev->device, accept_touch_num); + if (vd) { + if (accept_touch_num == ev->device) + __callui_view_circle_accept_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y); + else if (reject_touch_num == ev->device) + __callui_view_circle_reject_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y); + } + +} + +static void __callui_view_circle_accept_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y) +{ + dbg(".."); + Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd); + Evas_Coord point_distance = 0; + + if (baccept_clicked) { + dbg("Initial click is in right region"); + Evas_Object *circle_bg = _callui_edje_object_part_get(lock_accept, "accept_inner_circle_bg"); + point_distance = __callui_view_circle_get_distance(ad, accept_button_center_x, x, y); + if (point_distance >= outer_circle_radius) { + evas_object_move(circle_bg, accept_outer_circle_x, outer_circle_y); + evas_object_resize(circle_bg, outer_circle_width, outer_circle_height); + evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height); + + dbg("__callui_view_circle_handle_accept"); + __callui_view_circle_handle_accept(vd, ad); + } else { + elm_object_signal_emit(lock_accept, "outer_circle,hide", "outer-circle"); + } + } else { + warn("Initial click is not in correct region"); + } +} + +static void __callui_view_circle_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + Evas_Event_Mouse_Up *ev = event_info; + CALLUI_RETURN_IF_FAIL(ev); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW); + CALLUI_RETURN_IF_FAIL(vd); + + if (accept_touch_num == 0) { + __callui_view_circle_accept_up(vd, ad, ev->canvas.x, ev->canvas.y); + accept_touch_num = -1; + } else if (reject_touch_num == 0) { + __callui_view_circle_reject_up(vd, ad, ev->canvas.x, ev->canvas.y); + reject_touch_num = -1; + } +} + +static void __callui_view_circle_multi_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + Evas_Event_Multi_Up *ev = event_info; + CALLUI_RETURN_IF_FAIL(ev); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW); + CALLUI_RETURN_IF_FAIL(vd); + dbg("ev->device = %d", ev->device); + + if (accept_touch_num == ev->device) { + __callui_view_circle_accept_up(vd, ad, ev->canvas.x, ev->canvas.y); + accept_touch_num = -1; + } else if (reject_touch_num == ev->device) { + __callui_view_circle_reject_up(vd, ad, ev->canvas.x, ev->canvas.y); + reject_touch_num = -1; + } +} + +static void __callui_view_circle_reject_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y) +{ + dbg(".."); + Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd); + int point_distance = 0; + + point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y); + + if (point_distance < button_radius) { + dbg("Point lies inside the region"); + breject_clicked = EINA_TRUE; + elm_object_signal_emit(lock_reject, "outer_circle,show", "outer-circle"); + } else { + warn("Point lies outside the region"); + breject_clicked = EINA_FALSE; + } +} + +static void __callui_view_circle_reject_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y) +{ + Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd); + + Evas_Coord point_distance = 0; + + if (breject_clicked) { + Evas_Object *circle_bg = _callui_edje_object_part_get(lock_reject, "reject_inner_circle_bg"); + + point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y); + if (point_distance < outer_circle_radius) { + evas_object_move(circle_bg, reject_button_center_x-point_distance, button_center_y-point_distance); + evas_object_resize(circle_bg, point_distance*2, point_distance*2); + evas_object_image_fill_set(circle_bg, 0, 0, point_distance*2, point_distance*2); + } else { + evas_object_move(circle_bg, reject_outer_circle_x, outer_circle_y); + evas_object_resize(circle_bg, outer_circle_width, outer_circle_height); + evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height); + } + } else { + warn("Initial click is not in correct region"); + } +} + +static void __callui_view_circle_reject_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y) +{ + dbg(".."); + Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd); + Evas_Coord point_distance = 0; + + if (breject_clicked) { + dbg("Initial click is in right region"); + Evas_Object *circle_bg = _callui_edje_object_part_get(lock_reject, "reject_inner_circle_bg"); + point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y); + if (point_distance >= outer_circle_radius) { + evas_object_move(circle_bg, reject_outer_circle_x, outer_circle_y); + evas_object_resize(circle_bg, outer_circle_width, outer_circle_height); + evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height); + __callui_view_circle_handle_reject(vd, ad); + } else { + elm_object_signal_emit(lock_reject, "outer_circle,hide", "outer-circle"); + elm_object_signal_emit(lock_reject, "inner_circle,show", "inner-circle"); + } + } else { + warn("Initial click is not in correct region"); + } +} + +void _callui_view_circle_accept_reject_reset(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd); + Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd); + + baccept_clicked = EINA_FALSE; + breject_clicked = EINA_FALSE; + + elm_object_signal_emit(lock_reject, "inner_circle,show", "inner-circle"); + elm_object_signal_emit(lock_accept, "inner_circle,show", "inner-circle"); + +} + +static void __callui_view_circle_reject_focus_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + Evas_Event_Key_Down *ev = event_info; + if (!ev) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) + return; + + if ((!strcmp(ev->keyname, "Return")) || + (!strcmp(ev->keyname, "KP_Enter"))) { + dbg(".."); + } +} + +Evas_Object *_callui_view_circle_create_reject_layout(callui_app_data_t *ad, void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd); + Evas_Object *focus = NULL; + Evas_Object *inner_circle = NULL; + Evas_Object *outer_circle = NULL; + int x = 0; + int y = 0; + int width = 0; + int height = 0; + + if (lock_reject != NULL) { + evas_object_del(lock_reject); + __callui_view_circle_set_reject_layout(vd, NULL); + } + + lock_reject = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_REJECT); + evas_object_resize(lock_reject, ad->root_w, ad->root_h); + evas_object_move(lock_reject, 0, 0); + + __callui_view_circle_set_reject_layout(vd, lock_reject); + + elm_object_signal_emit(lock_reject, "outer_circle,hide", "outer-circle"); + + elm_object_part_text_set(lock_reject, "reject_text", _("IDS_CALL_BUTTON_REJECT")); + + evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, ad); + evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, ad); + evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, ad); + evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, ad); + evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, ad); + evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, ad); + + focus = _callui_view_create_focus_layout(ad->win); + evas_object_event_callback_add(focus, EVAS_CALLBACK_KEY_DOWN, __callui_view_circle_reject_focus_key_down, vd); + elm_object_part_content_set(lock_reject, "reject_inner_circle_focus", focus); + + inner_circle = _callui_edje_object_part_get(lock_reject, "reject_inner_circle"); + evas_object_geometry_get(inner_circle, &x, &y, &width, &height); + dbg("inner circle[%p] geometry: x = %d y = %d w1 =%d h1 =%d\n", inner_circle, x, y, width, height); + reject_button_center_x = x+(width/2); + dbg("Button center X[%d] Y[%d]", reject_button_center_x, button_center_y); + + outer_circle = _callui_edje_object_part_get(lock_reject, "rect_outer_circle"); + evas_object_geometry_get(outer_circle, &x, &y, &width, &height); + reject_outer_circle_x = x; + + evas_object_show(lock_reject); + + return lock_reject; +} + +static void __callui_view_circle_accept_focus_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + Evas_Event_Key_Down *ev = event_info; + + if (!ev) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) + return; + + if ((!strcmp(ev->keyname, "Return")) || + (!strcmp(ev->keyname, "KP_Enter"))) { + dbg(".."); + } +} + +Evas_Object *_callui_view_circle_create_accept_layout(callui_app_data_t *ad, void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd); + Evas_Object *focus = NULL; + Evas_Object *inner_circle = NULL; + Evas_Object *outer_circle = NULL; + int x = 0; + int y = 0; + int width = 0; + int height = 0; + + if (lock_accept != NULL) { + evas_object_del(lock_accept); + __callui_view_circle_set_accept_layout(vd, NULL); + } + + lock_accept = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_ACCEPT); + evas_object_resize(lock_accept, ad->root_w, ad->root_h); + evas_object_move(lock_accept, 0, 0); + + __callui_view_circle_set_accept_layout(vd, lock_accept); + + elm_object_signal_emit(lock_accept, "outer_circle,hide", "outer-circle"); + + elm_object_part_text_set(lock_accept, "accept_text", _("IDS_CALL_BUTTON_ACCEPT")); + evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, ad); + evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, ad); + evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, ad); + evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, ad); + evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, ad); + evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, ad); + + focus = _callui_view_create_focus_layout(ad->win); + evas_object_event_callback_add(focus, EVAS_CALLBACK_KEY_DOWN, __callui_view_circle_accept_focus_key_down, ad); + elm_object_part_content_set(lock_accept, "accept_inner_circle_focus", focus); + elm_object_focus_set(focus, EINA_TRUE); + + inner_circle = _callui_edje_object_part_get(lock_accept, "accept_inner_circle"); + evas_object_geometry_get(inner_circle, &x, &y, &width, &height); + dbg("inner circle[%p] geometry: x = %d y = %d w1 =%d h1 =%d\n", inner_circle, x, y, width, height); + button_center_y = y+(height/2); + accept_button_center_x = x+(width/2); + button_radius = width/2; + dbg("Button center X[%d] Y[%d]", accept_button_center_x, button_center_y); + + outer_circle = _callui_edje_object_part_get(lock_accept, "rect_outer_circle"); + evas_object_geometry_get(outer_circle, &x, &y, &width, &height); + dbg("outer circle[%p] geometry: x = %d y = %d w1 =%d h1 =%d\n", outer_circle, x, y, width, height); + accept_outer_circle_x = x; + outer_circle_y = y; + outer_circle_radius = width/2; + outer_circle_width = width; + outer_circle_height = height; + dbg("Outer Circle X[%d] Y[%d] Radius[%d]", accept_outer_circle_x, outer_circle_y, outer_circle_radius); + evas_object_show(lock_accept); + + return lock_accept; +} + +Eina_Bool _callui_view_circle_easy_touch_state(void) +{ + int value = EINA_FALSE; + + /*if (0 != vconf_get_bool(VCONFKEY_SETAPPL_EASY_TOUCH_MODE_BOOL, &value)) { + CALLUI_DEBUG(WARN, "vconf_get_bool failed."); + }*/ + + return value; +} + diff --git a/src/callui-view-dialing.c b/src/callui-view-dialing.c new file mode 100644 index 0000000..04df0d2 --- /dev/null +++ b/src/callui-view-dialing.c @@ -0,0 +1,317 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include + +#include "callui-view-dialing.h" +#include "callui.h" +#include "callui-view-manager.h" +#include "callui-view-elements.h" +#include "callui-keypad.h" +#include "callui-view-quickpanel.h" +#include "callui-common.h" + +struct callui_view_dialing_priv { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *btn_ly; + Evas_Object *ic; + Eina_Bool bredial; + + Ecore_Timer *lock_delay_timer; +}; + +#define VIEW_DIALING_LAYOUT_ID "DIALVIEW" + +static int __callui_view_dialing_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata); +static int __callui_view_dialing_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_dialing_onhide(call_view_data_t *view_data); +static int __callui_view_dialing_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_dialing_ondestroy(call_view_data_t *view_data); +static int __callui_view_dialing_onrotate(call_view_data_t *view_data); + +call_view_data_t *_callui_dialing_view_dialing_new(callui_app_data_t *ad) +{ + static call_view_data_t dialing_view = { + .type = VIEW_DIALLING_VIEW, + .layout = NULL, + .onCreate = __callui_view_dialing_oncreate, + .onUpdate = __callui_view_dialing_onupdate, + .onHide = __callui_view_dialing_onhide, + .onShow = __callui_view_dialing_onshow, + .onDestroy = __callui_view_dialing_ondestroy, + .onRotate = __callui_view_dialing_onrotate, + .priv = NULL, + }; + dialing_view.priv = calloc(1, sizeof(callui_view_dialing_priv_t)); + + if (!dialing_view.priv) { + err("ERROR!!!!!!!!!!! "); + } + + return &dialing_view; +} + +static Evas_Object *__callui_view_dialing_create_contents(void *data, char *grpname) +{ + callui_app_data_t *ad = (callui_app_data_t *)data; + Evas_Object *eo = NULL; + + /* load edje */ + eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname); + if (eo == NULL) { + err("__callui_view_dialing_create_contents ERROR"); + return NULL; + } + return eo; +} + +static Eina_Bool __callui_view_dialing_lock_delay_timeout_cb(void *data) +{ + call_view_data_t *vd = (call_view_data_t *)data; + callui_view_dialing_priv_t *priv = vd->priv; + callui_app_data_t *ad = _callui_get_app_data(); + + if (ad->lock_screen_handle == NULL) { + ad->lock_screen_handle = _callui_lock_screen_create_layout(vd); + } else { + _callui_lock_screen_show_layout(ad->lock_screen_handle); + } + priv->lock_delay_timer = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +static void __callui_view_dialing_draw_screen(callui_app_data_t *ad, Evas_Object *eo, void *data) +{ + dbg("__callui_view_dialing_draw_screen"); + + call_view_data_t *vd = (call_view_data_t *)data; + callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)vd->priv; + call_data_t *now_call_data = ad->active; + CALLUI_RETURN_IF_FAIL(now_call_data); + char *file_path = NULL; + char *sim_name = NULL; + char status_txt[128 + 1] = { '\0', }; + + call_view_data_t *q_vd = _callvm_get_call_view_data(ad, VIEW_QUICKPANEL_VIEW); + + if (now_call_data == NULL) { + err("Now Data is NULL"); + return; + } + + file_path = now_call_data->call_ct_info.caller_id_path; + sec_dbg("file_path: %s", file_path); + + char *call_name = now_call_data->call_ct_info.call_disp_name; + char *disp_number = NULL; + if (strlen(now_call_data->call_disp_num) > 0) { + disp_number = now_call_data->call_disp_num; + } else { + disp_number = now_call_data->call_num; + } + + if (now_call_data->is_emergency == EINA_TRUE) { + call_name = _("IDS_COM_BODY_EMERGENCY_NUMBER"); + disp_number = ""; + } + + if (strlen(call_name) == 0) { + _callui_show_caller_info_name(ad, disp_number, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "1line", "caller_name"); + } else if (now_call_data->is_emergency == EINA_TRUE) { + _callui_show_caller_info_name(ad, call_name, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "1line", "caller_name"); + } else { + _callui_show_caller_info_name(ad, call_name, EINA_FALSE); + _callui_show_caller_info_number(ad, disp_number, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "2line", "caller_name"); + } + + _callui_show_caller_info_status(ad, _("IDS_CALL_POP_DIALLING"), EINA_FALSE); + + _callui_create_top_first_button(ad); + _callui_create_top_second_button(ad); + _callui_create_top_third_button(ad); + _callui_create_bottom_first_button_disabled(ad); + _callui_create_bottom_second_button_disabled(ad); + _callui_create_bottom_third_button_disabled(ad); + + elm_object_signal_emit(priv->contents, "SHOW_EFFECT", "ALLBTN"); + + /*_vcui_elements_check_keypad_n_hide(vd);*/ + _callui_create_end_call_button(priv->contents, vd); + + evas_object_show(eo); + + if (q_vd) { + _callui_view_qp_update_text_status(_("IDS_CALL_POP_DIALLING")); + } + + if (now_call_data->is_emergency == EINA_TRUE) { + elm_object_signal_emit(priv->caller_info, "set_emergency_mode", ""); + } else { + if (strcmp(file_path, "default") != 0) { + _callui_show_caller_id(priv->caller_info, file_path, FALSE); + } + } + /*evas_event_callback_add(evas_object_evas_get(eo), + EVAS_CALLBACK_RENDER_POST, __vcui_view_dialing_post_render_cb, vd);*/ +} + +static int __callui_view_dialing_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata) +{ + dbg("dialling view create!!"); + callui_app_data_t *ad = (callui_app_data_t *) appdata; + callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)view_data->priv; + + if (ad->main_ly) { + priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (!priv->contents) { + priv->contents = __callui_view_dialing_create_contents(ad, GRP_MAIN_LY); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + } + + priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region"); + if (!priv->btn_ly) { + priv->btn_ly = __callui_view_dialing_create_contents(ad, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + } + + priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info"); + if (!priv->caller_info) { + priv->caller_info = __callui_view_dialing_create_contents(ad, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + } + evas_object_name_set(priv->contents, VIEW_DIALING_LAYOUT_ID); + dbg("[========== DIALVIEW: priv->contents Addr : [%p] ==========]", priv->contents); + + /*create keypad layout*/ + _callui_keypad_create_layout(ad); + } + __callui_view_dialing_onshow(view_data, ad); + + /* Create Lock Screen instead of using proximity sensor */ + if (priv->lock_delay_timer == NULL) { + priv->lock_delay_timer = ecore_timer_add(2, __callui_view_dialing_lock_delay_timeout_cb, view_data); + } + + return 0; +} + +static int __callui_view_dialing_onupdate(call_view_data_t *view_data, void *update_data) +{ +#if 0 + CALLUI_DEBUG(DEBUG, "dialling view update"); + call_view_data_t *priv = view_data->priv; + + __vcui_view_dialing_draw_screen(priv->contents, view_data); +#endif + return 0; +} + +static int __callui_view_dialing_onhide(call_view_data_t *view_data) +{ + dbg("dialling view hide"); + + callui_app_data_t *ad = _callui_get_app_data(); + + evas_object_hide(ad->main_ly); + + return 0; +} + +static int __callui_view_dialing_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("dialling view show"); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + + callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)view_data->priv; + + __callui_view_dialing_draw_screen(ad, priv->contents, view_data); + + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + + return 0; +} + +static int __callui_view_dialing_ondestroy(call_view_data_t *vd) +{ + dbg("dialling view destroy"); + + callui_app_data_t *ad = _callui_get_app_data(); + callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)vd->priv; + + if (priv != NULL) { + /*Delete keypad layout */ + _callui_keypad_delete_layout(ad); + elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN"); + _callui_common_reset_main_ly_text_fields(priv->contents); + ecore_timer_del(priv->lock_delay_timer); + free(priv); + priv = NULL; + } + + _callvm_reset_call_view_data(ad, VIEW_DIALLING_VIEW); + + return 0; +} + +static int __callui_view_dialing_onrotate(call_view_data_t *view_data) +{ + dbg("*** Dialling view Rotate ***"); +#if 0 + call_view_data_t *priv = view_data->priv; + callui_app_data_t *ad = _vcui_get_app_data(); + call_data_t *now_call_data = _vcui_doc_get_mo_call_data(); + char *file_path = NULL; + + if (now_call_data == NULL) { + CALLUI_DEBUG(DEBUG, "Now Data is NULL"); + return -1; + } + + file_path = _vcui_doc_get_caller_id_file_path(now_call_data); + CALLUI_SECURE_LOGD("file_path: %s", file_path); + + if (strcmp(file_path, "default") != 0) { + _vcui_show_caller_id(priv->caller_info, file_path, FALSE); + } else if (_vcui_doc_get_is_favorite_contact(now_call_data)) { + _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(now_call_data)); + } + + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { /* Portrait Mode */ + elm_object_signal_emit(priv->contents, "set_portrait", "mo_view_layout"); + elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout_without_bg"); + } else { /* Landscape Mode */ + elm_object_signal_emit(priv->contents, "set_landscape", "mo_view_layout"); + elm_object_signal_emit(priv->caller_info, "set_landscape", "caller_info_layout_without_bg"); + } + +#ifdef _VC_SNS_STATUS + /*Update the alerts*/ + _vcui_view_common_update_alerts(now_call_data, EINA_FALSE, view_data); +#endif + + _vcui_keypad_update_after_rotate(priv->contents, view_data); + + evas_object_show(ad->win_main); +#endif + return 0; +} diff --git a/src/callui-view-elements.c b/src/callui-view-elements.c new file mode 100755 index 0000000..63619b7 --- /dev/null +++ b/src/callui-view-elements.c @@ -0,0 +1,1643 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include + +#include "callui-view-elements.h" +#include "callui-view-manager.h" +#include "callui-view-dialing.h" +#include "callui-view-single-call.h" +#include "callui-view-callend.h" +#include "callui-view-incoming-lock.h" +#include "callui-view-multi-call-split.h" +#include "callui-view-layout-wvga.h" +#include "callui-common.h" +#include "callui-keypad.h" +#include "callui-view-multi-call-conf.h" +#include "callui-view-incoming-lock.h" +#include "callui-view-quickpanel.h" +#include "callui-view-caller-info-defines.h" +#include +#include + +#define POPUP_LIST_W 300 +#define POPUP_LIST_ITEM_H 96 +#define APP_CONTROL_DATA_PHONE "http://tizen.org/appcontrol/data/phone" +#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact" +#define APP_CONTROL_OPERATION_ADD "http://tizen.org/appcontrol/operation/add" +#define APP_CONTROL_DATA_ITEM_ID "http://tizen.org/appcontrol/data/item_id" +#define CONTACT_ID_BUF_LEN 16 +#define CONTACT_NUMBER_BUF_LEN 32 + +typedef struct { + int index; + char option_msg[512]; +} second_call_popup_data_t; + +static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_update_existing_contact_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __callui_unload_more_option(callui_app_data_t *ad); + +const char *group_thumbnail[] = { + GROUP_THUMBNAIL_98, + GROUP_THUMBNAIL_186, + "", +}; + +const char *group_default_thumbnail[] = { + GROUP_DEFAULT_THUMBNAIL_98, + GROUP_DEFAULT_THUMBNAIL_186, + GROUP_DEFAULT_CONFERENCE_THUMBNAIL_186, +}; + +const int thumbnail_size[] = { + 98, + 186, + 186, +}; + +Evas_Object *_callui_load_edj(Evas_Object *parent, const char *file, const char *group) +{ + Evas_Object *eo; + int ret; + + eo = elm_layout_add(parent); + if (eo) { + ret = elm_layout_file_set(eo, file, group); + if (!ret) { + evas_object_del(eo); + err("ERROR!!"); + return NULL; + } + + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + } + + return eo; +} + +Evas_Object *_callui_edje_object_part_get(Evas_Object *parent, const char *part) +{ + Evas_Object *obj = NULL; + + obj = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(parent), part); + if (obj == NULL) { + err("(%s) part is not avialable", part); + } + + return obj; +} + +static Evas_Object *__callui_create_caller_info(void *data, Eina_Bool bhold) +{ + Evas_Object *caller_info = NULL; + Evas_Object *layout = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL); + + layout = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + CALLUI_RETURN_VALUE_IF_FAIL(layout, NULL); + caller_info = elm_object_part_content_get(layout, "caller_info"); + + return caller_info; +} + +static Evas_Object *__callui_create_button_style(void *data, Evas_Object **p_button, char *part_name) +{ + Evas_Object *layout = NULL; + Evas_Object *btn_ly = NULL; + Evas_Object *sw = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL); + layout = _callvm_get_view_layout(ad); + CALLUI_RETURN_VALUE_IF_FAIL(layout, NULL); + btn_ly = elm_object_part_content_get(layout, "btn_region"); + CALLUI_RETURN_VALUE_IF_FAIL(btn_ly, NULL); + + sw = edje_object_part_swallow_get(_EDJ(btn_ly), part_name); + if (sw) { + dbg("Object Already Exists, so Update Only"); + *p_button = sw; + } else { + *p_button = elm_button_add(btn_ly); + elm_object_part_content_set(btn_ly, part_name, *p_button); + } + + return btn_ly; +} + +static void __callui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad != NULL); + int ret = -1; + + if (ad->speaker_status == EINA_TRUE) { + ret = cm_speaker_off(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_speaker_off() is failed"); + return; + } + } else { + ret = cm_speaker_on(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_speaker_on() is failed"); + return; + } + } + _callui_update_speaker_btn(ad, !ad->speaker_status); + + return; +} + +static void __callui_contacts_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_common_launch_contacts(ad); +} + +void _callui_update_speaker_btn(callui_app_data_t *ad, Eina_Bool is_on) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad); + + ad->speaker_status = is_on; + if (is_on) { + _callui_lock_screen_stop_timer(); + } else { + _callui_lock_screen_start_timer(); + } + + /* Update Buttons */ + _callui_create_top_first_button(ad); + _callui_create_quickpanel_speaker_button(ad, EINA_FALSE); + + return; +} + +void _callui_update_headset_btn(callui_app_data_t *ad, Eina_Bool is_on) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad); + ad->headset_status = is_on; + _callui_create_top_third_button(ad); + + return; +} + +void _callui_update_mute_btn(callui_app_data_t *ad, Eina_Bool is_on) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad != NULL); + + ad->mute_status = is_on; + _callui_create_bottom_second_button(ad); + _callui_create_quickpanel_mute_button(ad, EINA_FALSE); + + return; +} + +void _callui_update_extra_vol_btn(callui_app_data_t *ad, Eina_Bool is_on) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad != NULL); + + ad->extra_volume_status = is_on; + _callui_create_bottom_third_button(ad); + + return; +} + +void _callui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + int ret = -1; + gboolean is_mute_on = FALSE; + + if (ad->mute_status == EINA_FALSE) { + is_mute_on = TRUE; + } else { + is_mute_on = FALSE; + } + + ret = cm_set_mute_state(ad->cm_handle, is_mute_on); + if (ret != CM_ERROR_NONE) { + err("cm_set_mute_state() get failed with err[%d]", ret); + return; + } + + _callui_update_mute_btn(ad, is_mute_on); + return; +} + +static void __callui_headset_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad != NULL); + Eina_Bool bupdate_btn = EINA_FALSE; + + if (ad->headset_status == EINA_TRUE) { + ad->headset_status = EINA_FALSE; + ad->speaker_status = EINA_FALSE; + cm_bluetooth_off(ad->cm_handle); + bupdate_btn = EINA_TRUE; + } else { + /* Check If SCO path exists, open if exists*/ + if (EINA_TRUE == _callui_common_is_headset_conected()) { + ad->headset_status = EINA_TRUE; + ad->speaker_status = EINA_FALSE; + cm_bluetooth_on(ad->cm_handle); + bupdate_btn = EINA_TRUE; + } else { + bt_adapter_state_e bt_state = -1; + int ret_code = bt_adapter_get_state(&bt_state); + if ((ret_code == BT_ERROR_NONE) && (bt_state != -1)) { + info("BT status value: %d", bt_state); + if (bt_state == BT_ADAPTER_DISABLED) { + _callui_load_bluetooth_popup(ad); + } else { + _callui_common_launch_bt_app(ad); + } + } else { + err("fail to get vconf key: %d", ret_code); + } + bupdate_btn = EINA_FALSE; + } + } + + if (bupdate_btn) { + if (ad->extra_volume_status == EINA_TRUE) { + int ret = -1; + ret = cm_set_extra_vol(ad->cm_handle, EINA_FALSE); + if (ret != CM_ERROR_NONE) { + err("Fail cm_set_extra_vol"); + } + ad->extra_volume_status = EINA_FALSE; + } + /* Update Headset/Speaker buttons */ + _callui_create_top_first_button(ad); + _callui_create_top_third_button(ad); + _callui_create_bottom_third_button(ad); + } +} + +static void __callui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + + _callui_common_launch_dialer(ad); +} + +static void __callui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + + if (_callui_keypad_get_show_status() == EINA_FALSE) { /*show keypad region*/ + dbg(".."); + /*Actual show with animation*/ + _callui_keypad_show_layout(ad); + } else { + dbg(".."); + /*Hide animation on keypad*/ + _callui_keypad_hide_layout(ad); + } +} + +/* Speaker Button ENABLED */ +Evas_Object *_callui_create_top_first_button(callui_app_data_t *ad) +{ + Evas_Object *btn = NULL; + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + __callui_create_button_style(ad, &btn, PART_TOP_FIRST_BTN); + + evas_object_smart_callback_del(btn, "clicked", __callui_spk_btn_cb); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); + evas_object_smart_callback_add(btn, "clicked", __callui_spk_btn_cb, ad); + if (ad->speaker_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_sixbtn_speaker"); + } else { + elm_object_style_set(btn, "style_call_sixbtn_speaker_on"); + } + + elm_object_disabled_set(btn, EINA_FALSE); + + return btn; +} + +/* Speaker Button DISABLED */ +Evas_Object *_callui_create_top_first_button_disabled(callui_app_data_t *ad) +{ + Evas_Object *btn = NULL; + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + + __callui_create_button_style(ad, &btn, PART_TOP_FIRST_BTN); + elm_object_style_set(btn, "style_call_sixbtn_disabled_speaker"); + + elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); + elm_object_disabled_set(btn, EINA_TRUE); + + return btn; +} + +/* Keypad Button ENABLED */ +Evas_Object *_callui_create_top_second_button(callui_app_data_t *ad) +{ + Evas_Object *btn = NULL; + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + + __callui_create_button_style(ad, &btn, PART_TOP_SECOND_BTN); + elm_object_style_set(btn, "style_call_sixbtn_keypad"); + + evas_object_smart_callback_del(btn, "clicked", __callui_keypad_btn_cb); + evas_object_smart_callback_add(btn, "clicked", __callui_keypad_btn_cb, ad); + elm_object_text_set(btn, _("IDS_CALL_SK3_KEYPAD")); /* ToDo: Handle Keypad/Hide layout and text changes */ + elm_object_disabled_set(btn, EINA_FALSE); + + return btn; +} + +/* Keypad Button DISABLED */ +Evas_Object *_callui_create_top_second_button_disabled(callui_app_data_t *ad) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + Evas_Object *btn = NULL; + + __callui_create_button_style(ad, &btn, PART_TOP_SECOND_BTN); + elm_object_style_set(btn, "style_call_sixbtn_disabled_keypad"); + + elm_object_text_set(btn, _("IDS_CALL_SK3_KEYPAD")); + elm_object_disabled_set(btn, EINA_TRUE); + + return btn; +} + +/* HeadSet Button ENABLED */ +Evas_Object *_callui_create_top_third_button(callui_app_data_t *ad) +{ + Evas_Object *btn = NULL; + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + + __callui_create_button_style(ad, &btn, PART_TOP_THIRD_BTN); + + if (ad->headset_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_sixbtn_headset"); + } else { + elm_object_style_set(btn, "style_call_sixbtn_headset_on"); + } + elm_object_text_set(btn, _("IDS_CALL_BUTTON_BLUETOOTH_ABB")); + evas_object_smart_callback_del(btn, "clicked", __callui_headset_btn_cb); + evas_object_smart_callback_add(btn, "clicked", __callui_headset_btn_cb, ad); + elm_object_disabled_set(btn, EINA_FALSE); + + return btn; +} + +/* HeadSet Button DISABLED */ +Evas_Object *_callui_create_top_third_button_disabled(callui_app_data_t *ad) +{ + Evas_Object *btn = NULL; + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + + __callui_create_button_style(ad, &btn, PART_TOP_THIRD_BTN); + + elm_object_style_set(btn, "style_call_sixbtn_disabled_headset"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_BLUETOOTH_ABB")); + + elm_object_disabled_set(btn, EINA_TRUE); + + return btn; +} + +/* Add-Call/Join button ENABLED*/ +Evas_Object *_callui_create_bottom_first_button(callui_app_data_t *ad) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + Evas_Object *btn = NULL; + + __callui_create_button_style(ad, &btn, PART_BOTTOM_FIRST_BTN); + evas_object_smart_callback_del(btn, "clicked", __callui_addcall_btn_cb); + elm_object_style_set(btn, "style_call_sixbtn_add"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_ADD_CALL")); + evas_object_smart_callback_add(btn, "clicked", __callui_addcall_btn_cb, ad); + + elm_object_disabled_set(btn, EINA_FALSE); + + return btn; +} + +/* Add-Call/Join Button DISABLED */ +Evas_Object *_callui_create_bottom_first_button_disabled(callui_app_data_t *ad) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + Evas_Object *btn = NULL; + + __callui_create_button_style(ad, &btn, PART_BOTTOM_FIRST_BTN); + + elm_object_style_set(btn, "style_call_sixbtn_disabled_add"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_ADD_CALL")); + + elm_object_disabled_set(btn, EINA_TRUE); + + return btn; +} + +/* Mute Button ENABLED */ +Evas_Object *_callui_create_bottom_second_button(callui_app_data_t *ad) +{ + Evas_Object *btn = NULL; + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + + __callui_create_button_style(ad, &btn, PART_BOTTOM_SECOND_BTN); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB")); + if (ad->mute_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_sixbtn_mute"); + } else { + elm_object_style_set(btn, "style_call_sixbtn_mute_on"); + } + elm_object_disabled_set(btn, EINA_FALSE); + + evas_object_smart_callback_del(btn, "clicked", _callui_mute_btn_cb); + evas_object_smart_callback_add(btn, "clicked", _callui_mute_btn_cb, ad); + + return btn; +} + +/* Mute Button DISABLED */ +Evas_Object *_callui_create_bottom_second_button_disabled(callui_app_data_t *ad) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + Evas_Object *btn = NULL; + + __callui_create_button_style(ad, &btn, PART_BOTTOM_SECOND_BTN); + elm_object_style_set(btn, "style_call_sixbtn_disabled_mute"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB")); + + elm_object_disabled_set(btn, EINA_TRUE); + + return btn; +} + +/* Contacts Button ENABLED */ +Evas_Object *_callui_create_bottom_third_button(callui_app_data_t *ad) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + Evas_Object *btn = NULL; + __callui_create_button_style(ad, &btn, PART_BOTTOM_THIRD_BTN); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_CONTACTS")); + evas_object_smart_callback_del(btn, "clicked", __callui_contacts_btn_cb); + evas_object_smart_callback_add(btn, "clicked", __callui_contacts_btn_cb, ad); + elm_object_disabled_set(btn, EINA_FALSE); + elm_object_style_set(btn, "style_call_sixbtn_contacts"); + + return btn; +} + +/* Contacts Button DISABLED */ +Evas_Object *_callui_create_bottom_third_button_disabled(callui_app_data_t *ad) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL); + Evas_Object *btn = NULL; +#if 1 + __callui_create_button_style(ad, &btn, PART_BOTTOM_THIRD_BTN); + elm_object_style_set(btn, "style_call_sixbtn_disabled_contacts"); + + elm_object_text_set(btn, _("IDS_CALL_BUTTON_CONTACTS")); + elm_object_disabled_set(btn, EINA_TRUE); + +#else + __callui_create_button_style(data, &btn, PART_BOTTOM_THIRD_BTN); + elm_object_style_set(btn, "style_call_sixbtn_disabled_contacts"); + + elm_object_disabled_set(btn, EINA_TRUE); + +#endif + return btn; +} + +static void __callui_end_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_IF_FAIL(vd != NULL); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad != NULL); + int ret = -1; + + dbg("vd->type:[%d]", vd->type); + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + if (ad->active) + ret = cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + case VIEW_INCALL_MULTICALL_LIST_VIEW: + { + ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS); + } + break; + default: + err("ERROR - wrong vd type:[%d]", vd->type); + break; + } + + if (ret != CM_ERROR_NONE) { + err("cm_end_call() is failed"); + } + return; +} + +Evas_Object *_callui_create_end_call_button(Evas_Object *parent, void *data) +{ + CALLUI_RETURN_VALUE_IF_FAIL(parent != NULL, NULL); + Evas_Object *btn = NULL; + + callui_app_data_t *ad = _callui_get_app_data(); + if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_SPLIT_VIEW) { + parent = elm_object_part_content_get(parent, PART_SWALLOW_ACTIONS_PANEL); + } + btn = elm_object_part_content_get(parent, PART_END_BTN); + + if (!btn) { + btn = elm_button_add(parent); + elm_object_style_set(btn, "call_icon_only"); + + Evas_Object *icon = elm_image_add(btn); + elm_image_file_set(icon, EDJ_NAME, "call_button_icon_01.png"); + elm_object_part_content_set(btn, "elm.swallow.content", icon); + elm_object_part_content_set(parent, PART_END_BTN, btn); + } + evas_object_smart_callback_del(btn, "clicked", __callui_end_btn_cb); + evas_object_smart_callback_add(btn, "clicked", __callui_end_btn_cb, data); + elm_object_signal_emit(parent, "show_end_btn_bg", "main_ly"); + evas_object_show(btn); + + return btn; +} + +void _callui_destroy_end_call_button(Evas_Object *parent) +{ + CALLUI_RETURN_IF_FAIL(parent != NULL); + Evas_Object *btn = NULL; + + btn = elm_object_part_content_get(parent, PART_END_BTN); + if (btn) { + elm_object_signal_emit(parent, "hide_end_btn_bg", "main_ly"); + evas_object_del(btn); + btn = NULL; + } + return; +} + +Evas_Object *_callui_create_voicecall_button_disabled(void *data) +{ + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + + call_view_data_t *vd = (call_view_data_t *)data; + + CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL); + Evas_Object *icon = NULL; + + layout = _callui_view_callend_get_layout(vd); + + btn = elm_button_add(layout); + elm_object_style_set(btn, "call_icon_only"); + icon = elm_image_add(btn); + elm_image_file_set(icon, EDJ_NAME, "call_button_icon_03.png"); + elm_object_part_content_set(btn, "elm.swallow.content", icon); + + elm_object_part_content_set(layout, "three_btn_voicecall", btn); + elm_object_disabled_set(btn, EINA_TRUE); + evas_object_show(btn); + + return btn; +} + +static void __callui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg("__vcui_voicecall_btn_cb.."); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + char *call_number = (char *)data; + CALLUI_RETURN_IF_FAIL(call_number); + + evas_object_smart_callback_del(obj, "clicked", __callui_voicecall_btn_cb); + + _callui_common_delete_ending_timer(); + ad->speaker_status = EINA_FALSE; + ad->mute_status = EINA_FALSE; + ad->extra_volume_status = EINA_FALSE; + cm_dial_call(ad->cm_handle, call_number, CM_CALL_TYPE_VOICE, ad->sim_slot); + g_free(call_number); + return; +} + +Evas_Object *_callui_create_voicecall_button(void *data, char *number) +{ + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + + call_view_data_t *vd = NULL; + + CALLUI_RETURN_VALUE_IF_FAIL((vd = (call_view_data_t *)data) != NULL, NULL); + Evas_Object *icon = NULL; + layout = _callui_view_callend_get_layout(vd); + + btn = elm_button_add(layout); + elm_object_style_set(btn, "call_icon_only"); + icon = elm_image_add(btn); + elm_image_file_set(icon, EDJ_NAME, "call_button_icon_03.png"); + elm_object_part_content_set(btn, "elm.swallow.content", icon); + + elm_object_part_content_set(layout, "three_btn_voicecall", btn); + + evas_object_smart_callback_del(btn, "clicked", __callui_voicecall_btn_cb); + evas_object_smart_callback_add(btn, "clicked", __callui_voicecall_btn_cb, g_strdup(number)); + + evas_object_show(btn); + return btn; +} + +Evas_Object *_callui_create_message_button_disabled(void *data) +{ + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + + call_view_data_t *vd = (call_view_data_t *)data; + + CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL); + Evas_Object *icon = NULL; + +#if 0 + layout = _callui_view_callend_get_layout(vd); + Evas_Object *sw = NULL; + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_message"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_message", btn); + elm_object_style_set(btn, "style_call_end_message_button_disabled"); + + elm_object_text_set(btn, _("IDS_COM_BODY_MESSAGE")); + elm_object_disabled_set(btn, EINA_TRUE); +#endif + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _callui_view_callend_get_layout(vd); + } + break; + default: + err("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + } + + btn = elm_button_add(layout); + elm_object_style_set(btn, "call_icon_only"); + icon = elm_image_add(btn); + elm_image_file_set(icon, EDJ_NAME, "call_button_icon_04.png"); + elm_object_part_content_set(btn, "elm.swallow.content", icon); + + elm_object_part_content_set(layout, "three_btn_message", btn); + elm_object_disabled_set(btn, EINA_TRUE); + evas_object_show(btn); + + return btn; +} + +static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + char *number = (char *)data; + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_COMPOSE); + char str[CONTACT_NUMBER_BUF_LEN]; + snprintf(str, sizeof(str), "%s%s", "sms:", number); + app_control_set_uri(request, str); + int result = app_control_send_launch_request(request, NULL, NULL); + if (result != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() failed (%d)", result); + } + free(number); + app_control_destroy(request); + + +} + +static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + char *contact_id = (char *)data; + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_VIEW); + app_control_set_mime(request, APP_CONTROL_MIME_CONTACT); + app_control_add_extra_data(request, APP_CONTROL_DATA_ITEM_ID, contact_id); + + int result = app_control_send_launch_request(request, NULL, NULL); + if (result != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() failed (%d)", result); + } + free(contact_id); + app_control_destroy(request); +} + +Evas_Object *_callui_create_view_contact_button(void *data, int ct_id) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL); + + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _callui_view_callend_get_layout(vd); + } + break; + default: + err("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_view_contacts"); + if (sw) { + btn = sw; + } else { + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_view_contacts", btn); + } + + elm_object_style_set(btn, "style_call_end_view_contact_button"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB")); + char str[CONTACT_ID_BUF_LEN]; + sprintf(str, "%d", ct_id); + evas_object_smart_callback_add(btn, "clicked", __vcui_view_contact_btn_cb, (void *)strdup(str)); + + return btn; +} + +Evas_Object *_callui_create_create_contacts_button(void *data, char *number) +{ + + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL); + + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + Evas_Object *sw = NULL; + + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _callui_view_callend_get_layout(vd); + } + break; + default: + err("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_create_contacts"); + if (sw) { + btn = sw; + } else { + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_create_contacts", btn); + } + + info("Going to set style"); + elm_object_style_set(btn, "style_call_end_create_contact_button"); + + elm_object_text_set(btn, _("IDS_COM_OPT_CREATE_CONTACT")); + evas_object_smart_callback_add(btn, "clicked", __vcui_create_contact_btn_cb, (void *)strdup(number)); + + return btn; +} + +static void __vcui_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg("_vcui_create_contact_btn_cb"); + char *number = (char *)data; + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_ADD); + app_control_set_mime(request, APP_CONTROL_MIME_CONTACT); + + if (number) { + app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, number); + } + app_control_send_launch_request(request, NULL, NULL); + free(number); + app_control_destroy(request); +} + +static void __vcui_update_existing_contact_btn_cb(void *data, + Evas_Object *obj, void *event_info) +{ + dbg("__vcui_update_existing_contact_btn_cb"); + char * number = (char *)data; + app_control_h request; + app_control_create(&request); + app_control_set_operation(request, APP_CONTROL_OPERATION_EDIT); + app_control_set_mime(request, APP_CONTROL_MIME_CONTACT); + + if (number) { + app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, number); + } + app_control_send_launch_request(request, NULL, NULL); + free(number); + app_control_destroy(request); +} + +Evas_Object *_callui_create_update_existing_contact_button(void *data, char *number) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL); + + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _callui_view_callend_get_layout(vd); + } + break; + default: + err("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_update"); + if (sw) { + btn = sw; + } else { + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_update", btn); + } + + elm_object_style_set(btn, "style_call_end_update_contact_button"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_UPDATE_EXISTING")); + evas_object_smart_callback_add(btn, "clicked", + __vcui_update_existing_contact_btn_cb, (void *)strdup(number)); + + return btn; +} + +Evas_Object *_callui_create_message_button(void *data, char *number) +{ + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + + call_view_data_t *vd = NULL; + CALLUI_RETURN_VALUE_IF_FAIL((vd = (call_view_data_t *)data) != NULL, NULL); + + Evas_Object *icon = NULL; +#if 0 + layout = _callui_view_callend_get_layout(vd); + Evas_Object *sw = NULL; + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_message"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_message", btn); + elm_object_style_set(btn, "style_call_end_message_button"); + + elm_object_text_set(btn, _("IDS_COM_BODY_MESSAGE")); + evas_object_smart_callback_add(btn, "clicked", __vcui_msg_btn_cb, (void *)strdup(number)); +#endif + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _callui_view_callend_get_layout(vd); + } + break; + default: + err("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + } + + btn = elm_button_add(layout); + elm_object_style_set(btn, "call_icon_only"); + icon = elm_image_add(btn); + elm_image_file_set(icon, EDJ_NAME, "call_button_icon_04.png"); + elm_object_part_content_set(btn, "elm.swallow.content", icon); + + elm_object_part_content_set(layout, "three_btn_message", btn); + evas_object_smart_callback_add(btn, "clicked", __vcui_msg_btn_cb, (void *)strdup(number)); + + evas_object_show(btn); + return btn; +} + +/* Creates thumbnail */ +Evas_Object *_callui_create_thumbnail(Evas_Object *parent, const char *path, thumbnail_type type) +{ + return _callui_create_thumbnail_with_size(parent, path, type, false); +} + +/* Creates thumbnail with possibility to set size in code*/ +Evas_Object *_callui_create_thumbnail_with_size(Evas_Object *parent, const char *path, thumbnail_type type, bool set_size) +{ + if (path && *path && (strcmp(path, "default") != 0)) { + Evas_Object *layout = elm_layout_add(parent); + elm_layout_file_set(layout, EDJ_NAME, group_thumbnail[type]); + + Evas_Object *image = elm_image_add(layout); + elm_image_file_set(image, path, NULL); + elm_image_aspect_fixed_set(image, EINA_TRUE); + elm_image_fill_outside_set(image, EINA_TRUE); + if (set_size) { + evas_object_size_hint_min_set(image, _callui_common_get_scaled_width(thumbnail_size[type]), _callui_common_get_scaled_height(thumbnail_size[type])); + } + elm_object_part_content_set(layout, PART_SWALLOW_IMAGE, image); + + return layout; + } else { + Evas_Object *image = elm_image_add(parent); + elm_image_file_set(image, EDJ_NAME, group_default_thumbnail[type]); + if (set_size) { + evas_object_size_hint_min_set(image, _callui_common_get_scaled_width(thumbnail_size[type]), _callui_common_get_scaled_height(thumbnail_size[type])); + } + return image; + } +} + +/* Caller info name or number*/ +void _callui_show_caller_info_name(void *data, const char *name, Eina_Bool bhold) +{ + Evas_Object *layout = NULL; + + layout = __callui_create_caller_info(data, bhold); + edje_object_part_text_set(_EDJ(layout), "txt_call_name", name); +} + +/* Caller info number */ +void _callui_show_caller_info_number(void *data, const char *number, Eina_Bool bhold) +{ + Evas_Object *layout = NULL; + + layout = __callui_create_caller_info(data, bhold); + edje_object_part_text_set(_EDJ(layout), "txt_phone_num", number); +} + +/* Caller info status*/ +Evas_Object *_callui_show_caller_info_status(void *data, const char *status, Eina_Bool bhold) +{ + Evas_Object *layout = NULL; + + layout = _callvm_get_view_layout(data); + edje_object_part_text_set(_EDJ(layout), "call_txt_status", status); + + return layout; +} + +Evas_Object *_callui_show_caller_id(Evas_Object *contents, char *path, bool is_ending_view) +{ + dbg(".."); + Evas_Object *layout = _callui_create_thumbnail(contents, path, THUMBNAIL_186); + + elm_object_part_content_set(contents, "caller_id", layout); + + /*Hide default caller-ID*/ + elm_object_signal_emit(contents, "hide_default_cid", ""); + + return layout; +} + +Evas_Object *_callui_view_create_focus_layout(Evas_Object *parent) +{ + Evas_Object *focus = elm_button_add(parent); + elm_object_style_set(focus, "focus"); + + Evas_Object *evas_object = evas_object_rectangle_add(evas_object_evas_get(parent)); + elm_object_part_content_set(focus, "elm.swallow.content", evas_object); + evas_object_color_set(evas_object, 0, 0, 0, 0); + evas_object_show(evas_object); + + return focus; +} + +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); + +/* if (_vcui_keypad_get_show_status() == EINA_TRUE) { + _vcui_keypad_hide(vd); + } + */ + cm_hold_call(ad->cm_handle); +} + +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); + + cm_unhold_call(ad->cm_handle); +} + +static void __callui_move_more_option(Evas_Object *ctxpopup) +{ + callui_app_data_t *ad = _callui_get_app_data(); + Evas_Coord w = 0, h = 0; + int pos = -1; + + elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h); + pos = elm_win_rotation_get(ad->win); + dbg("w: %d, h: %d", w, h); + + switch (pos) { + case 0: + case 180: + evas_object_move(ctxpopup, (w / 2), h); + break; + case 90: + evas_object_move(ctxpopup, (h / 2), w); + break; + 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) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + call_view_data_t *vd = (call_view_data_t *)data; + + if (_callui_lock_screen_is_lockscreen_shown() == TRUE) { + dbg("Lock screen active. Do not show popup."); + return; + } + + if (ad->ctxpopup == NULL) { + Evas_Object *ctxpopup = NULL; + + ctxpopup = elm_ctxpopup_add(ad->main_ly); + 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 (vd->type != VIEW_INCALL_MULTICALL_SPLIT_VIEW) { + if (ad->active != NULL) { + elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_HOLD"), NULL, __callui_hold_btn_cb, ad); + } else {/* CALL_HOLD */ + elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_RESUME_ABB"), NULL, __callui_unhold_btn_cb, ad); + } + } + + /* SIM Service */ +/* if (__vcui_view_popup_is_sim_available() == EINA_TRUE) { + ctx_it = elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_OPT_SIM_SERVICES"), + NULL, __vcui_view_popup_sim_service_cb, vd); + } +*/ + 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(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; + } +} + +int _callui_set_object_data(Evas_Object *obj, char *key, void *value) +{ + CALLUI_RETURN_VALUE_IF_FAIL(obj, -1); + CALLUI_RETURN_VALUE_IF_FAIL(key, -1); + CALLUI_RETURN_VALUE_IF_FAIL(value, -1); + + evas_object_data_set(obj, key, value); + return 0; +} + +void *_callui_get_object_data(Evas_Object *obj, char *key) +{ + CALLUI_RETURN_VALUE_IF_FAIL(obj, NULL); + CALLUI_RETURN_VALUE_IF_FAIL(key, NULL); + + return evas_object_data_get(obj, key); +} + +static void __callui_unload_second_call_popup(callui_app_data_t *ad) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad); + if (ad->second_call_popup) { + evas_object_del(ad->second_call_popup); + ad->second_call_popup = NULL; + } +} + +static char *__callui_gl_second_call_option_label_get(void *data, Evas_Object *obj, const char *part) +{ + CALLUI_RETURN_VALUE_IF_FAIL(part, NULL); + CALLUI_RETURN_VALUE_IF_FAIL(data, NULL); + if (strcmp(part, "elm.text.main.left") == 0) { + char *markup_txt = NULL; + second_call_popup_data_t *item_data = (second_call_popup_data_t *)data; + if (strlen(item_data->option_msg) > 0) { + markup_txt = evas_textblock_text_utf8_to_markup(NULL, item_data->option_msg); + } + return markup_txt; + } else { + return NULL; + } +} + +static void __callui_gl_second_call_option_del_cb(void *data, Evas_Object *obj EINA_UNUSED) +{ + second_call_popup_data_t *item_data = (second_call_popup_data_t *)data; + g_free(item_data); +} + +static void __callui_gl_second_call_option_sel(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + Elm_Object_Item *item = (Elm_Object_Item *) event_info; + call_data_t *hold_call_data = NULL; + call_data_t *unhold_call_data = NULL; + second_call_popup_data_t *item_data = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + + __callui_unload_second_call_popup(ad); + + if (item != NULL) { + item_data = (second_call_popup_data_t *) elm_object_item_data_get(item); + CALLUI_RETURN_IF_FAIL(item_data); + dbg("index: %d", item_data->index); + + hold_call_data = ad->held; + unhold_call_data = ad->active; + if ((unhold_call_data) && (hold_call_data == NULL)) { + dbg("1 active call OR 1 active conference call"); + if (item_data->index == 0) { + cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_HOLD_ACTIVE_AND_ACCEPT); + } else if (item_data->index == 1) { + cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_ACTIVE_AND_ACCEPT); + } else { + err("Wrong index.. Should never get here"); + } + } else if (((unhold_call_data) && (hold_call_data))) { + dbg("1 active call + 1 held call OR 1 active conf call + 1 held call OR 1 active call + 1 held conf call"); + if (item_data->index == 0) { + cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_ACTIVE_AND_ACCEPT); + } else if (item_data->index == 1) { + cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_HOLD_AND_ACCEPT); + } else if (item_data->index == 2) { + cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_ALL_AND_ACCEPT); + } else { + err("Wrong index.. Should never get here"); + } + } + + } +} + +static void __callui_second_call_cancel_btn_response_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + + __callui_unload_second_call_popup(data); + _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, -1, NULL, NULL); + + return; +} + +void _callui_load_second_call_popup(callui_app_data_t *ad) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad); + Evas_Object *box = NULL; + call_data_t *hold_call_data = NULL; + call_data_t *unhold_call_data = NULL; + char *hold_call_number = NULL; + char *hold_call_name = NULL; + char *unhold_call_number = NULL; + char *unhold_call_name = NULL; + const char *temp_str = NULL; + second_call_popup_data_t *item_data = NULL; + Elm_Genlist_Item_Class *itc = NULL; + Evas_Object *genlist = NULL; + CALLUI_RETURN_IF_FAIL(ad); + + hold_call_data = ad->held; + unhold_call_data = ad->active; + if (unhold_call_data == NULL) { + err("active call data is null"); + return; + } + + __callui_unload_second_call_popup(ad); + + ad->second_call_popup = elm_popup_add(ad->win); + CALLUI_RETURN_IF_FAIL(ad->second_call_popup); + elm_popup_align_set(ad->second_call_popup, ELM_NOTIFY_ALIGN_FILL, 1.0); + elm_object_domain_translatable_part_text_set(ad->second_call_popup, "title,text", CALLUI_TEXT_DOMAIN, "IDS_CALL_HEADER_ANSWER_CALL_ABB"); + evas_object_size_hint_weight_set(ad->second_call_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + box = elm_box_add(ad->second_call_popup); + CALLUI_RETURN_IF_FAIL(box); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + genlist = elm_genlist_add(box); + CALLUI_RETURN_IF_FAIL(genlist); + elm_genlist_realization_mode_set(genlist, EINA_TRUE); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + + itc = elm_genlist_item_class_new(); + CALLUI_RETURN_IF_FAIL(itc); + + itc->item_style = "1line"; + itc->func.text_get = __callui_gl_second_call_option_label_get; + itc->func.content_get = NULL; + itc->func.state_get = NULL; + itc->func.del = __callui_gl_second_call_option_del_cb; + + if (hold_call_data != NULL) { + hold_call_number = hold_call_data->call_num; + hold_call_name = hold_call_data->call_ct_info.call_disp_name; + if (strlen(hold_call_name) == 0) + hold_call_name = hold_call_number; + } + + if (unhold_call_data != NULL) { + unhold_call_number = unhold_call_data->call_num; + unhold_call_name = unhold_call_data->call_ct_info.call_disp_name; + if (strlen(unhold_call_name) == 0) + unhold_call_name = unhold_call_number; + } + + if ((unhold_call_data) && (unhold_call_data->member_count == 1) && (hold_call_data == NULL)) { + dbg("1 active call"); + /* First option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 0; + memset(item_data->option_msg, 0x00, 512); + temp_str = _("IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"); + snprintf(item_data->option_msg, 512, temp_str, unhold_call_name); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Second option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 1; + memset(item_data->option_msg, 0x00, 512); + temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS"); + snprintf(item_data->option_msg, 512, temp_str, unhold_call_name); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + } else if ((unhold_call_data) && (unhold_call_data->member_count > 1) && (hold_call_data == NULL)) { + dbg("1 active conference call"); + /* First option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 0; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, _("IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"), 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Second option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 1; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_CONFERENCE_CALL"), 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + } else if ((unhold_call_data) && (hold_call_data) && (unhold_call_data->member_count == 1) && (hold_call_data->member_count == 1)) { + dbg("1 active call + 1 held call"); + /* First option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 0; + memset(item_data->option_msg, 0x00, 512); + temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS"); + snprintf(item_data->option_msg, 512, temp_str, unhold_call_name); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Second option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 1; + memset(item_data->option_msg, 0x00, 512); + temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS"); + snprintf(item_data->option_msg, 512, temp_str, hold_call_name); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Third option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 2; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_ALL_CURRENT_CALLS"), 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + } else if ((unhold_call_data) && (hold_call_data) && (unhold_call_data->member_count > 1) && (hold_call_data->member_count == 1)) { + dbg("1 active conf call + 1 held call"); + /* First option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 0; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, "End conference call", 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Second option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 1; + memset(item_data->option_msg, 0x00, 512); + temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS"); + snprintf(item_data->option_msg, 512, temp_str, hold_call_name); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Third option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 2; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_ALL_CURRENT_CALLS"), 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + } else if ((unhold_call_data) && (hold_call_data) && (unhold_call_data->member_count == 1) && (hold_call_data->member_count > 1)) { + dbg("1 active call + 1 held conf call"); + /* First option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 0; + memset(item_data->option_msg, 0x00, 512); + temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS"); + snprintf(item_data->option_msg, 512, temp_str, unhold_call_name); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Second option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 1; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_CONFERENCE_CALL"), 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + + /* Third option */ + item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t)); + if (item_data == NULL) { + elm_genlist_item_class_free(itc); + return; + } + item_data->index = 2; + memset(item_data->option_msg, 0x00, 512); + strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_ALL_CURRENT_CALLS"), 512-1); + elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad); + } else { + err("invalid call data!!"); + elm_genlist_item_class_free(itc); + return; + } + + evas_object_smart_callback_add(ad->second_call_popup, "response", + __callui_second_call_cancel_btn_response_cb, ad); + eext_object_event_callback_add(ad->second_call_popup, EEXT_CALLBACK_BACK, + __callui_second_call_cancel_btn_response_cb, ad); + evas_object_smart_callback_add(ad->second_call_popup, "block,clicked", + __callui_second_call_cancel_btn_response_cb, ad); + + elm_box_pack_end(box, genlist); + evas_object_show(genlist); + elm_genlist_item_class_free(itc); + + evas_object_size_hint_min_set(box, ELM_SCALE_SIZE(POPUP_LIST_W), ELM_SCALE_SIZE(POPUP_LIST_ITEM_H * (item_data->index + 1))); + evas_object_show(box); + elm_object_content_set(ad->second_call_popup, box); + + evas_object_show(ad->second_call_popup); +} + +static void __callui_unload_bt_popup(callui_app_data_t *ad) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad); + if (ad->bt_popup) { + evas_object_del(ad->bt_popup); + ad->bt_popup = NULL; + } + return; +} + +static void __callui_bt_popup_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + + __callui_unload_bt_popup(data); + return; +} + +static void __callui_bt_popup_ok_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad); + + __callui_unload_bt_popup(ad); + /* Launch the BT App Control */ + _callui_common_launch_bt_app(ad); + return; +} + +void _callui_load_bluetooth_popup(callui_app_data_t *ad) +{ + Evas_Object *btn_ok = NULL; + Evas_Object *btn_cancel = NULL; + CALLUI_RETURN_IF_FAIL(ad); + + __callui_unload_bt_popup(ad); + ad->bt_popup = elm_popup_add(ad->win); + elm_popup_align_set(ad->bt_popup, ELM_NOTIFY_ALIGN_FILL, 1.0); + evas_object_size_hint_weight_set(ad->bt_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + elm_object_domain_translatable_part_text_set(ad->bt_popup, "title,text", CALLUI_TEXT_DOMAIN, "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"); + elm_object_text_set(ad->bt_popup, _("IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON")); + + btn_cancel = elm_button_add(ad->bt_popup); + elm_object_style_set(btn_cancel, "popup"); + elm_object_text_set(btn_cancel, _("IDS_COM_SK_CANCEL")); + elm_object_part_content_set(ad->bt_popup, "button1", btn_cancel); + evas_object_smart_callback_add(btn_cancel, "clicked", __callui_bt_popup_cancel_btn_cb, ad); + + btn_ok = elm_button_add(ad->bt_popup); + elm_object_style_set(btn_ok, "popup"); + elm_object_text_set(btn_ok, _("IDS_COM_SK_OK")); + elm_object_part_content_set(ad->bt_popup, "button2", btn_ok); + evas_object_smart_callback_add(btn_ok, "clicked", __callui_bt_popup_ok_btn_cb, ad); + + eext_object_event_callback_add(ad->bt_popup, EEXT_CALLBACK_BACK, __callui_bt_popup_cancel_btn_cb, ad); + + evas_object_show(ad->bt_popup); + return; +} + +void _callui_create_extravolume_notify_popup() +{ + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad != NULL); + char *text = NULL; + cm_audio_state_type_e snd_path = CM_AUDIO_STATE_NONE_E; + + cm_get_audio_state(ad->cm_handle, &snd_path); + dbg("sound path : %d", snd_path); + switch (snd_path) { + case CM_AUDIO_STATE_BT_E: + { + text = _("IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"); + } + break; + case CM_AUDIO_STATE_EARJACK_E: + { + text = _("IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"); + } + break; + default: + text = _("IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"); + break; + } + _callui_create_toast_message(text); + +} + +void _callui_create_toast_message(char *string) +{ + dbg("$$$$$$ Noti-String : %s", string); + + if (string) { + notification_status_message_post(string); + } + return; +} diff --git a/src/callui-view-incoming-call.c b/src/callui-view-incoming-call.c new file mode 100644 index 0000000..951eaa5 --- /dev/null +++ b/src/callui-view-incoming-call.c @@ -0,0 +1,687 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui-view-manager.h" +#include "callui-view-circle.h" +#include "callui-view-incoming-call.h" +#include "callui-view-incoming-lock.h" +#include "callui-view-layout-wvga.h" +#include "callui-view-elements.h" +#include +#include "callui-common.h" + +#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data" +#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key" +#define VIEW_INCOMING_LOCK_LAYOUT_ID "INCOMINGLOCKVIEW" +#define MAX_MSG_COUNT 6 + +static Evas_Object *__callui_view_incoming_call_create_reject_msg_layout(void *data); +static Eina_Bool __callui_view_incoming_lock_reject_msg_available(callui_app_data_t *ad, char *call_num); + +#define SCALE_SIZE(x, h) (((x) * (h)) / MAIN_SCREEN_BIG_H) + +static Evas_Object *__callui_view_incoming_call_create_contents(void *data, char *grpname) +{ + if (data == NULL) { + err("ERROR"); + return NULL; + } + callui_app_data_t *ad = (callui_app_data_t *)data; + Evas_Object *eo; + + /* load edje */ + eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname); + if (eo == NULL) + return NULL; + + return eo; +} + +static void __reject_msg_list_param_reset(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + priv->y_momentum = 0; + priv->reject_with_msg_start_y = 0; + priv->reject_with_msg_cur_y = 0; + priv->bmouse_down_pressed = EINA_FALSE; +} + +static void __reject_screen_transit_complete_cb(void *data, Elm_Transit *transit) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE); + elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg"); + evas_object_hide(priv->dimming_ly); + } else { + elm_object_tree_focus_allow_set(priv->msg_glist, EINA_TRUE); + elm_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg"); + evas_object_show(priv->dimming_ly); + } + + __reject_msg_list_param_reset(vd); + + return; +} + +static Eina_Bool __rej_msg_show_sliding_effect(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *screen_ly; + Elm_Transit *transit; + int xpos = 0; + int ypos = 0; + int width = 0; + int height = 0; + int transit_y = 0; + int max_height_limit = 0; + + screen_ly = priv->lock_reject_with_msg; + transit = elm_transit_add(); + elm_transit_object_add(transit, screen_ly); + + evas_object_geometry_get(priv->lock_reject_with_msg, &xpos, &ypos, &width, &height); + dbg("reject_w_msg dimensions ---> x[%d] y[%d] w[%d] h[%d]", xpos, ypos, width, height); + dbg("priv->y_momentum: %d", priv->y_momentum); + + /*Max height possible*/ + max_height_limit = (priv->msg_list_height); + dbg("max_height_limit: %d", max_height_limit); + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + dbg("Close list... Check if opening is feasible"); + + if (priv->y_momentum) { + dbg("Momentum..."); + + if (priv->y_momentum < -500) { + dbg("Huge Momentum... Move the layout"); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } else { + dbg("Small Momentum.."); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < max_height_limit/2) { /*Layout position is lesser than half of the height*/ + dbg("Movement L.T. HALF the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + dbg("Movement G.T. HALF the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } else { + dbg("NO Momentum... Dont open"); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < max_height_limit/2) { /*Layout position is lesser than half of the height*/ + dbg("Movement L.T. HALF the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + dbg("Movement G.T. HALF the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } else { + dbg("Open list... Check if closing is feasible"); + + if (priv->y_momentum) { + dbg("Momentum..."); + + if (priv->y_momentum > 500) { + dbg("Huge Momentum... Move the layout"); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else { + dbg("Small Momentum.."); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < (max_height_limit * 0.8)) { /*Layout position is lesser than 80% of the height*/ + dbg("Movement L.T. 80 percent of the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + dbg("Movement G.T. 80 percent of the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } else { + dbg("NO Momentum... Dont close"); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < (max_height_limit * 0.8)) { /*Layout position is lesser than 80% of the height*/ + dbg("Movement L.T. 80 percent of the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + dbg("Movement G.T. 80 percent of the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } + + elm_transit_del_cb_set(transit, __reject_screen_transit_complete_cb, vd); + + if (priv->y_momentum < 0) + priv->y_momentum = -priv->y_momentum; + + if (priv->y_momentum < 1500) { + elm_transit_duration_set(transit, 0.5); + } else if (priv->y_momentum >= 1500 && priv->y_momentum < 3000) { + elm_transit_duration_set(transit, 0.4); + } else if (priv->y_momentum >= 3000 && priv->y_momentum < 4500) { + elm_transit_duration_set(transit, 0.3); + } else if (priv->y_momentum >= 4500) { + elm_transit_duration_set(transit, 0.2); + } + evas_object_show(screen_ly); /*It must be called before elm_transit_go(). transit policy*/ + elm_transit_objects_final_state_keep_set(transit, EINA_TRUE); /*Keep the window position as end of effect.*/ + elm_transit_go(transit); + + return ECORE_CALLBACK_CANCEL; +} + +static void __callui_view_incoming_call_reject_with_msg_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (priv->bmouse_down_pressed) { + ecore_idle_enterer_before_add(__rej_msg_show_sliding_effect, vd); + } else { + dbg("mouse down was NOT pressed - DONT handle up event"); + } +} + +static void __callui_view_incoming_call_handle_reject_with_msg_event(void *data) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(data != NULL); + + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + int max_height_limit = 0; + + /*Max height possible*/ + max_height_limit = priv->msg_list_height; + dbg("max_height_limit: %d", max_height_limit); + + dbg("mouse down was pressed - handle move event"); + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + evas_object_move(priv->lock_reject_with_msg, 0, -max_height_limit); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + __reject_screen_transit_complete_cb(vd, NULL); + } else { + /*Special case - Move the max distance - msg-list height*/ + evas_object_move(priv->lock_reject_with_msg, 0, 0); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + __reject_screen_transit_complete_cb(vd, NULL); + } +} + +static void __callui_view_incoming_call_reject_msg_focus_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + Evas_Event_Key_Down *ev = event_info; + if (!ev) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) + return; + + if ((!strcmp(ev->keyname, "Return")) || + (!strcmp(ev->keyname, "KP_Enter"))) { + dbg(".."); + __callui_view_incoming_call_handle_reject_with_msg_event(data); + } +} + +static Evas_Event_Flags __reject_msg_flick_gesture_move_event_cb(void *data, void *event_info) +{ + dbg("Flick_Gesture Move"); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Elm_Gesture_Line_Info *info = (Elm_Gesture_Line_Info *)event_info; + + dbg("*********************************************"); + dbg("info->angle = %lf", info->angle); + dbg("info->momentum.mx = %d, info->momentum.my = %d", info->momentum.mx, info->momentum.my); + dbg("info->momentum.n = %d", info->momentum.n); + dbg("info->momentum.tx = %d, info->momentum.ty = %d", info->momentum.tx, info->momentum.ty); + dbg("info->momentum.x1 = %d, info->momentum.x2 = %d", info->momentum.x1, info->momentum.x2); + dbg("info->momentum.y1 = %d, info->momentum.y2 = %d", info->momentum.y1, info->momentum.y2); + dbg("*********************************************"); + + priv->y_momentum = info->momentum.my; + + return EVAS_EVENT_FLAG_NONE; +} + +static void __reject_msg_create_gesture_layer(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *rej_msg_bg = NULL; + + rej_msg_bg = _callui_edje_object_part_get(priv->lock_reject_with_msg, "reject_msg_bg"); + if (priv->reject_msg_gl) { + evas_object_del(priv->reject_msg_gl); + priv->reject_msg_gl = NULL; + } + + priv->reject_msg_gl = elm_gesture_layer_add(priv->lock_reject_with_msg); + if (FALSE == elm_gesture_layer_attach(priv->reject_msg_gl, rej_msg_bg)) { + dbg("elm_gesture_layer_attach failed !!"); + evas_object_del(priv->reject_msg_gl); + priv->reject_msg_gl = NULL; + } else { + elm_gesture_layer_cb_set(priv->reject_msg_gl, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __reject_msg_flick_gesture_move_event_cb, vd); + } +} + +static void __callui_view_incoming_call_reject_with_msg_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Event_Mouse_Move *ev = event_info; + + priv->reject_with_msg_start_y = ev->cur.canvas.y; + priv->bmouse_down_pressed = EINA_TRUE; +} + +static void __callui_view_incoming_call_reject_with_msg_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Event_Mouse_Move *ev = event_info; + int diff_y = 0; + int max_height_limit = 0; + + /*Max height possible*/ + max_height_limit = priv->msg_list_height; + dbg("max_height_limit: %d", max_height_limit); + + if (!priv->bmouse_down_pressed) { + dbg("mouse down was NOT pressed - DONT handle move event"); + return; + } + dbg("mouse down was pressed - handle move event"); + priv->reject_with_msg_cur_y = ev->cur.canvas.y; + + diff_y = priv->reject_with_msg_cur_y - priv->reject_with_msg_start_y; + dbg("diff_y [<<< %d >>>>]", diff_y); + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + elm_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg"); + if ((diff_y > -max_height_limit) && (diff_y <= 0)) { + /*Lies between 0 and msg-list layout height*/ + evas_object_move(priv->lock_reject_with_msg, 0, diff_y); + } else if (diff_y <= -max_height_limit) { + /*Special case - Move the max distance - msg-list height*/ + evas_object_move(priv->lock_reject_with_msg, 0, -max_height_limit); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + __reject_screen_transit_complete_cb(vd, NULL); + } + } else { + if ((diff_y >= 0) && (diff_y < max_height_limit)) { + /*Lies between 0 and msg-list layout height*/ + evas_object_move(priv->lock_reject_with_msg, 0, -(max_height_limit - diff_y)); + } else if (diff_y >= max_height_limit) { + /*Special case - Move the max distance - msg-list height*/ + evas_object_move(priv->lock_reject_with_msg, 0, 0); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + __reject_screen_transit_complete_cb(vd, NULL); + } + } +} + +static void __reject_msg_list_height_update(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + int msg_cnt = 0; + if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) { + warn("vconf_get_int failed."); + } + if (msg_cnt == 0) + msg_cnt = 1; + + int win_h = 0; + ecore_x_window_size_get(ecore_x_window_root_first_get(), NULL, &win_h); + priv->msg_list_height = SCALE_SIZE((REJ_MSG_LIST_CREATE_MSG_BTN_H + ((ITEM_SIZE_H) * msg_cnt)), win_h);/* bottom btn height + (genlist item height * msg count) */ + if (priv->msg_list_height > (SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h))) { + priv->msg_list_height = SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h); + } +} + +static void __reject_msg_create_glist(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_IF_FAIL(vd); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + CALLUI_RETURN_IF_FAIL(priv); + Elm_Object_Item *item = NULL; + int msg_cnt = 0; + int index = 0; + + /* msg count from setting */ + if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) { + warn("vconf_get_int failed."); + } + dbg("msg_cnt: %d", msg_cnt); + + /* create gen list */ + if (priv->msg_glist) { + evas_object_del(priv->msg_glist); + priv->msg_glist = NULL; + } + + priv->msg_glist = elm_genlist_add(priv->lock_reject_with_msg); + elm_genlist_homogeneous_set(priv->msg_glist, EINA_TRUE); + elm_genlist_mode_set(priv->msg_glist, ELM_LIST_COMPRESS); + elm_scroller_content_min_limit(priv->msg_glist, EINA_FALSE, EINA_TRUE); + CALLUI_RETURN_IF_FAIL(priv->msg_glist); + elm_genlist_realization_mode_set(priv->msg_glist, EINA_TRUE); + + evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd); + evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(priv->lock_reject_with_msg, "swl_msglist", priv->msg_glist); + + priv->itc_reject_msg = _callui_view_incoming_lock_create_item_class(); + + if (msg_cnt == 0) { + index = -1; + item = _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index); + if (item) { + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + } + } else { + for (index = 0; index < msg_cnt; index++) { + _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index); + } + } + elm_genlist_item_class_free(priv->itc_reject_msg); + priv->itc_reject_msg = NULL; + + _callui_view_incoming_lock_create_reject_msg_button(priv->lock_reject_with_msg, "bottom_btn", data); + + /*Adjust the list height*/ + __reject_msg_list_height_update(vd); + if (msg_cnt < 2) + elm_object_signal_emit(priv->lock_reject_with_msg, "set_1item_list", ""); + else if (msg_cnt <= MAX_MSG_COUNT) { + char signal[16] = {0,}; + snprintf(signal, 16, "set_%ditems_list", msg_cnt); + elm_object_signal_emit(priv->lock_reject_with_msg, signal, ""); + } + elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE); +} + +void _callui_view_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd) +{ + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *eo = priv->contents; + char *file_path = NULL; + call_data_t *call_data = NULL; + + call_data = ad->incom; + if (call_data == NULL) { + err("call data is null"); + return; + } + + file_path = call_data->call_ct_info.caller_id_path; + + sec_dbg("file_path: %s", file_path); + if (strcmp(file_path, "default") != 0) { + _callui_show_caller_id(priv->caller_info, file_path, FALSE); + } + + char *call_name = call_data->call_ct_info.call_disp_name; + char *call_number = NULL; + if (call_data->call_disp_num[0] != '\0') { + call_number = call_data->call_disp_num; + } else { + call_number = call_data->call_num; + } + if (strlen(call_name) == 0) { + _callui_show_caller_info_name(ad, call_number, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "1line", "caller_name"); + } else { + _callui_show_caller_info_name(ad, call_name, EINA_FALSE); + _callui_show_caller_info_number(ad, call_number, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "2line", "caller_name"); + } + + _callui_show_caller_info_status(ad, _("IDS_CALL_BODY_INCOMING_CALL"), EINA_FALSE); + + _callui_view_circle_create_accept_layout(ad, vd); + _callui_view_circle_create_reject_layout(ad, vd); + + priv->dimming_ly = __callui_view_incoming_call_create_contents(ad, "dimming_ly"); + evas_object_resize(priv->dimming_ly, ad->root_w, ad->root_h); + evas_object_move(priv->dimming_ly, 0, 0); + + if (__callui_view_incoming_lock_reject_msg_available(ad, call_number)) { + __callui_view_incoming_call_create_reject_msg_layout(vd); + } + + evas_object_show(eo); +} + +static Eina_Bool __callui_view_incoming_lock_reject_msg_available(callui_app_data_t *ad, char *call_num) +{ + CALLUI_RETURN_VALUE_IF_FAIL(ad, EINA_FALSE); + CALLUI_RETURN_VALUE_IF_FAIL(call_num, EINA_FALSE); + + if (strlen(call_num) <= 0) { + info("Invalid number"); + return EINA_FALSE; + } +/* else if (ad->b_msg_restricted) { + CALL_UI_DEBUG(VC_LOG_WARN, "MDM"); + return EINA_FALSE; + } +*/ + return EINA_TRUE; +} + +static void __callui_view_incoming_lock_reject_msg_close(void *data) +{ + CALLUI_RETURN_IF_FAIL(data != NULL); + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (EINA_FALSE != evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + evas_object_move(priv->lock_reject_with_msg, 0, 0); + elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow-landscape", "reject_msg"); + evas_object_hide(priv->dimming_ly); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, EINA_FALSE); + } +} + +static void __callui_view_incoming_call_hw_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Up *ev = event_info; + if (ev->button == 3) { + /* Handle mouse right button event */ + __callui_view_incoming_lock_reject_msg_close(data); + } +} + +void _callui_view_incoming_call_ondestroy(void *data) +{ + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)data; + callui_app_data_t *ad = _callui_get_app_data(); + if (priv->lock_reject_with_msg) { + evas_object_event_callback_del(priv->lock_reject_with_msg, EVAS_CALLBACK_MOUSE_UP, + __callui_view_incoming_call_hw_mouse_up_cb); + evas_object_event_callback_del(ad->win_conformant, EVAS_CALLBACK_MOUSE_UP, + __callui_view_incoming_call_hw_mouse_up_cb); + + evas_object_del(priv->lock_reject_with_msg); + priv->lock_reject_with_msg = NULL; + evas_object_del(priv->dimming_ly); + priv->dimming_ly = NULL; + } +} + +static Evas_Object *__callui_view_incoming_call_create_reject_msg_layout(void *data) +{ + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + callui_app_data_t *ad = _callui_get_app_data(); + Evas_Object *rej_msg_bg = NULL; + Evas_Object *focus = NULL; + + if (priv->lock_reject_with_msg != NULL) { + evas_object_event_callback_del(priv->lock_reject_with_msg, + EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb); + evas_object_event_callback_del(ad->win_conformant, + EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb); + + evas_object_del(priv->lock_reject_with_msg); + priv->lock_reject_with_msg = NULL; + } + priv->lock_reject_with_msg = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_REJECT_WITH_MSG); + + focus = _callui_view_create_focus_layout(priv->lock_reject_with_msg); + + elm_object_part_content_set(priv->lock_reject_with_msg, "reject_msg_focus", focus); + evas_object_event_callback_add(focus, EVAS_CALLBACK_KEY_DOWN, + __callui_view_incoming_call_reject_msg_focus_key_down, vd); + + evas_object_resize(priv->lock_reject_with_msg, ad->root_w, ad->root_h); + + __reject_msg_create_gesture_layer(vd); + + rej_msg_bg = _callui_edje_object_part_get(priv->lock_reject_with_msg, "reject_msg_bg"); + evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_incoming_call_reject_with_msg_mouse_down_cb, vd); + evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_incoming_call_reject_with_msg_mouse_move_cb, vd); + evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_reject_with_msg_mouse_up_cb, vd); + + elm_object_part_text_set(priv->lock_reject_with_msg, "reject_msg_text", _("IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE")); + + elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg"); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, EINA_FALSE); + evas_object_hide(priv->dimming_ly); + + __reject_msg_list_param_reset(vd); + + evas_object_event_callback_add(ad->win_conformant, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb, vd); + evas_object_event_callback_add(priv->lock_reject_with_msg, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb, vd); + + evas_object_show(priv->lock_reject_with_msg); + _callui_view_incoming_lock_reject_msg_create_call_setting_handle(vd); + __reject_msg_create_glist(vd); + return priv->lock_reject_with_msg; +} + +int _callui_view_incoming_call_oncreate(call_view_data_t *view_data, void *appdata) +{ + dbg("mt-lock view create!!"); + + callui_app_data_t *ad = (callui_app_data_t *)appdata; + dbg(" active %d", ad->active); + dbg(" incoming %d", ad->incom); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) view_data->priv; + + evas_object_resize(ad->win, ad->root_w, ad->root_h); + evas_object_pointer_mode_set(ad->win, EVAS_OBJECT_POINTER_MODE_NOGRAB); + if (ad->main_ly) { + priv->contents = __callui_view_incoming_call_create_contents(ad, GRP_MAIN_LY); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + + priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info"); + if (!priv->caller_info) { + priv->caller_info = __callui_view_incoming_call_create_contents(ad, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + } + elm_object_signal_emit(priv->contents, "mt_circle_bg_show", "mt_view"); + _callui_destroy_end_call_button(priv->contents); + evas_object_name_set(priv->caller_info, VIEW_INCOMING_LOCK_LAYOUT_ID); + } + if (ad->lock_screen_handle != NULL && _callui_lock_screen_is_lockscreen_shown() == TRUE) { + _callui_lock_screen_hide_layout(ad->lock_screen_handle); + } + + return 0; +} diff --git a/src/callui-view-incoming-lock.c b/src/callui-view-incoming-lock.c new file mode 100755 index 0000000..00ffbac --- /dev/null +++ b/src/callui-view-incoming-lock.c @@ -0,0 +1,496 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include +#include +#include +#include "callui.h" + +#include "notification.h" +#include +#include "callui.h" +#include "callui-view-layout-wvga.h" +#include "callui-view-elements.h" +#include "callui-view-active-incoming-call.h" +#include "callui-view-incoming-call.h" +#include "callui-view-incoming-lock.h" +#include "callui-common.h" +#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key" +#define CALLUI_CST_SO_PATH "/usr/apps/setting-call-efl/lib/ug/libsetting-call-efl.so" +#define CALLUI_CST_REJECT_MSG_GET "cst_reject_msg_get" +#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data" + +static int __callui_view_incoming_lock_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata); +static int __callui_view_incoming_lock_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_incoming_lock_onhide(call_view_data_t *view_data); +static int __callui_view_incoming_lock_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_incoming_lock_ondestroy(call_view_data_t *view_data); +static int __callui_view_incoming_lock_onrotate(call_view_data_t *view_data); + +call_view_data_t *_callui_view_incoming_lock_new(callui_app_data_t *ad) +{ + dbg("_callui_view_incoming_lock_new"); + static call_view_data_t incoming_lock_view = { + .type = VIEW_INCOMING_LOCK_VIEW, + .layout = NULL, + .onCreate = __callui_view_incoming_lock_oncreate, + .onUpdate = __callui_view_incoming_lock_onupdate, + .onHide = __callui_view_incoming_lock_onhide, + .onShow = __callui_view_incoming_lock_onshow, + .onDestroy = __callui_view_incoming_lock_ondestroy, + .onRotate = __callui_view_incoming_lock_onrotate, + .priv = NULL, + }; + incoming_lock_view.priv = calloc(1, sizeof(incoming_lock_view_priv_t)); + + if (!incoming_lock_view.priv) { + err("ERROR!!!!!!!!!!!"); + } + + return &incoming_lock_view; +} + +void _callui_view_incoming_lock_reject_msg_create_call_setting_handle(void *data) +{ + dbg(".."); + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + char *error = NULL; + + priv->dl_handle = dlopen(CALLUI_CST_SO_PATH, RTLD_LAZY); + if (priv->dl_handle) { + priv->msg_func_ptr = dlsym(priv->dl_handle, CALLUI_CST_REJECT_MSG_GET); + if ((error = dlerror()) != NULL) { + dbg("dlsym failed!!! error = %s", error); + priv->msg_func_ptr = NULL; + dlclose(priv->dl_handle); + priv->dl_handle = NULL; + } + } else { + dbg("failed to open libug-setting-call-efl.so"); + } +} + +static void __send_reject_msg_status_cb(msg_handle_t Handle, msg_struct_t pStatus, void *pUserParam) +{ + CALLUI_RETURN_IF_FAIL(pStatus != NULL); + int status = MSG_NETWORK_SEND_FAIL; + + msg_get_int_value(pStatus, MSG_SENT_STATUS_NETWORK_STATUS_INT, &status); + dbg("status:[%d]", status); +} + +void _callui_view_incoming_lock_view_send_reject_msg(void *data, call_data_t *call_data) +{ + CALLUI_RETURN_IF_FAIL(data != NULL); + CALLUI_RETURN_IF_FAIL(call_data != NULL); + dbg(".."); + call_view_data_t *vd = data; + callui_app_data_t *ad = _callui_get_app_data(); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + int slot_id; + + msg_error_t err = MSG_SUCCESS; + msg_handle_t msgHandle = NULL; + + if (strlen(priv->reject_msg) == 0) { + warn("Is not reject with message case"); + return; + } + + err = msg_open_msg_handle(&msgHandle); + if (err != MSG_SUCCESS) { + dbg("msg_open_msg_handle()- failed [%d]", err); + return; + } + + err = msg_reg_sent_status_callback(msgHandle, &__send_reject_msg_status_cb, NULL); + if (err != MSG_SUCCESS) { + dbg("msg_reg_sent_status_callback()- failed [%d]", err); + msg_close_msg_handle(&msgHandle); + return; + } + msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO); + msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT); + msg_struct_t pReq = msg_create_struct(MSG_STRUCT_REQUEST_INFO); + + /* Set message type to SMS reject*/ + msg_set_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS_REJECT); + + slot_id = ad->sim_slot; + dbg("msg_sms_send_message() Sim slot [%d]", slot_id); + if (slot_id != -1) { + slot_id++; + msg_set_int_value(msgInfo, MSG_MESSAGE_SIM_INDEX_INT, slot_id); + } + + /* No setting send option */ + msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, FALSE); + + /* Set message body */ + if (msg_set_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, priv->reject_msg, strlen(priv->reject_msg)) != MSG_SUCCESS) { + err("msg_set_str_value() - failed"); + } else { + /* Create address list*/ + msg_struct_list_s *addr_list; + msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void **)&addr_list); + msg_struct_t addr_info = addr_list->msg_struct_info[0]; + char *call_number = call_data->call_num; + + /* Set message address */ + msg_set_int_value(addr_info, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO); + msg_set_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, call_number, strlen(call_number)); + addr_list->nCount = 1; + + /* Set message struct to Request*/ + msg_set_struct_handle(pReq, MSG_REQUEST_MESSAGE_HND, msgInfo); + msg_set_struct_handle(pReq, MSG_REQUEST_SENDOPT_HND, sendOpt); + + /* Send message */ + err = msg_sms_send_message(msgHandle, pReq); + if (err != MSG_SUCCESS) { + err("msg_sms_send_message() - failed [%d]", err); + } else { + dbg("Sending..."); + } + } + msg_close_msg_handle(&msgHandle); + msg_release_struct(&pReq); + msg_release_struct(&msgInfo); + msg_release_struct(&sendOpt); + + return; +} + +static int __callui_view_incoming_lock_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata) +{ + callui_app_data_t *ad = (callui_app_data_t *)appdata; + if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK && ad->held == NULL + && ad->active == NULL && ad->incom != NULL && ad->active_incoming == false) { + _callui_view_active_incoming_call_oncreate(view_data, appdata); + } else { + _callui_view_incoming_call_oncreate(view_data, appdata); + } + __callui_view_incoming_lock_onshow(view_data, ad); + + return 0; +} + +static int __callui_view_incoming_lock_onupdate(call_view_data_t *view_data, void *update_data1) +{ + dbg("mt-lock view update!!"); + callui_app_data_t *ad = _callui_get_app_data(); + __callui_view_incoming_lock_onshow(view_data, ad); + return 0; +} + +static int __callui_view_incoming_lock_onhide(call_view_data_t *view_data) +{ + dbg("mt-lock view hide!!"); + callui_app_data_t *ad = _callui_get_app_data(); + + evas_object_hide(ad->main_ly); + return 0; +} + +static int __callui_view_incoming_lock_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("mt-lock view show!!"); + callui_app_data_t *ad = (callui_app_data_t *) appdata; + int result = 0; + if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK && ad->active == NULL + && ad->held == NULL && ad->incom != NULL && ad->active_incoming == false) { + /* create active incoming call */ + _callui_view_active_incoming_call_draw_screen(ad, view_data); + Ecore_X_Window xwin = elm_win_xwindow_get(ad->win); + utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_HIGH); + } else { + /* create incoming call */ + evas_object_move(ad->win, 0, 0); + _callui_view_incoming_call_draw_screen(ad, view_data); + _callui_common_win_set_noti_type(ad, EINA_TRUE); + } + + ad->active_incoming = true; + evas_object_show(ad->main_ly); + result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT, TOP_POSITION_GRAB); + if (result) { + dbg("KEY_SELECT key grab failed"); + } + + return 0; +} + +static char *__reject_list_get_msg_by_index(void *data, int index, Eina_Bool b_parsing) +{ + call_view_data_t *vd = (call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + char *ret_str = NULL; + + if (priv->msg_func_ptr) { + ret_str = (char *) priv->msg_func_ptr(index, b_parsing); /* i : reject msg index(0 ~ 4)*/ + sec_dbg("b_parsing(%d),ret_str(%s)", b_parsing, ret_str); + } + + return ret_str; +} + +static char *__callui_view_incoming_lock_reject_msg_gl_label_get_msg(void *data, Evas_Object *obj, const char *part) +{ + CALLUI_RETURN_NULL_IF_FAIL(part); + call_view_data_t *vd = (call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA); + CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL); + + int index = (int)data; + char *msg_str = NULL; + + if (!strcmp(part, "elm.text")) { + if (index != -1) { + msg_str = __reject_list_get_msg_by_index(vd, index, EINA_TRUE); + sec_dbg("msg_str(%s)", msg_str); + return msg_str; /*Send markup text to draw the genlist */ + } else { + warn("invalid index: %d", index); + msg_str = _("IDS_CALL_BODY_NO_MESSAGES"); + return strdup(msg_str); + } + } + return NULL; +} + +static void __reject_msg_gl_sel_msg(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + int index = (int)data; + int ret = -1; + dbg("index: %d", index); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + + elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); + + if (index != -1) { + char *reject_msg = NULL; + char *ret_str = NULL; + call_view_data_t *vd = (call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA); + CALLUI_RETURN_IF_FAIL(vd); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + CALLUI_RETURN_IF_FAIL(priv); + + ret_str = __reject_list_get_msg_by_index(vd, index, EINA_TRUE); + if (ret_str) { + reject_msg = elm_entry_markup_to_utf8(ret_str); /*send utf8 text to MSG */ + if (reject_msg != NULL) { + snprintf(priv->reject_msg, sizeof(priv->reject_msg), "%s", reject_msg); + sec_dbg("priv->reject_msg(%s)", priv->reject_msg); + free(reject_msg); + } + free(ret_str); + } + + ret = cm_reject_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_reject_call() is failed"); + } else { + _callui_view_incoming_lock_view_send_reject_msg(vd, ad->incom); + } + } + + return; +} + +Elm_Object_Item *_callui_view_incoming_lock_append_genlist_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index) +{ + Elm_Object_Item *item = NULL; + item = elm_genlist_item_append(msg_glist, itc_reject_msg, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, __reject_msg_gl_sel_msg, (void *)index); + return item; +} + +Elm_Genlist_Item_Class *_callui_view_incoming_lock_create_item_class() +{ + Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new(); + CALLUI_RETURN_VALUE_IF_FAIL(item_class, NULL); + + item_class->item_style = "type1"; + item_class->func.text_get = __callui_view_incoming_lock_reject_msg_gl_label_get_msg; + item_class->func.content_get = NULL; + item_class->func.state_get = NULL; + item_class->func.del = NULL; + return item_class; +} + +static void __callui_view_incoming_lock_create_new_msg_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALLUI_RETURN_IF_FAIL(data != NULL); + callui_app_data_t *ad = _callui_get_app_data(); + char *tel_number = NULL; + int ret = -1; + call_data_t *call_data = NULL; + + call_data = ad->incom; + if (call_data != NULL) { + tel_number = call_data->call_num; + _callui_common_launch_msg_composer(ad, tel_number); + ret = cm_reject_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_reject_call() is failed"); + } + } +} + +void _callui_view_incoming_lock_create_reject_msg_button(Evas_Object *parent, char *part, void *data) +{ + Evas_Object *msg_button = elm_button_add(parent); + CALLUI_RETURN_IF_FAIL(msg_button); + elm_object_style_set(msg_button, "default"); + elm_object_text_set(msg_button, _("IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB")); + evas_object_smart_callback_add(msg_button, "clicked", __callui_view_incoming_lock_create_new_msg_cb, data); + elm_object_part_content_set(parent, part, msg_button); + evas_object_show(msg_button); +} + +static int __callui_view_incoming_lock_ondestroy(call_view_data_t *vd) +{ + dbg("mt-lock view destroy!!"); + callui_app_data_t *ad = _callui_get_app_data(); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + /* Set LCD timeout for call state */ + /* LCD is alwasy on during incoming call screen */ + if (ad->speaker_status == EINA_TRUE) { + _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET); + } + + if (priv != NULL) { + if (priv->lock_accept) { + evas_object_del(priv->lock_accept); + priv->lock_accept = NULL; + } + if (priv->lock_reject) { + evas_object_del(priv->lock_reject); + priv->lock_reject = NULL; + } + + if (ad->second_call_popup) { + evas_object_del(ad->second_call_popup); + ad->second_call_popup = NULL; + } + + if (priv->itc_reject_msg) { + priv->itc_reject_msg->func.text_get = NULL; + priv->itc_reject_msg->func.content_get = NULL; + priv->itc_reject_msg->func.state_get = NULL; + priv->itc_reject_msg->func.del = NULL; + elm_genlist_item_class_free(priv->itc_reject_msg); + priv->itc_reject_msg = NULL; + } + + if (priv->msg_glist) { + elm_genlist_clear(priv->msg_glist); + evas_object_del(priv->msg_glist); + priv->msg_glist = NULL; + } + + if (priv->reject_msg_gl) { + evas_object_del(priv->reject_msg_gl); + priv->reject_msg_gl = NULL; + } + + _callui_view_incoming_call_ondestroy(priv); + + elm_object_signal_emit(priv->contents, "mt_circle_bg_hide", "mt_view"); + _callui_common_reset_main_ly_text_fields(priv->contents); + + if (ad->main_ly) { + priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + } + + if (priv->dimming_ly) { + evas_object_del(priv->dimming_ly); + priv->dimming_ly = NULL; + } + + if (ad->win) { + evas_object_move(ad->win, 0, 0); + evas_object_resize(ad->win, ad->root_w, ad->root_h); + } + + free(priv); + priv = NULL; + } + utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT); + + return 0; +} + +static int __callui_view_incoming_lock_onrotate(call_view_data_t *view_data) +{ + dbg("*** Incoming view Rotate ***"); + + return 0; +} + +Evas_Object *_callui_view_incoming_lock_get_accept_layout(call_view_data_t *vd) +{ + incoming_lock_view_priv_t *priv = NULL; + + CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL); + priv = (incoming_lock_view_priv_t *) vd->priv; + + CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL); + return priv->lock_accept; +} + +void _callui_view_incoming_lock_set_accept_layout(call_view_data_t *vd, Evas_Object *layout) +{ + incoming_lock_view_priv_t *priv = NULL; + + CALLUI_RETURN_IF_FAIL(vd); + priv = (incoming_lock_view_priv_t *) vd->priv; + + CALLUI_RETURN_IF_FAIL(priv); + priv->lock_accept = layout; +} + +Evas_Object *_callui_view_incoming_lock_get_reject_layout(call_view_data_t *vd) +{ + incoming_lock_view_priv_t *priv = NULL; + + CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL); + priv = (incoming_lock_view_priv_t *) vd->priv; + + CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL); + return priv->lock_reject; +} + +void _callui_view_incoming_lock_set_reject_layout(call_view_data_t *vd, Evas_Object *layout) +{ + incoming_lock_view_priv_t *priv = NULL; + + CALLUI_RETURN_IF_FAIL(vd); + priv = (incoming_lock_view_priv_t *) vd->priv; + + CALLUI_RETURN_IF_FAIL(priv); + priv->lock_reject = layout; +} diff --git a/src/callui-view-lock-screen.c b/src/callui-view-lock-screen.c new file mode 100755 index 0000000..11d40d0 --- /dev/null +++ b/src/callui-view-lock-screen.c @@ -0,0 +1,259 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui.h" +#include "callui-view-lock-screen.h" +#include "callui-view-dialing.h" +#include "callui-view-single-call.h" +#include "callui-view-multi-call-conf.h" +#include "callui-view-multi-call-split.h" +#include "callui-view-layout-wvga.h" +#include "callui-keypad.h" +#include "callui-view-manager.h" +#include "callui-view-elements.h" +#include "callui-common.h" + +void _callui_lock_screen_show_layout(lock_screen_data_t *lock_screen_priv) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(lock_screen_priv); + callui_app_data_t *ad = _callui_get_app_data(); + if (ad->speaker_status == EINA_TRUE) { + dbg("Speaker ON. Do not display lockscreen."); + return; + } + if (EINA_TRUE == _callui_keypad_get_show_status()) { + dbg("Keypad is ON. Do not display lockscreen."); + return; + } + + evas_object_raise(lock_screen_priv->layout); + evas_object_show(lock_screen_priv->layout); + + if (_callvm_get_top_view_id(ad->view_manager_handle) != VIEW_DIALLING_VIEW) { + dbg("lcd show"); + _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_LOCKSCREEN_SET); + } + + lock_screen_priv->is_locked = true; + _callui_common_set_quickpanel_scrollable(EINA_FALSE); + return; +} + +void _callui_lock_screen_hide_layout(lock_screen_data_t *lock_screen_priv) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(lock_screen_priv); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + + evas_object_hide(lock_screen_priv->layout); + lock_screen_priv->is_locked = false; + if (_callvm_get_top_view_id(ad->view_manager_handle) != VIEW_DIALLING_VIEW) { + dbg("lcd hide"); + _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET); + } + + if (_callui_common_get_idle_lock_type() != LOCK_TYPE_UNLOCK) { + _callui_common_set_quickpanel_scrollable(EINA_FALSE); + } else { + _callui_common_set_quickpanel_scrollable(EINA_TRUE); + } + return; +} + +static Evas_Object *__callui_lock_screen_create_contents(Evas_Object *parent, char *grpname) +{ + Evas_Object *eo = NULL; + + /* load edje */ + eo = _callui_load_edj(parent, EDJ_NAME, grpname); + if (eo == NULL) + return NULL; + return eo; +} + +static Eina_Bool __lock_timeout_cb(void *data) +{ + dbg("__lock_timeout_cb"); + lock_screen_data_t *priv = (lock_screen_data_t *)data; + callui_app_data_t *ad = _callui_get_app_data(); + + priv->no_lock_timer = NULL; + + if (_callvm_get_top_view_id(ad->view_manager_handle) >= VIEW_INCALL_MULTICALL_LIST_VIEW) { + return ECORE_CALLBACK_CANCEL; + } + + if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) { + return ECORE_CALLBACK_RENEW; + } + + _callui_lock_screen_show_layout(priv); + return ECORE_CALLBACK_CANCEL; +} + +static void __callui_lock_screen_icon_double_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source) +{ + dbg("__callui_lock_screen_icon_double_clicked_cb"); + lock_screen_data_t *priv = (lock_screen_data_t *)data; + + _callui_lock_screen_hide_layout(priv); + priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, priv); + return; +} + +static void __callui_lock_screen_user_action_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + dbg("__callui_lock_screen_user_action_cb"); + lock_screen_data_t *priv = (lock_screen_data_t *)data; + if (priv->no_lock_timer) { + ecore_timer_del(priv->no_lock_timer); + priv->no_lock_timer = NULL; + priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, priv); + } + return; +} + +lock_screen_data_t *_callui_lock_screen_create_layout(call_view_data_t *view_data) +{ + dbg("lock screen create!!"); + CALLUI_RETURN_NULL_IF_FAIL(view_data); + callui_app_data_t *ad = _callui_get_app_data(); + lock_screen_data_t *priv = NULL; + Evas_Object *layout = NULL; + Evas_Object *hit_rect = NULL; + + priv = calloc(1, sizeof(lock_screen_data_t)); + CALLUI_RETURN_NULL_IF_FAIL(priv); + + /* Make Hit rectangle to refresh lock timer */ + hit_rect = evas_object_rectangle_add(ad->evas); + evas_object_color_set(hit_rect, 0, 0, 0, 0); + evas_object_resize(hit_rect, ad->root_w, ad->root_h); + evas_object_move(hit_rect, 0, 0); + evas_object_repeat_events_set(hit_rect, EINA_TRUE); + evas_object_propagate_events_set(hit_rect, EINA_FALSE); + evas_object_event_callback_add(hit_rect, EVAS_CALLBACK_MOUSE_DOWN, __callui_lock_screen_user_action_cb, priv); + evas_object_show(hit_rect); + priv->hit_rect = hit_rect; + + layout = __callui_lock_screen_create_contents(ad->main_ly, "lock-screen"); + if (NULL == layout) { + warn("layout NULL!!!"); + } + + evas_object_resize(layout, ad->root_w, ad->root_h); + evas_object_move(layout, 0, 0); + elm_object_domain_translatable_part_text_set(layout, "lock-text", CALLUI_TEXT_DOMAIN, "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"); + + edje_object_signal_callback_add(_EDJ(layout), "mouse,down,1,double", "lock-icon", __callui_lock_screen_icon_double_clicked_cb, priv); + + priv->layout = layout; + + _callui_lock_screen_show_layout(priv); + + return priv; +} + +void _callui_lock_screen_start_timer() +{ + callui_app_data_t *ad = _callui_get_app_data(); + lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle; + CALLUI_RETURN_IF_FAIL(lock_screen_priv); + + if (lock_screen_priv->no_lock_timer) { + ecore_timer_del(lock_screen_priv->no_lock_timer); + lock_screen_priv->no_lock_timer = NULL; + } + + lock_screen_priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, lock_screen_priv); + return; +} + +void _callui_lock_screen_stop_timer() +{ + callui_app_data_t *ad = _callui_get_app_data(); + lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle; + CALLUI_RETURN_IF_FAIL(lock_screen_priv); + + if (lock_screen_priv->no_lock_timer) { + ecore_timer_del(lock_screen_priv->no_lock_timer); + lock_screen_priv->no_lock_timer = NULL; + } + return; +} + +void _callui_lock_screen_refresh_timer(call_view_data_t *view_data) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle; + CALLUI_RETURN_IF_FAIL(lock_screen_priv); + + if (lock_screen_priv->no_lock_timer) { + ecore_timer_del(lock_screen_priv->no_lock_timer); + lock_screen_priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, lock_screen_priv); + } + + return; +} + +void _callui_lock_screen_unlock_screen(call_view_data_t *view_data) +{ + warn("_callui_lock_screen_delete_layout"); + CALLUI_RETURN_IF_FAIL(view_data); + callui_app_data_t *ad = _callui_get_app_data(); + lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle; + + if (lock_screen_priv) { + if (lock_screen_priv->is_locked) { + _callui_lock_screen_hide_layout(lock_screen_priv); + lock_screen_priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, lock_screen_priv); + } else { + _callui_lock_screen_refresh_timer(view_data); + } + } else { + err("lock_screen_priv is NULL"); + } + return; +} + +void _callui_lock_screen_delete_layout(lock_screen_data_t *lock_screen_priv) +{ + dbg("lock screen delete!!"); + CALLUI_RETURN_IF_FAIL(lock_screen_priv); + evas_object_del(lock_screen_priv->layout); + evas_object_del(lock_screen_priv->hit_rect); + if (lock_screen_priv->no_lock_timer) { + ecore_timer_del(lock_screen_priv->no_lock_timer); + lock_screen_priv->no_lock_timer = NULL; + } + free(lock_screen_priv); + + return; +} + +gboolean _callui_lock_screen_is_lockscreen_shown() +{ + callui_app_data_t *ad = _callui_get_app_data(); + lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle; + if (!lock_screen_priv) { + return FALSE; + } + return lock_screen_priv->is_locked; +} diff --git a/src/callui-view-manager.c b/src/callui-view-manager.c new file mode 100644 index 0000000..2af70f4 --- /dev/null +++ b/src/callui-view-manager.c @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui-view-manager.h" +#include "callui-view-dialing.h" +#include "callui-view-single-call.h" +#include "callui-view-callend.h" +#include "callui-view-incoming-lock.h" +#include "callui-view-multi-call-split.h" +#include "callui-view-multi-call-conf.h" +#include "callui-view-multi-call-list.h" +#include "callui-view-quickpanel.h" + +typedef call_view_data_t *(*new_view_data_cb) (); + +struct _view_manager_data { + new_view_data_cb func_new[VIEW_MAX]; + call_view_data_t *view_st[VIEW_MAX]; + callui_view_id_t view_before_top; + callui_view_id_t view_top; +}; + + +static void __callvm_init_view_register_function(view_manager_data_t *vm_data, callui_view_id_t view_id, call_view_data_t *(*view_new) ()) +{ + vm_data->func_new[view_id] = view_new; +} + +view_manager_data_t *_callvm_init() +{ + view_manager_data_t *vm_data = NULL; + + vm_data = (view_manager_data_t *) calloc(1, sizeof(view_manager_data_t)); + CALLUI_RETURN_VALUE_IF_FAIL(vm_data, NULL); + __callvm_init_view_register_function(vm_data, VIEW_DIALLING_VIEW, _callui_dialing_view_dialing_new); + __callvm_init_view_register_function(vm_data, VIEW_INCOMING_LOCK_VIEW, _callui_view_incoming_lock_new); + __callvm_init_view_register_function(vm_data, VIEW_INCALL_ONECALL_VIEW, _callui_view_single_call_new); + __callvm_init_view_register_function(vm_data, VIEW_INCALL_MULTICALL_SPLIT_VIEW, _callui_view_multi_call_split_new); + __callvm_init_view_register_function(vm_data, VIEW_INCALL_MULTICALL_CONF_VIEW, _callui_view_multi_call_conf_new); + __callvm_init_view_register_function(vm_data, VIEW_INCALL_MULTICALL_LIST_VIEW, _callui_view_multi_call_list_new); + __callvm_init_view_register_function(vm_data, VIEW_QUICKPANEL_VIEW, _callui_view_qp_new); + __callvm_init_view_register_function(vm_data, VIEW_ENDCALL_VIEW, _callui_view_callend_new); + vm_data->view_top = -1; + return vm_data; +} + +callui_view_id_t _callvm_get_top_view_id(view_manager_data_t *view_manager_handle) +{ + return view_manager_handle->view_top; +} + +call_view_data_t *_callvm_get_call_view_data(void *appdata, callui_view_id_t view_id) +{ + + callui_app_data_t *ad = (callui_app_data_t *) appdata; + if (ad->view_manager_handle->view_st[view_id]) { + return (call_view_data_t *) ad->view_manager_handle->view_st[view_id]; + } + + return NULL; +} + +void _callvm_set_call_view_data(void *appdata, callui_view_id_t view_id, call_view_data_t *vd) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *) appdata; + + if (vd) { + (ad->view_manager_handle->view_st[view_id]) = vd; + } +} + +Evas_Object *_callvm_get_view_layout(void *appdata) +{ + Evas_Object *layout = NULL; + callui_app_data_t *ad = (callui_app_data_t *)appdata; + CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL); + layout = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + + return layout; +} + + +void _callvm_reset_call_view_data(void *appdata, callui_view_id_t view_id) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *) appdata; + + info("view:[%d] -> [%d]", ad->view_manager_handle->view_top, view_id); + ad->view_manager_handle->view_st[view_id] = NULL; +} + +static void _callvm_hide_view(call_view_data_t *view) +{ + CALLUI_RETURN_IF_FAIL(view); + + hide_cb hide = view->onHide; + destroy_cb destroy = view->onDestroy; + + if (hide) { + hide(view); + } + if (destroy) { + destroy(view); + } +} + +static call_view_data_t *_callvm_show_view(call_view_data_t *view, new_view_data_cb func_new, unsigned int param1, void *param2, void *ad) +{ + if (view == NULL) { + dbg("Create view data"); + + view = func_new(ad); + } + CALLUI_RETURN_VALUE_IF_FAIL(view, NULL); + + if (view->layout == NULL) { + dbg("Create layout"); + + create_cb create = view->onCreate; + CALLUI_RETURN_VALUE_IF_FAIL(create, NULL); + create(view, param1, param2, ad); + } else { + dbg("Update layout"); + + update_cb update = view->onUpdate; + CALLUI_RETURN_VALUE_IF_FAIL(update, NULL); + update(view, param2); + } + + return view; +} + +void _callvm_view_change(callui_view_id_t view_id, unsigned int param1, void *param2, void *appdata) +{ + callui_app_data_t *ad = (callui_app_data_t *)appdata; + info("view:[%d] -> [%d]", ad->view_manager_handle->view_top, view_id); + if ((view_id >= VIEW_MAX) || (view_id < 0)) { + err("[=========== ERROR!!!! Invalid View ID : %d =================]", view_id); + return; + } + + call_view_data_t **views = ad->view_manager_handle->view_st; + + callui_view_id_t last_view_id = ad->view_manager_handle->view_top; + ad->view_manager_handle->view_before_top = last_view_id; /* hold the current top window in the before_top pointer */ + ad->view_manager_handle->view_top = view_id; /* set the new top window to the view_id which is passed... this step enables in setting 00:00:00 as timer */ + new_view_data_cb func_new = ad->view_manager_handle->func_new[view_id]; + + + if ((last_view_id != -1) && (last_view_id != view_id)) { + dbg("hide & destroy [%d]", last_view_id); + _callvm_hide_view(views[last_view_id]); + views[last_view_id] = NULL; + } + views[view_id] = _callvm_show_view(views[view_id], func_new, param1, param2, appdata); + + if (view_id == VIEW_DIALLING_VIEW || view_id == VIEW_INCOMING_LOCK_VIEW) { + elm_win_activate(ad->win); + } + + _callui_view_quickpanel_change(); + + evas_object_show(ad->win); + dbg("End"); +} + +void _callvm_view_auto_change(void *appdata) +{ + dbg("_callvm_view_auto_change"); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + if (ad == NULL) { + err("Invalid AppData"); + return; + } + + if (ad->multi_call_list_end_clicked) { + ad->multi_call_list_end_clicked = false; + if (ad->active && ad->active->member_count > 1) { + _callvm_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, NULL, ad); + return; + } + } + + if (ad->incom) { + _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, ad); + return; + } else if (ad->active) { + if (CM_CALL_STATE_DIALING == ad->active->call_state) { + _callvm_view_change(VIEW_DIALLING_VIEW, 0, NULL, ad); + } else if (ad->held) { + _callvm_view_change(VIEW_INCALL_MULTICALL_SPLIT_VIEW, 0, NULL, ad); + } else if (ad->active->member_count > 1) { + _callvm_view_change(VIEW_INCALL_MULTICALL_CONF_VIEW, 0, NULL, ad); + } else { + _callvm_view_change(VIEW_INCALL_ONECALL_VIEW, 0, NULL, ad); + } + return; + } else if (ad->held) { + if (ad->held->member_count > 1) { + _callvm_view_change(VIEW_INCALL_MULTICALL_CONF_VIEW, 0, NULL, ad); + } else { + _callvm_view_change(VIEW_INCALL_ONECALL_VIEW, 0, NULL, ad); + } + } else { + err("No call exist"); + } + return; +} + +void _callvm_terminate_app_or_view_change(void *appdata) +{ + callui_app_data_t *ad = (callui_app_data_t *)appdata; + view_manager_data_t *vd = ad->view_manager_handle; + int i = 0; + if ((NULL == ad->active) && (NULL == ad->incom) && (NULL == ad->held)) { + warn("No call exist. App will be terminated"); + for (i = 0; i < VIEW_MAX; i++) { + if (vd->view_st[i] != NULL) { + dbg("hide & destory [%d]", i); + vd->view_st[i]->onHide(vd->view_st[i]); + vd->view_st[i]->onDestroy(vd->view_st[i]); + } + } + vd->view_top = -1; + elm_exit(); + } else { + _callvm_view_auto_change(ad); + } + return; +} + diff --git a/src/callui-view-multi-call-conf.c b/src/callui-view-multi-call-conf.c new file mode 100755 index 0000000..ce4457a --- /dev/null +++ b/src/callui-view-multi-call-conf.c @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include "callui.h" +#include "callui-common.h" +#include "callui-view-elements.h" +#include "callui-view-multi-call-conf.h" +#include "callui-view-layout-wvga.h" +#include "callui-keypad.h" + +#define CALLUI_VIEW_MULTICALL_CONF_LAYOUT_ID "MULTIVIEWCONF" +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *held_call_ly; + Evas_Object *btn_ly; + Evas_Object *ic; + Evas_Object *manage_calls_ly; + Eina_Bool is_held; +} callui_view_multi_call_conf_priv_t; + +static int __callui_view_multi_call_conf_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3); +static int __callui_view_multi_call_conf_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_multi_call_conf_onhide(call_view_data_t *view_data); +static int __callui_view_multi_call_conf_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_multi_call_conf_ondestroy(call_view_data_t *view_data); +static int __callui_view_multi_call_conf_onrotate(call_view_data_t *view_data); + +static call_view_data_t s_view = { + .type = VIEW_INCALL_MULTICALL_CONF_VIEW, + .layout = NULL, + .onCreate = __callui_view_multi_call_conf_oncreate, + .onUpdate = __callui_view_multi_call_conf_onupdate, + .onHide = __callui_view_multi_call_conf_onhide, + .onShow = __callui_view_multi_call_conf_onshow, + .onDestroy = __callui_view_multi_call_conf_ondestroy, + .onRotate = __callui_view_multi_call_conf_onrotate, + .priv = NULL, +}; + +call_view_data_t *_callui_view_multi_call_conf_new(callui_app_data_t *ad) +{ + s_view.priv = calloc(1, sizeof(callui_view_multi_call_conf_priv_t)); + + if (!s_view.priv) { + err("ERROR!!!!!!!!!!! "); + } + + return &s_view; +} + +static void __callui_view_manage_btn_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + _callvm_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, ad); + return; +} + +static void __callui_view_multi_call_conf_draw_screen(Evas_Object *eo, void *data) +{ + dbg(".."); + + call_view_data_t *vd = (call_view_data_t *)data; + callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)vd->priv; + callui_app_data_t *ad = _callui_get_app_data(); + char buf[512] = { 0, }; + call_data_t *call_data = NULL; + char *sim_name = NULL; + char status_txt[128 + 1] = { '\0', }; + + if (ad->active) { + call_data = ad->active; + priv->is_held = EINA_FALSE; + } else if (ad->held) { + call_data = ad->held; + priv->is_held = EINA_TRUE; + } else { + err("call data is null"); + return; + } + + if (priv->is_held == EINA_TRUE) { + snprintf(status_txt, sizeof(status_txt), _("IDS_CALL_BODY_ON_HOLD_ABB")); + _callui_show_caller_info_status(ad, status_txt, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "set-hold-state", "call-screen"); + + elm_object_part_content_unset(priv->contents, "resume_icon_swallow"); + elm_object_part_content_set(priv->contents, "resume_icon_swallow", priv->held_call_ly); + evas_object_show(priv->held_call_ly); + + } else { + /*****deciding the call status according the sim name******/ + elm_object_signal_emit(priv->caller_info, "set-unhold-state", "call-screen"); + evas_object_hide(priv->held_call_ly); + elm_object_part_content_unset(priv->contents, "resume_icon_swallow"); + } + + elm_object_part_content_unset(priv->caller_info, "manage_calls_icon_swallow"); + elm_object_part_content_set(priv->caller_info, "manage_calls_icon_swallow", priv->manage_calls_ly); + evas_object_show(priv->manage_calls_ly); + edje_object_signal_callback_del(_EDJ(priv->manage_calls_ly), "mouse,clicked,1", "btn", __callui_view_manage_btn_clicked_cb); + edje_object_signal_callback_add(_EDJ(priv->manage_calls_ly), "mouse,clicked,1", "btn", __callui_view_manage_btn_clicked_cb, priv); + + elm_object_signal_emit(priv->caller_info, "set_conference_mode", ""); + _callui_show_caller_info_name(ad, _("IDS_CALL_BODY_CONFERENCE"), EINA_FALSE); + char *status = _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"); + snprintf(buf, 512, status, call_data->member_count); + _callui_show_caller_info_number(ad, buf, EINA_FALSE); + + if (priv->is_held == EINA_TRUE) { + _callui_create_top_second_button_disabled(ad); + _callui_create_bottom_second_button_disabled(ad); + } else { + /*Delete keypad layout - before creating the keypad button again + * Since layout are created again in update_cb + * to handle rotation use-case*/ + if (_callui_keypad_get_show_status() == EINA_TRUE) { + _callui_keypad_hide_layout(ad); + } + + _callui_create_top_second_button(ad); + _callui_create_bottom_second_button(ad); + } + _callui_create_top_third_button(ad); + _callui_create_bottom_first_button(ad); + + _callui_create_top_first_button(ad); + _callui_create_bottom_third_button(ad); + elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN"); + _callui_create_end_call_button(priv->contents, vd); + evas_object_show(eo); +} + +static Evas_Object *__callui_view_multi_call_conf_create_contents(void *data, char *group) +{ + if (data == NULL) { + err("ERROR"); + return NULL; + } + callui_app_data_t *ad = (callui_app_data_t *)data; + Evas_Object *eo; + + /* load edje */ + eo = _callui_load_edj(ad->main_ly, EDJ_NAME, group); + if (eo == NULL) + return NULL; + + return eo; +} + +static void __callui_view_multi_call_conf_more_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_IF_FAIL(vd != NULL); + _callui_load_more_option(vd); + return; +} + +static int __callui_view_multi_call_conf_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3) +{ + callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)view_data->priv; + callui_app_data_t *ad = _callui_get_app_data(); + + if (ad->main_ly) { + /* Create Main Layout */ + priv->contents = __callui_view_multi_call_conf_create_contents(ad, GRP_MAIN_LY); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + + if (priv->contents) { + eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb); + } + eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb, view_data); + + priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info"); + if (!priv->caller_info) { + priv->caller_info = __callui_view_multi_call_conf_create_contents(ad, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + } + + /* Manage button Layout */ + priv->manage_calls_ly = elm_object_part_content_get(priv->caller_info, "manage_calls_icon_swallow"); + if (!priv->manage_calls_ly) { + priv->manage_calls_ly = __callui_view_multi_call_conf_create_contents(ad, GRP_MANAGE_CALLS); + } + + priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region"); + if (!priv->btn_ly) { + priv->btn_ly = __callui_view_multi_call_conf_create_contents(ad, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + } + + evas_object_name_set(priv->contents, CALLUI_VIEW_MULTICALL_CONF_LAYOUT_ID); + dbg("[========== MULTIVIEWCONF: priv->contents Addr : [%p] ==========]", priv->contents); + + /*create keypad layout*/ + _callui_keypad_create_layout(ad); + } else { + err("ERROR"); + return -1; + } + + __callui_view_multi_call_conf_onshow(view_data, NULL); + return 0; +} + +static int __callui_view_multi_call_conf_onupdate(call_view_data_t *view_data, void *update_data1) +{ + dbg("multicall-conf view update"); + + __callui_view_multi_call_conf_onshow(view_data, NULL); + return 0; +} + +static int __callui_view_multi_call_conf_onhide(call_view_data_t *view_data) +{ + dbg("multicall-conf view hide"); + callui_app_data_t *ad = _callui_get_app_data(); + evas_object_hide(ad->main_ly); + return 0; +} + +static int __callui_view_multi_call_conf_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("multicall-conf view show"); + + callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)view_data->priv; + callui_app_data_t *ad = _callui_get_app_data(); + + __callui_view_multi_call_conf_draw_screen(priv->contents, view_data); + + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + + return 0; +} + +static int __callui_view_multi_call_conf_ondestroy(call_view_data_t *view_data) +{ + dbg("multicall-conf view destroy"); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, -1); + + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_CONF_VIEW); + CALLUI_RETURN_VALUE_IF_FAIL(vd, -1); + callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)vd->priv; + + if (priv != NULL) { + if (ad->ctxpopup) { + elm_ctxpopup_dismiss(ad->ctxpopup); + ad->ctxpopup = NULL; + } + + _callui_show_caller_info_number(ad, "", EINA_FALSE); /*reset the number text*/ + + /*Delete keypad layout*/ + _callui_keypad_delete_layout(ad); + + if (priv->contents) { + eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb); + _callui_common_reset_main_ly_text_fields(priv->contents); + } + elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN"); + + if (priv->manage_calls_ly) { + elm_object_part_content_unset(priv->caller_info, "manage_calls_icon_swallow"); + edje_object_part_unswallow(_EDJ(priv->caller_info), priv->manage_calls_ly); + evas_object_del(priv->manage_calls_ly); + priv->manage_calls_ly = NULL; + } + + if (priv->held_call_ly) { + elm_object_part_content_unset(priv->contents, "resume_icon_swallow"); + edje_object_part_unswallow(_EDJ(priv->contents), priv->held_call_ly); + evas_object_del(priv->held_call_ly); + priv->held_call_ly = NULL; + } + + free(priv); + priv = NULL; + } + + _callvm_reset_call_view_data(ad, VIEW_INCALL_MULTICALL_CONF_VIEW); + + dbg("complete destroy multi view conf"); + + return 0; +} + +static int __callui_view_multi_call_conf_onrotate(call_view_data_t *view_data) +{ + dbg("*** Multi Call conf-view Rotate ***"); + callui_view_multi_call_conf_priv_t *priv = view_data->priv; + callui_app_data_t *ad = _callui_get_app_data(); + + elm_object_signal_emit(priv->contents, "set_portrait", "multicall_conf_layout"); + elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN"); + elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout"); + + evas_object_show(ad->win); + + return 0; +} + diff --git a/src/callui-view-multi-call-list.c b/src/callui-view-multi-call-list.c new file mode 100755 index 0000000..fe3e94f --- /dev/null +++ b/src/callui-view-multi-call-list.c @@ -0,0 +1,382 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui-common.h" +#include "callui.h" +#include "callui-view-elements.h" +#include "callui-view-multi-call-list.h" +#include "callui-view-layout-wvga.h" + +static Elm_Genlist_Item_Class *itc_call; +#define CALLUI_VIEW_MULTICALL_LIST_LAYOUT_ID "MULTIVIEWLIST" +typedef struct { + Evas_Object *contents; + Evas_Object *ic; + Evas_Object *multibox_gl; + + GSList *call_list; +} callui_view_multi_call_list_priv_t; + +static int __callui_view_multi_call_list_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3); +static int __callui_view_multi_call_list_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_multi_call_list_onhide(call_view_data_t *view_data); +static int __callui_view_multi_call_list_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_multi_call_list_ondestroy(call_view_data_t *view_data); +static int __callui_view_multi_call_list_onrotate(call_view_data_t *view_data); + +static call_view_data_t s_view = { + .type = VIEW_INCALL_MULTICALL_LIST_VIEW, + .layout = NULL, + .onCreate = __callui_view_multi_call_list_oncreate, + .onUpdate = __callui_view_multi_call_list_onupdate, + .onHide = __callui_view_multi_call_list_onhide, + .onShow = __callui_view_multi_call_list_onshow, + .onDestroy = __callui_view_multi_call_list_ondestroy, + .onRotate = __callui_view_multi_call_list_onrotate, + .priv = NULL, +}; + +call_view_data_t *_callui_view_multi_call_list_new(callui_app_data_t *ad) +{ + s_view.priv = calloc(1, sizeof(callui_view_multi_call_list_priv_t)); + CALLUI_RETURN_VALUE_IF_FAIL(s_view.priv, NULL); + return &s_view; +} + +static void __callui_view_multi_call_list_small_end_call_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data; + CALLUI_RETURN_IF_FAIL(call_data); + int ret = -1; + unsigned int call_id = 0; + cm_conf_call_data_get_call_id(call_data, &call_id); + ret = cm_end_call(ad->cm_handle, call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE); + if (ret != CM_ERROR_NONE) { + err("cm_end_call() get failed with err[%d]", ret); + } + ad->multi_call_list_end_clicked = true; +} + +static void __callui_view_multi_call_list_split_call_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data; + CALLUI_RETURN_IF_FAIL(call_data); + int ret = -1; + unsigned int call_id = 0; + + cm_conf_call_data_get_call_id(call_data, &call_id); + ret = cm_split_call(ad->cm_handle, call_id); + if (ret != CM_ERROR_NONE) { + err("cm_split_call() get failed with err[%d]", ret); + } +} + +static Evas_Object *__callui_view_multi_call_list_gl_icon_get_call(void *data, Evas_Object *obj, const char *part) +{ + cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data; + Evas_Object *img = NULL; + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL); + dbg("__callui_view_multi_call_list_gl_icon_get_call %s ", part); + if ((strcmp(part, "elm.swallow.end") == 0)) { + Evas_Object *img = elm_image_add(obj); + elm_image_file_set(img, EDJ_NAME, GROUP_CALL_BTN_IC_END); + evas_object_size_hint_min_set(img, _callui_common_get_scaled_width(CALL_BTN_IC_BG_SIZE), _callui_common_get_scaled_height(CALL_BTN_IC_BG_SIZE)); + evas_object_propagate_events_set(img, EINA_FALSE); + evas_object_smart_callback_add(img, "clicked", __callui_view_multi_call_list_small_end_call_cb, call_data); + return img; + } else if (strcmp(part, "elm.swallow.icon") == 0) { + if (ad->held || ad->active->member_count < 3) { + return NULL; + } + Evas_Object *img = elm_image_add(obj); + elm_image_file_set(img, EDJ_NAME, GROUP_CALL_BTN_IC_SPLIT); + evas_object_size_hint_min_set(img, _callui_common_get_scaled_width(CALL_BTN_IC_BG_SIZE), _callui_common_get_scaled_height(CALL_BTN_IC_BG_SIZE)); + evas_object_propagate_events_set(img, EINA_FALSE); + evas_object_smart_callback_add(img, "clicked", __callui_view_multi_call_list_split_call_cb, call_data); + return img; + } else if ((strcmp(part, "elm.swallow.icon.0") == 0)) { + call_contact_data_t ct_info = {0,}; + char *file_path = "default"; + int person_id = -1; + + cm_conf_call_data_get_person_id(call_data, &person_id); + if (person_id != -1) { + _callui_common_get_contact_info(person_id, &ct_info); + if (strlen(ct_info.caller_id_path) > 0) { + file_path = ct_info.caller_id_path; + } + } + img = _callui_create_thumbnail_with_size(obj, file_path, THUMBNAIL_98, true); + return img; + } else { + return NULL; + } +} + +static char *__callui_view_multi_call_list_gl_label_get_call(void *data, Evas_Object *obj, const char *part) +{ + cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data; + int person_id = -1; + char *call_number = NULL; + dbg("__callui_view_multi_call_list_gl_label_get_call %s ", part); + if (strcmp(part, "elm.text") == 0) { + cm_conf_call_data_get_person_id(call_data, &person_id); + if (person_id != -1) { + call_contact_data_t ct_info = {0,}; + _callui_common_get_contact_info(person_id, &ct_info); + if (strlen(ct_info.call_disp_name) > 0) { + return strdup(ct_info.call_disp_name); + } + } + cm_conf_call_data_get_call_number(call_data, &call_number); + return strdup(call_number); + } else { + return NULL; + } +} + +static void __callui_view_multi_call_list_genlist_init(void *data) +{ + itc_call = elm_genlist_item_class_new(); + + itc_call->item_style = "type1"; + itc_call->func.text_get = __callui_view_multi_call_list_gl_label_get_call; + itc_call->func.content_get = __callui_view_multi_call_list_gl_icon_get_call; + itc_call->func.state_get = NULL; + itc_call->func.del = NULL; +} + +static void __callui_view_multi_call_list_genlist_deinit() +{ + elm_genlist_item_class_free(itc_call); + itc_call = NULL; +} + +static void __callui_view_multi_call_list_genlist_add(void *data) +{ + call_view_data_t *vd = data; + callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv; + Evas_Object *genlist = NULL; + + genlist = elm_genlist_add(priv->contents); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_part_content_set(priv->contents, "swl_calllist", genlist); + priv->multibox_gl = genlist; +} + +static void __callui_view_multi_call_list_genlist_delete(void *data) +{ + call_view_data_t *vd = data; + callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv; + if (priv->multibox_gl != NULL) { + elm_genlist_clear(priv->multibox_gl); + evas_object_del(priv->multibox_gl); + priv->multibox_gl = NULL; + } +} + +void __callui_view_multi_call_list_genlist_item_append(void *data) +{ + dbg(".."); + Elm_Object_Item *item = NULL; + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + call_view_data_t *vd = data; + CALLUI_RETURN_IF_FAIL(vd); + callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv; + CALLUI_RETURN_IF_FAIL(priv); + int list_len = 0; + int idx = 0; + cm_conf_call_data_t *call_data = NULL; + + CALLUI_RETURN_IF_FAIL(priv->call_list); + list_len = g_slist_length(priv->call_list); + for (idx = 0; idx < list_len; idx++) { + call_data = (cm_conf_call_data_t *)g_slist_nth_data(priv->call_list, idx); + item = elm_genlist_item_append(priv->multibox_gl, itc_call, (void *)call_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + } +} + +static void __callui_view_multi_call_list_back_cb(void *data, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = (callui_app_data_t *)data; + _callvm_view_auto_change(ad); +} + +static Evas_Object *__callui_view_multi_call_list_create_contents(Evas_Object *parent, char *group) +{ + Evas_Object *eo; + + if (parent == NULL) { + err("ERROR"); + return NULL; + } + + /* load edje */ + eo = _callui_load_edj(parent, EDJ_NAME, group); + if (eo == NULL) + return NULL; + + return eo; +} + +static int __callui_view_multi_call_list_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3) +{ + dbg("multicall-list view create"); + + __callui_view_multi_call_list_onshow(view_data, NULL); + + return 0; +} + +static void __callui_view_multi_call_list_free_cb(gpointer data) +{ + cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data; + cm_conf_call_data_free(call_data); +} + +static int __callui_view_multi_call_list_onupdate(call_view_data_t *view_data, void *update_data1) +{ + dbg("multicall-list view update"); + + callui_app_data_t *ad = _callui_get_app_data(); + callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)view_data->priv; + GSList *list = NULL; + + __callui_view_multi_call_list_genlist_delete(view_data); + g_slist_free_full(priv->call_list, __callui_view_multi_call_list_free_cb); + + cm_get_conference_call_list(ad->cm_handle, &list); + CALLUI_RETURN_VALUE_IF_FAIL(list, -1); + priv->call_list = list; + __callui_view_multi_call_list_genlist_add(view_data); + __callui_view_multi_call_list_genlist_init(view_data); + __callui_view_multi_call_list_genlist_item_append(view_data); + __callui_view_multi_call_list_genlist_deinit(); + + elm_object_signal_emit(priv->contents, "set_portrait", "multicall_list_layout"); + evas_object_show(priv->contents); + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + return 0; +} + +static int __callui_view_multi_call_list_onhide(call_view_data_t *view_data) +{ + dbg("multicall-list view hide"); + callui_app_data_t *ad = _callui_get_app_data(); + evas_object_hide(ad->main_ly); + return 0; +} + +static int __callui_view_multi_call_list_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("multicall-list view show"); + + callui_app_data_t *ad = _callui_get_app_data(); + callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)view_data->priv; + Evas_Object *back_btn = NULL; + char *sim_name = NULL; + char status_txt[128 + 1] = {'\0', }; + + priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (priv->contents) { + elm_object_part_content_unset(ad->main_ly, "elm.swallow.content"); + evas_object_del(priv->contents); + priv->contents = NULL; + } + priv->contents = __callui_view_multi_call_list_create_contents(ad->main_ly, GRP_MULTICALL); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + view_data->layout = priv->contents; + + __callui_view_multi_call_list_genlist_add(view_data); + __callui_view_multi_call_list_genlist_init(view_data); + + cm_get_conference_call_list(ad->cm_handle, &priv->call_list); + __callui_view_multi_call_list_genlist_item_append(view_data); + __callui_view_multi_call_list_genlist_deinit(); + + back_btn = elm_button_add(priv->contents); + elm_object_style_set(back_btn, "bottom"); + elm_object_text_set(back_btn, _("IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB")); + elm_object_part_content_set(priv->contents, "bottom_btn", back_btn); + + evas_object_smart_callback_del(back_btn, "clicked", __callui_view_multi_call_list_back_cb); + evas_object_smart_callback_add(back_btn, "clicked", __callui_view_multi_call_list_back_cb, ad); + + evas_object_show(back_btn); + eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_BACK, __callui_view_multi_call_list_back_cb, ad); + + evas_object_name_set(priv->contents, CALLUI_VIEW_MULTICALL_LIST_LAYOUT_ID); + dbg("[========== MULTIVIEWLIST: priv->contents Addr : [%p] ==========]", priv->contents); + + elm_object_signal_emit(priv->contents, "set_portrait", "multicall_list_layout"); + + evas_object_show(priv->contents); + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + return 0; +} + +static int __callui_view_multi_call_list_ondestroy(call_view_data_t *view_data) +{ + dbg("multicall-list view destroy"); + + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, -1); + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_LIST_VIEW); + CALLUI_RETURN_VALUE_IF_FAIL(vd, -1); + callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv; + + if (priv != NULL) { + __callui_view_multi_call_list_genlist_delete(vd); + + g_slist_free_full(priv->call_list, __callui_view_multi_call_list_free_cb); + + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + elm_object_part_content_unset(ad->main_ly, "elm.swallow.content"); + free(priv); + priv = NULL; + } + vd->layout = NULL; + _callvm_reset_call_view_data(ad, VIEW_INCALL_MULTICALL_LIST_VIEW); + dbg("complete destroy multi view list"); + return 0; +} + +static int __callui_view_multi_call_list_onrotate(call_view_data_t *view_data) +{ + dbg("*** Multi Call List view Rotate ***"); + + __callui_view_multi_call_list_onshow(view_data, NULL); + return 0; +} + + diff --git a/src/callui-view-multi-call-split.c b/src/callui-view-multi-call-split.c new file mode 100755 index 0000000..4277fee --- /dev/null +++ b/src/callui-view-multi-call-split.c @@ -0,0 +1,318 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui.h" +#include "callui-view-multi-call-split.h" +#include "callui-keypad.h" +#include "callui-common.h" +#include "callui-view-caller-info-defines.h" +#include "callui-view-elements.h" + +#define BUF_SIZE 256 + +typedef struct { + Evas_Object *contents; +} incall_multi_view_split_priv_t; + +static Evas_Object *_create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text); + +static Evas_Object *_create_hold_active_layout(Evas_Object *parent, call_data_t *call_data); +static void _fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data); +static void _fill_conference_layout(Evas_Object *parent, call_data_t *call_data); + +static void _set_hold_info(Evas_Object *parent, Evas_Object *content); +static void _set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad); +static void _set_merge_swap(Evas_Object *parent, callui_app_data_t *ad); + +static void _create_btn_region(Evas_Object *parent); +static void _create_action_panel(Evas_Object *parent); + +static Evas_Object *_create_call_info_layout(Evas_Object *parent, callui_app_data_t *ad); +static Evas_Object *_create_split_layout(Evas_Object *parent, callui_app_data_t *ad); + +static Evas_Object *_create_split_view(Evas_Object *parent, callui_app_data_t *ad); + +static void _callui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data); + +static void _manage_callers_cb(void *data, Evas_Object *obj, const char *emission, const char *source); +static void _merge_cb(void *data, Evas_Object *obj, const char *emission, const char *source); +static void _swap_cb(void *data, Evas_Object *obj, const char *emission, const char *source); + +static int _callui_view_multi_call_split_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3); +static int _callui_view_multi_call_split_onupdate(call_view_data_t *view_data, void *update_data1); +static int _callui_view_multi_call_split_onshow(call_view_data_t *view_data, void *appdata); +static int _callui_view_multi_call_split_ondestroy(call_view_data_t *view_data); + +static call_view_data_t s_view = { + .type = VIEW_INCALL_MULTICALL_SPLIT_VIEW, + .layout = NULL, + .onCreate = _callui_view_multi_call_split_oncreate, + .onUpdate = _callui_view_multi_call_split_onupdate, + .onHide = NULL, + .onShow = _callui_view_multi_call_split_onshow, + .onDestroy = _callui_view_multi_call_split_ondestroy, + .onRotate = NULL, + .priv = NULL, +}; + +static Evas_Object *_create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text) +{ + Evas_Object *layout = elm_layout_add(parent); + elm_layout_file_set(layout, EDJ_NAME, name); + + elm_object_part_text_set(layout, PART_TEXT_MERGE_SWAP_BTN, text); + + return layout; +} + +static Evas_Object *_create_hold_active_layout(Evas_Object *parent, call_data_t *call_data) +{ + Evas_Object *layout = elm_layout_add(parent); + elm_layout_file_set(layout, EDJ_NAME, GROUP_ACTIVE_HOLD_INFO); + + if (call_data->member_count == 1) { + _fill_one_contact_layout(layout, call_data); + } else { + _fill_conference_layout(layout, call_data); + } + + return layout; +} + +static void _fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data) +{ + const char *pic_path = call_data->call_ct_info.caller_id_path; + const char *main_text = call_data->call_ct_info.call_disp_name; + const char *sub_text = call_data->call_num; + Evas_Object *thumbnail = NULL; + + thumbnail = _callui_create_thumbnail(parent, pic_path, THUMBNAIL_186); + elm_object_part_content_set(parent, PART_SWALLOW_CALLER_ID, thumbnail); + + if (main_text && *main_text) { + elm_object_part_text_set(parent, PART_TEXT_MAIN, main_text); + elm_object_part_text_set(parent, PART_TEXT_SUB, sub_text); + } else { + elm_object_part_text_set(parent, PART_TEXT_MAIN, sub_text); + } +} + +static void _fill_conference_layout(Evas_Object *parent, call_data_t *call_data) +{ + CALLUI_RETURN_IF_FAIL(call_data); + + Evas_Object *thumbnail = _callui_create_thumbnail(parent, NULL, CONFERENCE_THUMBNAIL_186); + elm_object_part_content_set(parent, PART_SWALLOW_CALLER_ID, thumbnail); + + elm_object_part_text_set(parent, PART_TEXT_MAIN, _("IDS_CALL_BODY_CONFERENCE")); + + char buffer[BUF_SIZE] = {0}; + snprintf(buffer, BUF_SIZE, _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"), call_data->member_count); + elm_object_part_text_set(parent, PART_TEXT_SUB, buffer); +} + +static void _set_hold_info(Evas_Object *parent, Evas_Object *content) +{ + elm_object_part_text_set(content, PART_TEXT_STATUS, _("IDS_CALL_BODY_ON_HOLD_ABB")); + + elm_object_part_content_set(parent, PART_SWALLOW_HOLD_INFO, content); + elm_object_signal_emit(content, SIGNAL_SET_BLURRED_BACKGROUND, ""); +} + +static void _set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad) +{ + elm_object_part_text_set(content, PART_TEXT_STATUS, _("IDS_CALL_BODY_CONNECTED_M_STATUS_ABB")); + + elm_object_part_content_set(parent, PART_SWALLOW_ACTIVE_INFO, content); + elm_object_signal_emit(content, SIGNAL_SET_TRANSPARENT_BACKGROUND, ""); + if (ad->active->member_count > 1) { + elm_object_signal_emit(content, SIGNAL_SHOW_ARROW, ""); + elm_object_signal_callback_add(content, "mouse,up,*", "arrow", _manage_callers_cb, ad); + } +} + +static void _set_merge_swap(Evas_Object *parent, callui_app_data_t *ad) +{ + Evas_Object *merge = _create_merge_swap_btn(parent, GROUP_MERGE_BTN, _("IDS_CALL_BODY_MERGE_T_CALL")); + elm_object_part_content_set(parent, PART_SWALLOW_MERGE, merge); + elm_object_signal_callback_add(merge, "mouse,clicked,*", "*", _merge_cb, ad); + + Evas_Object *swap = _create_merge_swap_btn(parent, GROUP_SWAP_BTN, _("IDS_CALL_SK_MULTICALL_SWAP")); + elm_object_part_content_set(parent, PART_SWALLOW_SWAP, swap); + elm_object_signal_callback_add(swap, "mouse,clicked,*", "*", _swap_cb, ad); +} + +static void _create_btn_region(Evas_Object *parent) +{ + Evas_Object *btn_region = elm_layout_add(parent); + elm_layout_file_set(btn_region, EDJ_NAME, GROUP_BTN_REGION); + elm_object_part_content_set(parent, PART_SWALLOW_BTN_REGION, btn_region); +} + +static void _create_action_panel(Evas_Object *parent) +{ + Evas_Object *action_panel = elm_layout_add(parent); + elm_layout_file_set(action_panel, EDJ_NAME, GROUP_ACTION_PANEL); + elm_object_part_content_set(parent, PART_SWALLOW_ACTIONS_PANEL, action_panel); +} + +static Evas_Object *_create_call_info_layout(Evas_Object *parent, callui_app_data_t *ad) +{ + Evas_Object *one_hold_layout = elm_layout_add(parent); + elm_layout_file_set(one_hold_layout, EDJ_NAME, GROUP_ONE_HOLD_IN_CONFERENCE); + + Evas_Object *hold_layout = _create_hold_active_layout(one_hold_layout, ad->held); + Evas_Object *active_layout = _create_hold_active_layout(one_hold_layout, ad->active); + + _set_hold_info(one_hold_layout, hold_layout); + _set_active_info(one_hold_layout, active_layout, ad); + + _set_merge_swap(one_hold_layout, ad); + + return one_hold_layout; +} + +static Evas_Object *_create_split_layout(Evas_Object *parent, callui_app_data_t *ad) +{ + Evas_Object *split_layout = elm_layout_add(parent); + elm_layout_file_set(split_layout, EDJ_NAME, GROUP_SPLIT); + + Evas_Object *call_info_layout = _create_call_info_layout(parent, ad); + elm_object_part_content_set(split_layout, PART_SWALLOW_CALL_INFO, call_info_layout); + + _create_btn_region(split_layout); + _create_action_panel(split_layout); + + return split_layout; +} + +static Evas_Object *_create_split_view(Evas_Object *parent, callui_app_data_t *ad) +{ + Evas_Object *split_layout = _create_split_layout(parent, ad); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", split_layout); + + _callui_keypad_create_layout(ad); + + return split_layout; +} + +static void _callui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data) +{ + dbg(".."); + call_view_data_t *vd = data; + incall_multi_view_split_priv_t *priv = vd->priv; + callui_app_data_t *ad = _callui_get_app_data(); + + priv->contents = _create_split_view(ad->main_ly, ad); + + _callui_create_top_first_button(ad); + _callui_create_top_second_button(ad); + _callui_create_top_third_button(ad); + _callui_create_bottom_first_button_disabled(ad); + _callui_create_bottom_second_button(ad); + _callui_create_bottom_third_button(ad); + + _callui_create_end_call_button(priv->contents, vd); + + _callui_lock_screen_refresh_timer(_callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW)); +} + +static void _manage_callers_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + callui_app_data_t *ad = data; + _callvm_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, NULL, ad); +} + +static void _merge_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + callui_app_data_t *ad = data; + int ret = cm_join_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_join_call() is failed"); + } +} + +static void _swap_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + callui_app_data_t *ad = data; + int ret = cm_swap_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_swap_call() is failed"); + } +} + +static int _callui_view_multi_call_split_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3) +{ + dbg("multi-split view create"); + + callui_app_data_t *ad = _callui_get_app_data(); + + _callui_view_multi_call_split_onshow(view_data, ad); + + _callui_lock_screen_delete_layout(ad->lock_screen_handle); + _callui_lock_screen_create_layout(view_data); + + return 0; +} + +static int _callui_view_multi_call_split_onupdate(call_view_data_t *view_data, void *update_data1) +{ + dbg("multi-split view update"); + callui_app_data_t *ad = _callui_get_app_data(); + _callui_view_multi_call_split_onshow(view_data, ad); + return 0; +} + +static int _callui_view_multi_call_split_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("multi-split view show"); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)view_data->priv; + _callui_view_multi_call_split_draw_screen(priv->contents, view_data); + + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + + return 0; +} + +static int _callui_view_multi_call_split_ondestroy(call_view_data_t *view_data) +{ + dbg("multi-split view destroy"); + + callui_app_data_t *ad = _callui_get_app_data(); + + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW); + CALLUI_RETURN_VALUE_IF_FAIL(vd, -1); + + free(vd->priv); + vd->priv = NULL; + + _callvm_reset_call_view_data(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW); + return 0; +} + +call_view_data_t *_callui_view_multi_call_split_new(callui_app_data_t*ad) +{ + s_view.priv = calloc(1, sizeof(incall_multi_view_split_priv_t)); + + if (!s_view.priv) { + err("ERROR!"); + } + + return &s_view; +} diff --git a/src/callui-view-quickpanel.c b/src/callui-view-quickpanel.c new file mode 100755 index 0000000..a9e7e3e --- /dev/null +++ b/src/callui-view-quickpanel.c @@ -0,0 +1,814 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui.h" +#include "callui-view-elements.h" +#include "callui-view-quickpanel.h" +#include +#include +#include "callui-view-layout-wvga.h" +#include "callui-common.h" +#include +#include + +#define VIEW_QUICKPANEL_LAYOUT_ID "QUICKPANELVIEW" +#define MSG_DOMAIN_CONTROL_ACCESS (int)ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL +#define TXT_TIMER_BUF_LEN 26 +#define CALL_NUMBER_ONE 1 + +struct callui_view_qp_priv { + Evas_Object *caller_id; + int rotate_angle; + Ecore_Event_Handler *client_msg_handler; +}; +static Evas_Object *__callui_view_qp_create_contents(void *data, char *group); +static int __callui_view_qp_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3); +static int __callui_view_qp_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_qp_onhide(call_view_data_t *view_data); +static int __callui_view_qp_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_qp_ondestroy(call_view_data_t *view_data); +static Eina_Bool __callui_qp_client_message_cb(void *data, int type, void *event); + +call_view_data_t *_callui_view_qp_new(callui_app_data_t *ad) +{ + static call_view_data_t qp_view = { + .type = VIEW_QUICKPANEL_VIEW, + .layout = NULL, + .onCreate = __callui_view_qp_oncreate, + .onUpdate = __callui_view_qp_onupdate, + .onHide = __callui_view_qp_onhide, + .onShow = __callui_view_qp_onshow, + .onDestroy = __callui_view_qp_ondestroy, + .onRotate = NULL, + .priv = NULL, + }; + qp_view.priv = calloc(1, sizeof(callui_view_qp_priv_t)); + if (!qp_view.priv) { + err("ERROR!!!!!!!!!!! "); + } + return &qp_view; +}; + +void _callui_view_quickpanel_change(void) +{ + dbg(".."); + + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + + call_view_data_t *view_data = _callvm_get_call_view_data(ad, VIEW_QUICKPANEL_VIEW); + + if (ad->win_quickpanel) { + + if (!ad->held && !ad->active && !ad->incom) { + + dbg("destroy quickpanel"); + _callui_view_qp_hide(ad); + _callvm_reset_call_view_data(ad, VIEW_QUICKPANEL_VIEW); + ad->win_quickpanel = NULL; + + } else if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_ENDCALL_VIEW) { + + dbg("destroy quickpanel on the last End call view"); + __callui_view_qp_ondestroy(view_data); + + } else if (view_data && view_data->layout != NULL) { + + dbg("update quickpanel"); + __callui_view_qp_onupdate(view_data, NULL); + + } + } else { + dbg("create quickpanel"); + if (view_data == NULL) { + view_data = _callui_view_qp_new(ad); + CALLUI_RETURN_IF_FAIL(view_data); + _callvm_set_call_view_data(ad, VIEW_QUICKPANEL_VIEW, view_data); + } + if (view_data->layout == NULL) { + __callui_view_qp_oncreate(view_data, 0, NULL, ad); + } + } +} + +static Eina_Bool __callui_qp_client_message_cb(void *data, int type, void *event) +{ + dbg("__callui_qp_client_message_cb"); + int new_angle = 0; + Ecore_X_Event_Client_Message *ev = (Ecore_X_Event_Client_Message *) event; + call_view_data_t *vd = (call_view_data_t *)data; + callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)vd->priv; + + if ((ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE) + || (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE)) { + new_angle = ev->data.l[0]; + dbg("ROTATION: %d", new_angle); + priv->rotate_angle = new_angle; + __callui_view_qp_onshow(vd, NULL); + } + + return ECORE_CALLBACK_RENEW; +} + +static void __callui_view_qp_caller_id_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + + _callui_view_qp_hide(ad); + if (ad->incom) { + int ret = -1; + ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL); + if (ret != CM_ERROR_NONE) { + err("cm_end_call() is failed"); + } + } + /***to do***after lcd changes**/ +/* if (ad->b_lcd_on == EINA_FALSE) { + return; + }*/ + +/* if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) { + vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + }*//**to do**/ +/* if (_callui_get_idle_lock_type() == CALL_LOCK) + vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);*/ + + elm_win_activate(ad->win); +} + +static void __callui_qp_launch_top_view_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + _callui_view_qp_hide(data); + + app_control_h request; + app_control_create(&request); + app_control_set_app_id(request, PACKAGE); + int err = app_control_send_launch_request(request, NULL, NULL); + if (err != APP_CONTROL_ERROR_NONE) { + err("app_control_send_launch_request() failed(0x%x)", err); + return; + } + app_control_destroy(request); +} + +static void __callui_qp_spk_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + int ret = -1; + + if (ad->speaker_status == EINA_TRUE) { + ret = cm_speaker_off(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_speaker_off() is failed"); + return; + } + } else { + ret = cm_speaker_on(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_speaker_off() is failed"); + return; + } + } + _callui_update_speaker_btn(ad, !ad->speaker_status); +} + +static void __callui_qp_resume_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + int ret = -1; + + if (ad->held != NULL) { + ret = cm_unhold_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_unhold_call() is failed"); + } + } else { + ret = cm_hold_call(ad->cm_handle); + if (ret != CM_ERROR_NONE) { + err("cm_hold_call() is failed"); + } + } +} + +Evas_Object *_callui_create_quickpanel_resume_button(void *data, Eina_Bool bdisable) +{ + dbg(".."); + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + CALLUI_RETURN_NULL_IF_FAIL(data); + callui_app_data_t *ad = (callui_app_data_t *)data; + + layout = ad->quickpanel_layout; + CALLUI_RETURN_NULL_IF_FAIL(layout); + + btn = edje_object_part_swallow_get(_EDJ(layout), "swallow.resume_button"); + if (btn) { + sec_dbg("Object Already Exists, so Update Only"); + evas_object_smart_callback_del(btn, "clicked", __callui_qp_resume_btn_cb); + } else { + sec_dbg("Object Doesn't Exists, so Re-Create"); + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "swallow.resume_button", btn); + } + + if (ad->held != NULL) { + elm_object_style_set(btn, "style_call_icon_only_qp_resume"); + evas_object_smart_callback_add(btn, "clicked", __callui_qp_resume_btn_cb, ad); + } else { + elm_object_style_set(btn, "style_call_icon_only_qp_resume_on"); + evas_object_smart_callback_add(btn, "clicked", __callui_qp_resume_btn_cb, ad); + } + evas_object_propagate_events_set(btn, EINA_FALSE); + + return btn; +} + +Evas_Object *_callui_create_quickpanel_speaker_button(void *data, Eina_Bool bdisable) +{ + dbg(".."); + Evas_Object *btn, *layout, *sw; + CALLUI_RETURN_NULL_IF_FAIL(data); + callui_app_data_t *ad = (callui_app_data_t *)data; + + layout = ad->quickpanel_layout; + CALLUI_RETURN_NULL_IF_FAIL(layout); + + sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.speaker_button"); + if (sw) { + sec_dbg("Object Already Exists, so Update Only"); + btn = sw; + evas_object_smart_callback_del(btn, "clicked", __callui_qp_spk_btn_cb); + } else { + sec_dbg("Object Doesn't Exists, so Re-Create"); + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "swallow.speaker_button", btn); + } + + if (ad->speaker_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_icon_only_qp_speaker"); + evas_object_smart_callback_add(btn, "clicked", __callui_qp_spk_btn_cb, ad); + } else { + elm_object_style_set(btn, "style_call_icon_only_qp_speaker_on"); + evas_object_smart_callback_add(btn, "clicked", __callui_qp_spk_btn_cb, ad); + } + evas_object_propagate_events_set(btn, EINA_FALSE); + + elm_object_disabled_set(btn, bdisable); + return btn; +} + +static Evas_Object *__callui_create_quickpanel_call_button(void *data) +{ + Evas_Object *layout, *sw; + Evas_Object *btn = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + + layout = ad->quickpanel_layout; + CALLUI_RETURN_NULL_IF_FAIL(layout); + sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.call_button"); + if (sw) { + dbg("Object Already Exists, so Update Only"); + btn = sw; + evas_object_smart_callback_del(btn, "clicked", __callui_view_qp_caller_id_cb); + } else { + dbg("Object Doesn't Exists, so Re-Create"); + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "swallow.call_button", btn); + } + + elm_object_style_set(btn, "style_call_icon_only_qp_call"); + + evas_object_smart_callback_add(btn, "clicked", __callui_view_qp_caller_id_cb, ad); + evas_object_propagate_events_set(btn, EINA_FALSE); + + return btn; +} + +static void __qp_end_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + dbg(".."); + + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_IF_FAIL(ad != NULL); + + int ret = -1; + _callui_view_qp_hide(ad); + if (!(ad->held) && !(ad->incom) && (CM_CALL_STATE_DIALING == ad->active->call_state))/*(dialling_view)*/ { + ret = cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE); + } else if ((ad->active) && (ad->held)) { + ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS); + } else if ((ad->active) || (ad->held)) {/*single call*/ + ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS); + } else if (ad->incom) { + ret = cm_reject_call(ad->cm_handle); + } else { + err("invalid case!!!!"); + } + if (ret != CM_ERROR_NONE) { + err("cm_end_call() is failed"); + return; + } +} + +static Evas_Object *__callui_create_quickpanel_end_button(void *data) +{ + Evas_Object *btn, *layout, *sw; + callui_app_data_t *ad = (callui_app_data_t *)data; + + layout = ad->quickpanel_layout; + CALLUI_RETURN_NULL_IF_FAIL(layout); + sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.end_button"); + if (sw) { + dbg("Object Already Exists, so Update Only"); + btn = sw; + evas_object_smart_callback_del(btn, "clicked", __qp_end_btn_cb); + } else { + dbg("Object Doesn't Exists, so Re-Create"); + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "swallow.end_button", btn); + } + + elm_object_style_set(btn, "style_call_icon_only_qp_end"); + + evas_object_smart_callback_add(btn, "clicked", __qp_end_btn_cb, ad); + evas_object_propagate_events_set(btn, EINA_FALSE); + return btn; +} + +Evas_Object *_callui_create_quickpanel_mute_button(void *data, Eina_Bool bdisable) +{ + dbg(".."); + Evas_Object *btn, *layout, *sw; + callui_app_data_t *ad = (callui_app_data_t *)data; + CALLUI_RETURN_NULL_IF_FAIL(ad); + + layout = ad->quickpanel_layout; + CALLUI_RETURN_NULL_IF_FAIL(layout); + + sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.mute_button"); + if (sw) { + dbg("Object Already Exists, so Update Only"); + btn = sw; + evas_object_smart_callback_del(btn, "clicked", _callui_mute_btn_cb); + } else { + dbg("Object Doesn't Exists, so Re-Create"); + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "swallow.mute_button", btn); + } + + if (ad->mute_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_icon_only_qp_mute"); + evas_object_smart_callback_add(btn, "clicked", _callui_mute_btn_cb, ad); + } else { + elm_object_style_set(btn, "style_call_icon_only_qp_mute_on"); + evas_object_smart_callback_add(btn, "clicked", _callui_mute_btn_cb, ad); + } + + evas_object_propagate_events_set(btn, EINA_FALSE); + elm_object_disabled_set(btn, bdisable); + + return btn; +} + +void _callui_view_qp_hide(callui_app_data_t *ad) +{ + dbg(".."); + + /* Empty implementation */ +} + +static void __callui_view_qp_update_caller(Evas_Object *eo, call_data_t *pcall_data) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + + if (pcall_data == NULL) { + return; + } + + char *call_name = pcall_data->call_ct_info.call_disp_name; + char *file_path = pcall_data->call_ct_info.caller_id_path; + + char *call_number = NULL; + if (strlen(pcall_data->call_disp_num) > 0) { + call_number = pcall_data->call_disp_num; + } else { + call_number = pcall_data->call_num; + } + + if (strlen(call_name) == 0) { + if (strlen(call_number) == 0) { + edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_BODY_UNKNOWN")); + } else { + edje_object_part_text_set(_EDJ(eo), "txt_call_name", call_number); + } + } else { + char *convert_text = evas_textblock_text_utf8_to_markup(NULL, call_name); + if (convert_text) { + edje_object_part_text_set(_EDJ(eo), "txt_call_name", convert_text); + free(convert_text); + convert_text = NULL; + } else { + err("Convert text is NULL"); + } + } + + if (strcmp(file_path, "default") != 0) { + _callui_show_caller_id(eo, file_path, TRUE); + } else if (ad->landscape) { + elm_object_signal_emit(eo, "show_image", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "show_image", "quickpanel"); + } +} + +static void __callui_view_qp_draw_screen(Evas_Object *eo, void *data) +{ + dbg(".."); + call_data_t *call_data = NULL; + callui_app_data_t *ad = (callui_app_data_t *)data; + + Evas_Object *call_btn = __callui_create_quickpanel_call_button(ad); + elm_object_disabled_set(call_btn, EINA_TRUE); + _callui_create_quickpanel_speaker_button(ad, EINA_FALSE); + + if (ad->active && (CM_CALL_STATE_DIALING == ad->active->call_state)) {/**dialling**/ + dbg("dialing view!!!!!!!!!!"); + call_data = ad->active; + _callui_view_qp_update_text_status(_("IDS_CALL_POP_DIALLING")); + _callui_create_quickpanel_mute_button(ad, EINA_TRUE); + __callui_view_qp_update_caller(eo, call_data); + if (ad->landscape) { + elm_object_signal_emit(eo, "outgoing_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "outgoing_call", "quickpanel"); + } + elm_object_signal_emit(eo, "outgoing_call", "quickpanel"); + } else if (!(ad->held) && !(ad->incom) && ad->active) { /** connected call**/ + call_data = ad->active; + __callui_view_qp_update_caller(eo, call_data); + if (ad->active->member_count > 1) { + dbg("multi conf call"); + if (ad->landscape) { + elm_object_signal_emit(eo, "during_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "during_call", "quickpanel"); + } + edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); + } else { + call_data = ad->active; + __callui_view_qp_update_caller(eo, call_data); + if (ad->landscape) { + elm_object_signal_emit(eo, "during_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "during_call", "quickpanel"); + } + } + _callui_common_update_call_duration(call_data->start_time); + _callui_create_quickpanel_mute_button(ad, EINA_FALSE); + } else if ((ad->active) && (ad->held)) {/***split call*****/ + dbg("multi split call"); + call_data = ad->active; + if (ad->active->member_count > 1) { + _callui_create_quickpanel_mute_button(ad, EINA_FALSE); + __callui_view_qp_update_caller(eo, call_data); + if (ad->landscape) { + elm_object_signal_emit(eo, "during_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "during_call", "quickpanel"); + } + edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); + } else if (ad->active->member_count == 1) { + __callui_view_qp_update_caller(eo, call_data); + if (ad->landscape) { + elm_object_signal_emit(eo, "during_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "during_call", "quickpanel"); + } + } else { + dbg("invalid case"); + } + _callui_create_quickpanel_mute_button(ad, EINA_FALSE); + } else if ((ad->active) || (ad->held)) {/**conference call**/ + if ((ad->active)) {/**active call**/ + call_data = ad->active; + if (ad->active->member_count > 1) { + dbg("multi conf call"); + edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); + } else { + dbg("single call"); + __callui_view_qp_update_caller(eo, call_data); + if (ad->landscape) { + elm_object_signal_emit(eo, "during_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "during_call", "quickpanel"); + } + } + _callui_common_update_call_duration(call_data->start_time); + _callui_create_quickpanel_mute_button(ad, EINA_FALSE); + } else if ((ad->held)) {/**held call**/ + call_data = ad->held; + if (ad->held->member_count > 1) { + dbg("multi conf call"); + edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); + _callui_create_quickpanel_resume_button(ad, EINA_TRUE); + if (ad->landscape) { + elm_object_signal_emit(eo, "resume_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "resume_call", "quickpanel"); + } + } else { + dbg("single call"); + __callui_view_qp_update_caller(eo, call_data); + _callui_create_quickpanel_resume_button(ad, EINA_TRUE); + if (ad->landscape) { + elm_object_signal_emit(eo, "resume_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "resume_call", "quickpanel"); + } + } + _callui_view_qp_update_text_status(_("IDS_CALL_BODY_ON_HOLD_ABB")); + _callui_create_quickpanel_mute_button(ad, EINA_TRUE); + } + } else if (ad->incom) { + dbg("incoming view!!!!!!!!!!"); + call_data = ad->incom; + __callui_view_qp_update_caller(eo, call_data); + _callui_view_qp_update_text_status(_("IDS_CALL_BODY_INCOMING_CALL")); + _callui_create_quickpanel_mute_button(ad, EINA_TRUE); + _callui_create_quickpanel_speaker_button(ad, EINA_TRUE); + if (ad->landscape) { + elm_object_signal_emit(eo, "incoming_call", "quickpanel_ls"); + } else { + elm_object_signal_emit(eo, "incoming_call", "quickpanel"); + } + elm_object_disabled_set(call_btn, EINA_FALSE); + } else { + dbg("incoming call. error!"); + } + __callui_create_quickpanel_end_button(ad); +} + +static void __callui_view_qp_provider_cb(minicontrol_viewer_event_e event_type, bundle *event_arg) +{ + dbg("__callui_view_qp_viewer_cb %i", event_type); + char *angle = NULL; + if (event_arg) { + bundle_get_str(event_arg, "angle", &angle); + } + + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_IF_FAIL(ad); + callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)ad->view_data->priv; + if (angle && angle[0] != '/0') { + priv->rotate_angle = atoi(angle); + } + __callui_view_qp_onshow(ad->view_data, NULL); +} + +static Evas_Object *__callui_view_qp_create_window(callui_app_data_t *priv) +{ + Evas_Object *win; + win = minicontrol_create_window("org.tizen.call-ui", MINICONTROL_TARGET_VIEWER_QUICK_PANEL, __callui_view_qp_provider_cb); + elm_win_alpha_set(win, EINA_TRUE); + evas_object_resize(win, ELM_SCALE_SIZE(MAIN_SCREEN_BIG_W), ELM_SCALE_SIZE(QP_WIN_H)); + + if (elm_win_wm_rotation_supported_get(win)) { + int rotate_angles[3] = {0, 90, 270}; + /*Set the required angles wherein the rotation has to be supported*/ + elm_win_wm_rotation_available_rotations_set(win, rotate_angles, 3); + } + return win; +} + +static Evas_Object *__callui_view_qp_create_layout_main(Evas_Object *parent) +{ + if (parent == NULL) { + dbg("ERROR"); + return NULL; + } + + Evas_Object *ly; + ly = elm_layout_add(parent); + + if (ly == NULL) { + err("Failed elm_layout_add."); + return NULL; + } + + elm_layout_theme_set(ly, "layout", "application", "default"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, ly); + + edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); + + return ly; +} + +static Evas_Object *__callui_view_qp_create_contents(void *data, char *group) +{ + if (data == NULL) { + dbg("ERROR"); + return NULL; + } + callui_app_data_t *ad = _callui_get_app_data(); + Evas_Object *eo = NULL; + + /* load edje */ + eo = _callui_load_edj(ad->win_quickpanel, EDJ_NAME, group); + + if (eo == NULL) + return NULL; + + return eo; +} + +static int __callui_view_qp_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata) +{ + dbg("quickpanel view create!!"); + + callui_app_data_t *ad = (callui_app_data_t *) appdata; + callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)view_data->priv; + ad->view_data = view_data; + if (!view_data->layout) { + ad->win_quickpanel = __callui_view_qp_create_window(priv); + if (ad->win_quickpanel == NULL) { + dbg("ERROR"); + return -1; + } + priv->rotate_angle = elm_win_rotation_get(ad->win_quickpanel); + dbg("current rotate angle(%d)", priv->rotate_angle); + view_data->layout = __callui_view_qp_create_layout_main(ad->win_quickpanel); + if (view_data->layout == NULL) { + dbg("ERROR"); + return -1; + } + } + + if (priv->client_msg_handler == NULL) + priv->client_msg_handler = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, __callui_qp_client_message_cb, view_data); + + __callui_view_qp_onshow(view_data, NULL); + return 0; +} + +static int __callui_view_qp_onupdate(call_view_data_t *view_data, void *update_data1) +{ + dbg("quickpanel view update!!"); + + __callui_view_qp_onshow(view_data, NULL); + return 0; +} + +static int __callui_view_qp_onhide(call_view_data_t *view_data) +{ + dbg("quickpanel view hide!!"); + + evas_object_hide(view_data->layout); + return 0; +} + +static int __callui_view_qp_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("quickpanel view show!!"); + callui_app_data_t *ad = _callui_get_app_data(); + callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)view_data->priv; + if (ad->quickpanel_layout) { + evas_object_event_callback_del(ad->quickpanel_layout, EVAS_CALLBACK_MOUSE_UP, __callui_qp_launch_top_view_cb); + evas_object_del(ad->quickpanel_layout); + ad->quickpanel_layout = NULL; + } + + if (priv->rotate_angle == 0 || priv->rotate_angle == 180) { + dbg("portrait mode layout"); + ad->landscape = false; + evas_object_resize(ad->win_quickpanel, ELM_SCALE_SIZE(MAIN_SCREEN_BIG_W), ELM_SCALE_SIZE(QP_WIN_H)); + ad->quickpanel_layout = __callui_view_qp_create_contents(view_data, GRP_QUICKPANEL); + } else if (priv->rotate_angle == 90 || priv->rotate_angle == 270) { + dbg("landscape mode layout"); + ad->landscape = true; + evas_object_resize(ad->win_quickpanel, ELM_SCALE_SIZE(MAIN_SCREEN_BIG_H), ELM_SCALE_SIZE(QP_WIN_H)); + ad->quickpanel_layout = __callui_view_qp_create_contents(view_data, GRP_QUICKPANEL_LS); + } + + elm_object_part_content_set(view_data->layout, "elm.swallow.content", ad->quickpanel_layout); + evas_object_name_set(ad->quickpanel_layout, VIEW_QUICKPANEL_LAYOUT_ID); + dbg("[========== QUICKPANEL:ad->quickpanel_layout Addr : [%p] ==========]", ad->quickpanel_layout); + evas_object_event_callback_add(ad->quickpanel_layout, EVAS_CALLBACK_MOUSE_UP, __callui_qp_launch_top_view_cb, ad); + + __callui_view_qp_draw_screen(ad->quickpanel_layout, ad); + evas_object_show(ad->win_quickpanel); + evas_object_show(ad->quickpanel_layout); + evas_object_show(view_data->layout); + + /* Prohibit remove of mini control */ + minicontrol_send_event(ad->win_quickpanel, MINICONTROL_EVENT_REQUEST_LOCK, NULL); + + return 0; +} + +static int __callui_view_qp_ondestroy(call_view_data_t *view_data) +{ + dbg("quickpanel view destroy!!"); + + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, -1); + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_QUICKPANEL_VIEW); + CALLUI_RETURN_VALUE_IF_FAIL(vd, -1); + + callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)vd->priv; + + if (priv != NULL) { + if (priv->caller_id) { + evas_object_del(priv->caller_id); + priv->caller_id = NULL; + } + + ecore_event_handler_del(priv->client_msg_handler); + + free(priv); + priv = NULL; + } + + if (ad->quickpanel_layout) { + evas_object_del(ad->quickpanel_layout); + ad->quickpanel_layout = NULL; + } + + if (vd->layout != NULL) { + evas_object_hide(vd->layout); + evas_object_del(vd->layout); + vd->layout = NULL; + } + + _callvm_reset_call_view_data(ad, VIEW_QUICKPANEL_VIEW); + + if (ad->win_quickpanel) { + evas_object_del(ad->win_quickpanel); + ad->win_quickpanel = NULL; + } + + return 0; +} + +void _callui_view_qp_update_text_status(char *txt_status) +{ + dbg(".."); + callui_app_data_t *ad = _callui_get_app_data(); + if (ad == NULL) { + dbg("app Data is NULL"); + return; + } + + if (ad->win_quickpanel && ad->quickpanel_layout) { + edje_object_part_text_set(_EDJ(ad->quickpanel_layout), + "txt_timer", txt_status); + } + +} + +void _callui_view_qp_set_call_timer(Evas_Object *qp_layout, char *pcall_timer) +{ + CALLUI_RETURN_IF_FAIL(qp_layout); + callui_app_data_t *ad = _callui_get_app_data(); + if (!ad) { + dbg("ad is NULL!!!"); + return; + } + + if (ad->active) { + if (ad->held) { + char buf[TXT_TIMER_BUF_LEN] = {0}; + char buf_tmp[TXT_TIMER_BUF_LEN] = {0}; + snprintf(buf_tmp, sizeof(buf_tmp), "%s / %s", pcall_timer, _("IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB")); + snprintf(buf, sizeof(buf), buf_tmp, CALL_NUMBER_ONE); + edje_object_part_text_set(_EDJ(qp_layout), "txt_timer", buf); + } else { + edje_object_part_text_set(_EDJ(qp_layout), "txt_timer", _(pcall_timer)); + } + } +} diff --git a/src/callui-view-single-call.c b/src/callui-view-single-call.c new file mode 100644 index 0000000..8e4717c --- /dev/null +++ b/src/callui-view-single-call.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "callui.h" +#include "callui-view-single-call.h" +#include "callui-view-elements.h" +#include "callui-keypad.h" +#include "callui-common.h" + +#define VIEW_SINGLE_CALL_LAYOUT_ID "ONEVIEW" + +struct incall_one_view_priv { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *held_call_ly; + Evas_Object *extra_vol_ly; + Evas_Object *btn_ly; + Evas_Object *ic; +}; + +static int __callui_view_single_call_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3); +static int __callui_view_single_call_onupdate(call_view_data_t *view_data, void *update_data1); +static int __callui_view_single_call_onhide(call_view_data_t *view_data); +static int __callui_view_single_call_onshow(call_view_data_t *view_data, void *appdata); +static int __callui_view_single_call_ondestroy(call_view_data_t *view_data); +static Evas_Object *__callui_view_single_call_create_contents(void *data, char *grpname); +static int __callui_view_single_call_onRotate(call_view_data_t *view_data); + +call_view_data_t *_callui_view_single_call_new(callui_app_data_t *ad) +{ + static call_view_data_t one_call_view = { + .type = VIEW_INCALL_ONECALL_VIEW, + .layout = NULL, + .onCreate = __callui_view_single_call_oncreate, + .onUpdate = __callui_view_single_call_onupdate, + .onHide = __callui_view_single_call_onhide, + .onShow = __callui_view_single_call_onshow, + .onDestroy = __callui_view_single_call_ondestroy, + .onRotate = __callui_view_single_call_onRotate, + .priv = NULL, + }; + one_call_view.priv = calloc(1, sizeof(incall_one_view_priv_t)); + + if (!one_call_view.priv) { + err("ERROR!!!!!!!!!!! "); + } + + return &one_call_view; +} + +static Evas_Object *__callui_view_single_call_create_contents(void *data, char *grpname) +{ + if (data == NULL) { + err("ERROR"); + return NULL; + } + callui_app_data_t *ad = (callui_app_data_t *)data; + Evas_Object *eo = NULL; + + /* load edje */ + eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname); + if (eo == NULL) + return NULL; + + return eo; +} + +void __callui_view_single_more_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + call_view_data_t *vd = (call_view_data_t *)data; + CALLUI_RETURN_IF_FAIL(vd != NULL); + _callui_load_more_option(vd); + return; +} + +static void __callui_view_single_call_draw_screen(callui_app_data_t *ad, Evas_Object *eo, void *data) +{ + dbg("__callui_view_single_call_draw_screen"); + + call_view_data_t *vd = (call_view_data_t *)data; + incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv; + call_data_t *call_data = NULL; + char *file_path = NULL; + Eina_Bool is_held = EINA_FALSE; + char *sim_name = NULL; + char status_txt[128 + 1] = {0, }; + + if (ad->active) { + call_data = ad->active; + is_held = EINA_FALSE; + } else { + call_data = ad->held; + is_held = EINA_TRUE; + } + if (call_data == NULL) { + dbg("call Data is NULL"); + return; + } + + file_path = call_data->call_ct_info.caller_id_path; + + sec_dbg("file_path: %s", file_path); + + if (call_data->is_emergency == EINA_TRUE) { + elm_object_signal_emit(priv->caller_info, "set_emergency_mode", ""); + } else { + if (strcmp(file_path, "default") != 0) { + _callui_show_caller_id(priv->caller_info, file_path, FALSE); + } + } + + if (is_held) { + dbg("=================HOLD======================"); + evas_object_show(priv->held_call_ly); + elm_object_part_content_set(priv->contents, "resume_icon_swallow", priv->held_call_ly); + snprintf(status_txt, sizeof(status_txt), _("IDS_CALL_BODY_ON_HOLD_ABB")); + _callui_show_caller_info_status(ad, status_txt, EINA_FALSE); + } else { + dbg("=================UNHOLD======================"); + evas_object_hide(priv->held_call_ly); + elm_object_part_content_unset(priv->contents, "resume_icon_swallow"); + _callui_common_update_call_duration(call_data->start_time); + } + + char *call_name = call_data->call_ct_info.call_disp_name; + char *disp_number = NULL; + if (strlen(call_data->call_disp_num) > 0) { + disp_number = call_data->call_disp_num; + } else { + disp_number = call_data->call_num; + } + + if (call_data->is_emergency == EINA_TRUE) { + call_name = _("IDS_COM_BODY_EMERGENCY_NUMBER"); + disp_number = ""; + } + + if (strlen(call_name) == 0) { + _callui_show_caller_info_name(ad, disp_number, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "1line", "caller_name"); + } else if (call_data->is_emergency == EINA_TRUE) { + _callui_show_caller_info_name(ad, call_name, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "1line", "caller_name"); + } else { + _callui_show_caller_info_name(ad, call_name, EINA_FALSE); + _callui_show_caller_info_number(ad, disp_number, EINA_FALSE); + elm_object_signal_emit(priv->caller_info, "2line", "caller_name"); + } + + _callui_create_top_third_button(ad); + + if (is_held) { + _callui_create_top_second_button_disabled(ad); + _callui_create_bottom_second_button_disabled(ad); + + } else { + _callui_create_top_second_button(ad); + _callui_create_bottom_second_button(ad); + } + + _callui_create_bottom_first_button(ad); + _callui_create_top_first_button(ad); + _callui_create_bottom_third_button(ad); + + elm_object_signal_emit(priv->contents, "SHOW_EFFECT", "ALLBTN"); + if (priv->contents) { + eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb); + } + eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb, vd); + _callui_create_end_call_button(priv->contents, vd); + evas_object_show(eo); +} + +static int __callui_view_single_call_oncreate(call_view_data_t *vd, unsigned int param1, void *param2, void *appdata) +{ + dbg("incall view create"); + + incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv; + callui_app_data_t *ad = (callui_app_data_t *) appdata; + call_data_t *call_data = NULL; + + if (ad->active) { + call_data = ad->active; + } else { + call_data = ad->held; + } + if (call_data == NULL) { + err("call data is null"); + return -1; + } + + if (ad->main_ly) { + priv->contents = __callui_view_single_call_create_contents(ad, GRP_MAIN_LY); + elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents); + + /* Extra Volume Layout */ + priv->extra_vol_ly = __callui_view_single_call_create_contents(ad, GRP_EXTRA_VOLUME); + + priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region"); + if (!priv->btn_ly) { + priv->btn_ly = __callui_view_single_call_create_contents(ad, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + } + + priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info"); + if (!priv->caller_info) { + priv->caller_info = __callui_view_single_call_create_contents(ad, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + } + + evas_object_name_set(priv->contents, VIEW_SINGLE_CALL_LAYOUT_ID); + dbg("[========== ONEVIEW: priv->contents Addr : [%p] ==========]", priv->contents); + + /*create keypad layout*/ + _callui_keypad_create_layout(ad); + } else { + err("ERROR"); + return -1; + } + + __callui_view_single_call_onshow(vd, ad); + + if (ad->lock_screen_handle == NULL) { + ad->lock_screen_handle = _callui_lock_screen_create_layout(vd); + } else if (_callui_lock_screen_is_lockscreen_shown() == FALSE) { + _callui_lock_screen_show_layout(ad->lock_screen_handle); + } + + return 0; +} + +static int __callui_view_single_call_onupdate(call_view_data_t *view_data, void *update_data) +{ + dbg("incall view update"); + callui_app_data_t *ad = _callui_get_app_data(); + __callui_view_single_call_onshow(view_data, ad); + return 0; +} + +static int __callui_view_single_call_onhide(call_view_data_t *view_data) +{ + dbg("incall view hide"); + callui_app_data_t *ad = _callui_get_app_data(); + + evas_object_hide(ad->main_ly); + return 0; +} + +static int __callui_view_single_call_onshow(call_view_data_t *view_data, void *appdata) +{ + dbg("incall view show"); + callui_app_data_t *ad = (callui_app_data_t *)appdata; + incall_one_view_priv_t *priv = (incall_one_view_priv_t *)view_data->priv; + + __callui_view_single_call_draw_screen(ad, priv->contents, view_data); + + evas_object_hide(ad->main_ly); + evas_object_show(ad->main_ly); + + return 0; +} + +static int __callui_view_single_call_ondestroy(call_view_data_t *view_data) +{ + dbg("incall view destroy"); + callui_app_data_t *ad = _callui_get_app_data(); + CALLUI_RETURN_VALUE_IF_FAIL(ad, -1); + + + call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_ONECALL_VIEW); + CALLUI_RETURN_VALUE_IF_FAIL(vd, -1); + incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv; + + if (priv != NULL) { + if (ad->ctxpopup) { + elm_ctxpopup_dismiss(ad->ctxpopup); + ad->ctxpopup = NULL; + } + + if (priv->extra_vol_ly) { + evas_object_del(priv->extra_vol_ly); + priv->extra_vol_ly = NULL; + } + + if (priv->held_call_ly) { + evas_object_del(priv->held_call_ly); + priv->held_call_ly = NULL; + } + + /*Delete keypad layout*/ + _callui_keypad_delete_layout(ad); + + if (priv->contents) { + eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb); + _callui_common_reset_main_ly_text_fields(priv->contents); + } + elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN"); + + free(priv); + priv = NULL; + } + + _callvm_reset_call_view_data(ad, VIEW_INCALL_ONECALL_VIEW); + + dbg("complete destroy one view"); + return 0; +} + +static int __callui_view_single_call_onRotate(call_view_data_t *view_data) +{ +#if 0 + CALLUI_DEBUG(DEBUG, "*** Single Call view Rotate ***"); + incall_one_view_priv_t *priv = view_data->priv; + callui_app_data_t *ad = _vcui_get_app_data(); + call_data_t *call_data = _vcui_doc_get_first_call_data_from_list(); + char *file_path = _vcui_doc_get_caller_id_file_path(call_data); + + if (call_data == NULL) { + CALLUI_DEBUG(DEBUG, "call Data is NULL"); + return -1; + } + + if (strcmp(file_path, "default") != 0) { + _vcui_show_caller_id(priv->caller_info, file_path, FALSE); + /*put blur effect on full-cid*/ + } else if (_vcui_doc_get_is_favorite_contact(call_data)) { + _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(call_data)); + } + + if (IS_PORTRAIT_MODE(ad->rotate_angle)) { /* Portrait Mode */ + elm_object_signal_emit(priv->contents, "set_portrait", "incall_layout"); + elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN"); + elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout"); + elm_object_signal_emit(priv->btn_ly, "set_portrait", "btn_layout"); + } else { /* Landscape Mode */ + elm_object_signal_emit(priv->contents, "set_landscape", "incall_layout"); + elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT_LANDSCAPE", "ALLBTN"); + elm_object_signal_emit(priv->caller_info, "set_landscape", "caller_info_layout"); + elm_object_signal_emit(priv->btn_ly, "set_landscape", "btn_layout"); + } + +#ifdef _VC_NOISE_REDUCTION + _vc_ui_view_single_call_set_noise_reduction_icon(view_data); +#endif +#ifdef _VC_SOUND_EQ + _vc_ui_view_single_call_set_sound_eq_icon(view_data); +#endif + + _vcui_keypad_update_after_rotate(priv->contents, view_data); + + evas_object_show(ad->win_main); +#endif + return 0; +} + diff --git a/src/callui.c b/src/callui.c new file mode 100755 index 0000000..40e5ac9 --- /dev/null +++ b/src/callui.c @@ -0,0 +1,974 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#ifdef _CALLUI_SIGNAL_HANDLER +#include +#endif + +#include + +#include "sys/socket.h" +#include "sys/un.h" +#include "callui.h" +#include "callui-view-elements.h" +#include "callui-common.h" +#include +#include +#include "callui-view-quickpanel.h" +#include "callui-view-layout-wvga.h" + +#define EARSET_KEY_LONG_PRESS_TIMEOUT 1.0 + +/* Need to remove these global variables and put in app data structure or in other suitable structure */ +#ifdef _CALLUI_SIGNAL_HANDLER +#define CALLUI_SIG_NUM 12 +static struct sigaction callui_app_sigact; +static struct sigaction callui_app_sigoldact[CALLUI_SIG_NUM]; +static int callui_app_sig_to_handle[] = { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGQUIT, SIGSEGV, SIGSYS, SIGTRAP, SIGXCPU, SIGXFSZ, SIGTERM, SIGPIPE }; +#endif + +static bool _callui_app_create_layout(void *data); +static Eina_Bool __callui_app_win_hard_key_down_cb(void *data, int type, void *event); +static Eina_Bool __callui_app_win_hard_key_up_cb(void *data, int type, void *event); + +static callui_app_data_t g_ad; + +#ifdef _CALLUI_SIGNAL_HANDLER +/** +* This function serves as the signal handler function for the SIGSEGV Signal +* +* @return nothing +* @param[in] signal_no Signal Number +* @param[in] signal_info Information associated with the generated signal +* @param[in] signal_context Signal Context Info +*/ +static void __callui_exit_handler(void) +{ + err("\n __callui_exit_handler \n"); + /*syslog (LOG_INFO, "[VOICE-CALL] __vcui_app_exit_handler\n"); */ +} + +/** +* This function serves as the signal handler function for the SIGSEGV Signal +* +* @return nothing +* @param[in] signal_no Signal Number +* @param[in] signal_info Information associated with the generated signal +* @param[in] signal_context Signal Context Info +*/ +static void __callui_sigsegv_handler(int signal_no) +{ + int i = 0; + + err("SISEGV Received, Signal Number: :%d \n", signal_no); + + + for (i = 0; i < CALLUI_SIG_NUM; i++) { + sigaction(callui_app_sig_to_handle[i], &(callui_app_sigoldact[i]), NULL); + } + + raise(signal_no); /*raise signal intentionally (pass the same signal) */ +} + +/** +* This function registers a user space signal handler for the signal SIGSEGV (Signal #11) +* +* @return nothing +*/ +static void __callui_register_sigsegv_handler() +{ + dbg(".."); + + int i = 0; + callui_app_sigact.sa_flags = SA_NOCLDSTOP; + callui_app_sigact.sa_handler = (void *)__callui_sigsegv_handler; + sigemptyset(&callui_app_sigact.sa_mask); + + for (; i < CALLUI_SIG_NUM; i++) { + sigaction(callui_app_sig_to_handle[i], &callui_app_sigact, &(callui_app_sigoldact[i])); + } + +} +#endif + +static call_data_t *__callui_call_data_new(char *number) +{ + dbg("__calldoc_call_data_new()"); + call_data_t *call_data = NULL; + if (NULL == number) { + warn("number is NULL"); + } + + call_data = (call_data_t *)calloc(1, sizeof(call_data_t)); + if (NULL == call_data) { + warn("failed to alloc memory"); + return NULL; + } + + call_data->call_id = NO_HANDLE; + call_data->member_count = 0; + if (number) { + g_strlcpy(call_data->call_num, number, CALLUI_PHONE_NUMBER_LENGTH_MAX); + } + call_data->call_ct_info.person_id = -1; + + return call_data; +} + +static void __callui_app_win_key_grab(callui_app_data_t *ad) +{ + int result = 0; + result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_MEDIA, EXCLUSIVE_GRAB); + if (result) + dbg("KEY_MEDIA key grab failed"); + + if (_callui_common_is_powerkey_mode_on()) { + result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_POWER, EXCLUSIVE_GRAB); + } else { + result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_POWER, SHARED_GRAB); + } + if (result) { + dbg("KEY_POWER key grab failed"); + } + + if (ad->downkey_handler == NULL) + ad->downkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __callui_app_win_hard_key_down_cb, ad); + if (ad->upkey_handler == NULL) + ad->upkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, __callui_app_win_hard_key_up_cb, ad); +} + +static void __callui_update_call_data(call_data_t **call_data, cm_call_data_t* cm_call_data) +{ + dbg("__callui_update_call_data()"); + call_data_t *tmp_call_data = NULL; + char *call_number = NULL; + int person_id = -1; + if (NULL == cm_call_data) { + warn("cm_call_data is NULL"); + g_free(*call_data); + *call_data = NULL; + return; + } + + cm_call_data_get_call_number(cm_call_data, &call_number); + tmp_call_data = __callui_call_data_new(call_number); + CALLUI_RETURN_IF_FAIL(tmp_call_data); + + cm_call_data_get_call_id(cm_call_data, &tmp_call_data->call_id); + cm_call_data_get_call_member_count(cm_call_data, &tmp_call_data->member_count); + cm_call_data_get_call_direction(cm_call_data, &tmp_call_data->call_direction); + cm_call_data_get_call_domain(cm_call_data, &tmp_call_data->call_domain); + cm_call_data_get_call_state(cm_call_data, &tmp_call_data->call_state); + cm_call_data_get_call_type(cm_call_data, &tmp_call_data->call_type); + cm_call_data_is_emergency_call(cm_call_data, &tmp_call_data->is_emergency); + cm_call_data_get_start_time(cm_call_data, &tmp_call_data->start_time); + + /* Check for Contact Index and accordingly update the contact information if the contact is saved */ + cm_call_data_get_person_id(cm_call_data, &person_id); + if ((person_id != -1) && (tmp_call_data->call_ct_info.person_id == -1)) { + dbg("contact exists with index:[%d]", person_id); + _callui_common_get_contact_info(person_id, &tmp_call_data->call_ct_info); + } + + if (strlen(tmp_call_data->call_ct_info.caller_id_path) <= 0) { + g_strlcpy(tmp_call_data->call_ct_info.caller_id_path, "default", CALLUI_IMAGE_PATH_LENGTH_MAX); + } + + g_free(*call_data); + *call_data = tmp_call_data; + + return; +} + +static void __callui_update_all_call_data(callui_app_data_t *ad, cm_call_event_data_t* call_state_data) +{ + cm_call_data_t *call_data = NULL; + CALLUI_RETURN_IF_FAIL(ad); + CALLUI_RETURN_IF_FAIL(call_state_data); + dbg("doc_data active!"); + cm_call_event_data_get_active_call(call_state_data, &call_data); + __callui_update_call_data(&(ad->active), call_data); + dbg("doc_data incom!"); + cm_call_event_data_get_incom_call(call_state_data, &call_data); + __callui_update_call_data(&(ad->incom), call_data); + dbg("doc_data held!"); + cm_call_event_data_get_held_call(call_state_data, &call_data); + __callui_update_call_data(&(ad->held), call_data); +} + +static void __callui_process_incoming_call(callui_app_data_t *ad, unsigned int call_id) +{ + dbg(".."); + cm_call_data_t *cm_incom = NULL; + + CALLUI_RETURN_IF_FAIL(ad); + + cm_get_all_calldata(ad->cm_handle, &cm_incom, NULL, NULL); + CALLUI_RETURN_IF_FAIL(cm_incom); + + __callui_update_call_data(&(ad->incom), cm_incom); + _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, ad); + + cm_call_data_free(cm_incom); + return; +} + +static void __callui_process_outgoing_call(callui_app_data_t *ad, char *number) +{ + sec_dbg("number is (%s)", number); + CALLUI_RETURN_IF_FAIL(ad); + + if (CM_ERROR_NONE != cm_dial_call(ad->cm_handle, number, CM_CALL_TYPE_VOICE, CM_SIM_SLOT_DEFAULT_E)) { + err("cm_dial_call failed!!"); + _callvm_terminate_app_or_view_change(ad); + return; + } + ad->active = __callui_call_data_new(number); + return; +} + +static void __callui_call_event_cb(cm_call_event_e call_event, cm_call_event_data_t *call_state_data, void *user_data) +{ + CALLUI_RETURN_IF_FAIL(call_state_data); + info("Call event changed!! %d", call_event); + callui_app_data_t *ad = (callui_app_data_t *)user_data; + CALLUI_RETURN_IF_FAIL(ad); + + cm_call_event_data_get_sim_slot(call_state_data, &ad->sim_slot); + switch (call_event) { + case CM_CALL_EVENT_ACTIVE: + _callui_common_dvc_control_lcd_state(LCD_ON_UNLOCK); + __callui_update_all_call_data(ad, call_state_data); + _callui_common_create_duration_timer(); + _callvm_view_auto_change(ad); + if (ad->speaker_status == EINA_TRUE) { + _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET); + } + break; + case CM_CALL_EVENT_IDLE: + { + unsigned int call_id = 0; + cm_call_data_t *incom_call = NULL; + cm_call_data_t *active_call = NULL; + cm_call_data_t *held_call = NULL; + + _callui_common_dvc_control_lcd_state(LCD_ON_UNLOCK); + + cm_call_event_data_get_call_id(call_state_data, &call_id); + cm_call_event_data_get_active_call(call_state_data, &active_call); + cm_call_event_data_get_incom_call(call_state_data, &incom_call); + cm_call_event_data_get_held_call(call_state_data, &held_call); + if ((ad->incom) && (call_id == ad->incom->call_id)) { + __callui_update_all_call_data(ad, call_state_data); + _callvm_terminate_app_or_view_change(ad); + } else if (incom_call == NULL && active_call == NULL && held_call == NULL) { + _callui_common_delete_duration_timer(); + _callvm_view_change(VIEW_ENDCALL_VIEW, call_id, NULL, ad); + if (ad->lock_screen_handle) { + _callui_lock_screen_hide_layout(ad->lock_screen_handle); + _callui_lock_screen_stop_timer(); + } + __callui_update_all_call_data(ad, call_state_data); + } else { + __callui_update_all_call_data(ad, call_state_data); + _callvm_terminate_app_or_view_change(ad); + } + } + break; + case CM_CALL_EVENT_INCOMING: + { + _callui_common_dvc_control_lcd_state(LCD_ON_LOCK); + __callui_update_all_call_data(ad, call_state_data); + _callvm_view_auto_change(ad); + } + break; + case CM_CALL_EVENT_DIALING: + case CM_CALL_EVENT_HELD: + case CM_CALL_EVENT_RETRIEVED: + case CM_CALL_EVENT_SWAPPED: + case CM_CALL_EVENT_JOIN: + case CM_CALL_EVENT_SPLIT: + __callui_update_all_call_data(ad, call_state_data); + _callvm_view_auto_change(ad); + break; + default: + break; + } + + dbg("Call event changed cb done"); + return; +} + +static void __callui_audio_state_changed_cb(cm_audio_state_type_e audio_state, void *user_data) +{ + callui_app_data_t *ad = (callui_app_data_t *)user_data; + CALLUI_RETURN_IF_FAIL(ad); + dbg("__callui_audio_state_changed_cb, audio_state[%d]", audio_state); + switch (audio_state) { + case CM_AUDIO_STATE_SPEAKER_E: + _callui_update_speaker_btn(ad, EINA_TRUE); + _callui_update_headset_btn(ad, EINA_FALSE); + if ((_callui_common_is_extra_volume_available() == EINA_TRUE) && (ad->extra_volume_status_force_stop == EINA_TRUE)) { + int retextravol = -1; + retextravol = cm_set_extra_vol(ad->cm_handle, TRUE); + if (retextravol == CM_ERROR_NONE) { + ad->extra_volume_status_force_stop = EINA_FALSE; + _callui_update_extra_vol_btn(ad, EINA_TRUE); + } + } + break; + case CM_AUDIO_STATE_RECEIVER_E: + _callui_update_speaker_btn(ad, EINA_FALSE); + _callui_update_headset_btn(ad, EINA_FALSE); + if ((_callui_common_is_extra_volume_available() == EINA_TRUE) && (ad->extra_volume_status_force_stop == EINA_TRUE)) { + int retextravol = -1; + retextravol = cm_set_extra_vol(ad->cm_handle, TRUE); + if (retextravol == CM_ERROR_NONE) { + ad->extra_volume_status_force_stop = EINA_FALSE; + _callui_update_extra_vol_btn(ad, EINA_TRUE); + } + } + break; + case CM_AUDIO_STATE_EARJACK_E: + { + _callui_update_speaker_btn(ad, EINA_FALSE); + _callui_update_headset_btn(ad, EINA_FALSE); + if (ad->extra_volume_status == EINA_TRUE) { + dbg("Disable extra volume when earphone connected and speaker is turned off"); + int ret = -1; + ret = cm_set_extra_vol(ad->cm_handle, FALSE); + if (ret == CM_ERROR_NONE) { + ad->extra_volume_status_force_stop = EINA_TRUE; + _callui_create_extravolume_notify_popup(); + _callui_update_extra_vol_btn(ad, EINA_FALSE); + } else { + err("cm_set_extra_vol() is failed"); + } + } + break; + } + case CM_AUDIO_STATE_BT_E: + _callui_update_speaker_btn(ad, EINA_FALSE); + _callui_update_headset_btn(ad, EINA_TRUE); + break; + case CM_AUDIO_STATE_NONE_E: + default: + err("unhandled state[%d]", audio_state); + break; + } + + return; +} + +static void __callui_call_list_init(callui_app_data_t *ad) +{ + dbg(".."); + CALLUI_RETURN_IF_FAIL(ad); + + ad->active = NULL; + ad->incom = NULL; + ad->held = NULL; + ad->active_incoming = false; + ad->multi_call_list_end_clicked = false; + + return; +} + + +static void __callui_bt_init() +{ + int ret = BT_ERROR_NONE; + ret = bt_initialize(); + if (BT_ERROR_NONE != ret) { + err("bt_init() failed [%d]", ret); + return; + } +} + + +static gboolean __callui_init(callui_app_data_t *ad) +{ + dbg(".."); + + if (CM_ERROR_NONE != cm_init(&ad->cm_handle)) { + err("cm_init() err"); + return false; + } + cm_set_call_event_cb(ad->cm_handle, __callui_call_event_cb, ad); + cm_set_audio_state_changed_cb(ad->cm_handle, __callui_audio_state_changed_cb, ad); + + __callui_bt_init(); + + ad->view_manager_handle = _callvm_init(); + return true; +} + +static void __callui_win_delete_request_cb(void *data, Evas_Object *obj, void *event_info) +{ + /* To make your application go to background, + Call the elm_win_lower() instead + Evas_Object *win = (Evas_Object *) data; + elm_win_lower(win); */ + elm_exit(); +} + +static Evas_Object *__callui_create_main_win(callui_app_data_t *ad) +{ + /* + * Widget Tree + * Window + * - conform + * - layout main + * - naviframe */ + + Evas_Object *eo = NULL;; + const char *str = "mobile"; + Evas_Object *conform = NULL; + eo = (Evas_Object *)app_get_preinitialized_window(PACKAGE); + if (eo == NULL) { + dbg("Create window"); + eo = elm_win_add(NULL, PACKAGE, ELM_WIN_BASIC); + elm_win_alpha_set(eo, EINA_TRUE); + elm_win_fullscreen_set(eo, EINA_FALSE); + } else { + dbg("Preinitialized window"); + } + + if (eo) { + elm_win_profiles_set(eo, &str, 1); /* Desktop mode only */ + elm_win_title_set(eo, PACKAGE); + evas_object_smart_callback_add(eo, "delete,request", __callui_win_delete_request_cb, NULL); + elm_config_engine_set("software_x11"); + + ecore_x_window_size_get(ecore_x_window_root_first_get(), &ad->root_w, &ad->root_h); + dbg("root_w = %d, root_h = %d..", ad->root_w, ad->root_h); + evas_object_resize(eo, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT)); + + elm_win_center(eo, EINA_FALSE, EINA_TRUE); + evas_object_move(eo, 0, 0); + elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(eo, ELM_WIN_INDICATOR_TRANSLUCENT); + elm_win_conformant_set(eo, EINA_TRUE); + efl_util_set_window_opaque_state(eo, 1); + + ad->bg = (Evas_Object *)app_get_preinitialized_background(); + if (!ad->bg) + ad->bg = elm_bg_add(eo); + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(ad->bg); + elm_object_part_content_set(eo, "elm.swallow.bg", ad->bg); + + conform = (Evas_Object *)app_get_preinitialized_conformant(); + if (conform == NULL) { + conform = elm_conformant_add(eo); + } + elm_object_signal_emit(conform, "elm,state,indicator,overlap", "elm"); + evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(eo, conform); + evas_object_show(conform); + ad->win_conformant = conform; + + } + + return eo; +} + +static Evas_Object *__callui_create_base_layout(callui_app_data_t *ad) +{ + dbg(".."); + CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL); + Evas_Object *ly = NULL; + + ly = elm_layout_add(ad->win_conformant); + if (ly == NULL) { + err("ly is NULL"); + return NULL; + } + + elm_layout_theme_set(ly, "layout", "application", "default"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(ly); + + return ly; +} + +static void __callui_app_text_classes_set() +{ + edje_text_class_set("ATO001", "R", 40); + edje_text_class_set("ATO002", "R", 64); + edje_text_class_set("ATO003", "R", 40); + edje_text_class_set("ATO004", "R", 24); + edje_text_class_set("ATO005", "R", 24); + edje_text_class_set("ATO006", "R", 24); + edje_text_class_set("ATO007", "R", 24); + edje_text_class_set("ATO008", "R", 24); + edje_text_class_set("ATO010", "R", 30); + edje_text_class_set("ATO011", "R", 30); + edje_text_class_set("ATO012", "R", 30); + edje_text_class_set("ATO013", "R", 30); + edje_text_class_set("ATO014", "R", 30); + edje_text_class_set("ATO016", "R", 24); + edje_text_class_set("ATO017", "R", 24); + edje_text_class_set("ATO027", "R", 26); + edje_text_class_set("ATO028", "R", 24); + edje_text_class_set("ATO030", "R", 42); + edje_text_class_set("ATO017", "R", 30); +} + +static bool _callui_app_create(void *data) +{ + dbg(".."); + callui_app_data_t *ad = data; + int ret = 0; + + _callui_common_dvc_control_lcd_state(LCD_OFF_SLEEP_LOCK); + + elm_config_preferred_engine_set("opengl_x11"); + ret = __callui_init(ad); + if (!ret) { + err("__callui_init failed"); + elm_exit(); + return FALSE; + } + + _callui_app_create_layout(ad); + + elm_theme_extension_add(NULL, CALL_THEME); + elm_theme_extension_add(NULL, CALL_GENLIST_THEME); + + +#ifdef _CALLUI_SIGNAL_HANDLER + __callui_register_sigsegv_handler(); + atexit(__callui_exit_handler); +#endif + + return true; +} + +static bool _callui_app_create_layout(void *data) +{ + callui_app_data_t *ad = data; + + /* Set base scale */ + elm_app_base_scale_set(2.6); + + ad->win = __callui_create_main_win(ad); + if (ad->win == NULL) { + err("__callui_create_main_win failed"); + return FALSE; + } + ad->main_ly = __callui_create_base_layout(ad); + if (ad->main_ly == NULL) { + err("__callui_create_base_layout failed"); + return FALSE; + } + elm_object_content_set(ad->win_conformant, ad->main_ly); + + __callui_app_text_classes_set(); + + ad->evas = evas_object_evas_get(ad->win); + __callui_app_win_key_grab(ad); + + ad->quickpanel_scroll_state = ecore_x_atom_get("_E_MOVE_PANEL_SCROLLABLE_STATE"); + return true; +} + + +static void __callui_bt_deinit() +{ + int ret = BT_ERROR_NONE; + ret = bt_deinitialize(); + if (BT_ERROR_NONE != ret) { + err("bt_deinit() failed [%d]", ret); + return; + } +} + + +static void _callui_app_terminate(void *data) +{ + callui_app_data_t *ad = data; + Evas_Object *contents = NULL; + Evas_Object *caller_info = NULL; + Evas_Object *btn_ly = NULL; + + contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content"); + if (contents) { + caller_info = elm_object_part_content_get(contents, "caller_info"); + if (caller_info) { + evas_object_del(caller_info); + caller_info = NULL; + } + + btn_ly = elm_object_part_content_get(contents, "btn_region"); + if (btn_ly) { + evas_object_del(btn_ly); + btn_ly = NULL; + } + + evas_object_del(contents); + contents = NULL; + } + + if (ad->downkey_handler) { + ecore_event_handler_del(ad->downkey_handler); + ad->downkey_handler = NULL; + } + if (ad->upkey_handler) { + ecore_event_handler_del(ad->upkey_handler); + ad->upkey_handler = NULL; + } + + if (ecore_x_display_get() && elm_win_xwindow_get(ad->win)) { + utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT); + utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_POWER); + utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_MEDIA); + } + + if (ad->main_ly) { + evas_object_del(ad->main_ly); + ad->main_ly = NULL; + } + + __callui_bt_deinit(); + + cm_unset_audio_state_changed_cb(ad->cm_handle); + cm_unset_call_event_cb(ad->cm_handle); +} + +static void _callui_app_pause(void *data) +{ + dbg(".."); +} + +static void _callui_app_resume(void *data) +{ + dbg(".."); + _callui_common_set_quickpanel_scrollable(EINA_TRUE); +} + +static void _callui_app_service(app_control_h app_control, void *data) +{ + dbg(".."); + callui_app_data_t *ad = data; + char *tmp = NULL; + int ret = 0; + unsigned int call_id = -1; + char *uri_bundle = NULL; + char *operation = NULL; + + if (_callvm_get_top_view_id(ad->view_manager_handle) == -1) { + err("view_manager_handle->viewtop -1 "); + __callui_call_list_init(ad); + _callui_common_dvc_control_lcd_state(LCD_OFF_SLEEP_LOCK); + } + + evas_object_color_set(ad->bg, 255, 255, 255, 255); + + ret = app_control_get_operation(app_control, &operation); + CALLUI_RETURN_IF_FAIL(ret == APP_CONTROL_ERROR_NONE); + CALLUI_RETURN_IF_FAIL(operation != NULL); + + + ret = app_control_get_uri(app_control, &uri_bundle); + CALLUI_RETURN_IF_FAIL(ret == APP_CONTROL_ERROR_NONE); + + sec_warn("uri_bundle: [%s]", uri_bundle); + if ((strcmp(operation, APP_CONTROL_OPERATION_CALL) == 0) && + (strncmp(uri_bundle, "tel:", 4) == 0)) { + if ((strncmp(uri_bundle, "tel:MT", 6) == 0)) { + _callui_common_dvc_control_lcd_state(LCD_ON_LOCK); + ret = app_control_get_extra_data(app_control, "handle", &tmp); + if (ret != APP_CONTROL_ERROR_NONE) { + err("app_control_get_extra_data failed"); + } + if (tmp) { + dbg("handle: [%s]", tmp); + call_id = atoi(tmp); + g_free(tmp); + tmp = NULL; + } else { + err("handle val is NULL"); + return; + } + ret = app_control_get_extra_data(app_control, "sim_slot", &tmp); + if (ret != APP_CONTROL_ERROR_NONE) { + err("app_control_get_extra_data failed"); + } + if (tmp) { + dbg("sim_slot: [%s]", tmp); + ad->sim_slot = atoi(tmp); + g_free(tmp); + tmp = NULL; + } + __callui_process_incoming_call(ad, call_id); + } else { + tmp = (char *)uri_bundle + 4; + sec_dbg("number: [%s]", tmp); + if (tmp) { + sec_dbg("number: [%s]", tmp); + if (!ad->main_ly) { + _callui_app_create_layout(ad); + } + evas_object_resize(ad->win, ad->root_w, ad->root_h); + __callui_process_outgoing_call(ad, tmp); + } else { + err("number val is NULL"); + } + } + } else if (strcmp(operation, APP_CONTROL_OPERATION_DEFAULT) == 0) { + if (!ad->main_ly) { + _callui_app_create_layout(ad); + } + __callui_process_incoming_call(ad, call_id); + } else if (strcmp(operation, APP_CONTROL_OPERATION_DURING_CALL) == 0) { + if (!ad->main_ly) { + _callui_app_create_layout(ad); + } + ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL); + } else if (strcmp(operation, APP_CONTROL_OPERATION_MESSAGE_REJECT) == 0) { + /* TODO Implement reject with message button functionality */ + } else if (strcmp(operation, APP_CONTROL_OPERATION_END_CALL) == 0) { + cm_reject_call(ad->cm_handle); + } + + if (operation) { + g_free(operation); + operation = NULL; + } + + if (uri_bundle) { + g_free(uri_bundle); + uri_bundle = NULL; + } + +} + +callui_app_data_t *_callui_get_app_data() +{ + return &g_ad; +} + + +CALLUI_EXPORT_API int main(int argc, char *argv[]) +{ + dbg(".."); + ui_app_lifecycle_callback_s event_callback = {0,}; + + event_callback.create = _callui_app_create; + event_callback.terminate = _callui_app_terminate; + event_callback.pause = _callui_app_pause; + event_callback.resume = _callui_app_resume; + event_callback.app_control = _callui_app_service; + + memset(&g_ad, 0x0, sizeof(callui_app_data_t)); + + int ret = APP_ERROR_NONE; + + ret = ui_app_main(argc, argv, &event_callback, &g_ad); + if (ret != APP_ERROR_NONE) { + err("ui_app_main() is failed. err = %d", ret); + } + + return ret; +} + + +static Eina_Bool __callui_app_win_hard_key_up_cb(void *data, int type, void *event) +{ + dbg(".."); + gboolean bpowerkey_enabled = EINA_FALSE; + gboolean banswering_enabled = EINA_FALSE; + + callui_app_data_t *ad = (callui_app_data_t *)data; + Ecore_Event_Key *ev = event; + + if (ev == NULL) { + err("ERROR!!! ========= Event is NULL!!!"); + return 0; + } + + if (elm_win_xwindow_get(ad->win) != ev->event_window) { + err("Event window is not main window. Ignore event"); + return EINA_FALSE; + } + + dbg("Top view(%d)", _callvm_get_top_view_id(ad->view_manager_handle)); + + /*power key case */ + if (!strcmp(ev->keyname, CALLUI_KEY_POWER)) { + dbg("in keypower"); + bpowerkey_enabled = _callui_common_is_powerkey_mode_on(); + dbg("[KEY]KEY_POWER pressed, bpowerkey_enabled(%d)", bpowerkey_enabled); + if (bpowerkey_enabled == EINA_TRUE) { + if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_DIALLING_VIEW) { + if (ad->active) + cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE); + } else if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) { + /* ToDo: Stop Incoming ringtone alert to be implemented*/ + } else if ((_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_ONECALL_VIEW) + || (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_CONF_VIEW) + || (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_LIST_VIEW)) { + if (ad->active) + cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_ALL_CALLS); + else if (ad->held) + cm_end_call(ad->cm_handle, ad->held->call_id, CALL_RELEASE_TYPE_ALL_CALLS); + } else if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_SPLIT_VIEW) { + if (ad->active) + cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS); + } else { + dbg("nothing..."); + } + } else { + if (ad->incom && !ad->active && !ad->held) { + _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, ad); + } + /* ToDo: Stop Incoming ringtone alert to be implemented*/ + /* + if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) { + vcall_engine_stop_alert(); + ad->bmute_ringtone = EINA_TRUE; + } + if ((TRUE == _vcui_is_security_lock()) || (_vcui_get_idle_lock_type() != CALL_UNLOCK)) { + Ecore_X_Window focus_win = ecore_x_window_focus_get(); + if (ad->win_main!= NULL && focus_win == elm_win_xwindow_get(ad->win_main)) { + _vcui_app_win_set_noti_type(EINA_TRUE); + _vcui_view_common_set_quickpanel_scrollable(EINA_FALSE); + } + }*/ + } + } else if (!strcmp(ev->keyname, CALLUI_KEY_MEDIA)) { + /* todo*/ + dbg("in key-media"); + } else if (!strcmp(ev->keyname, CALLUI_KEY_VOLUMEUP) || !strcmp(ev->keyname, CALLUI_KEY_VOLUMEDOWN)) { + dbg("Handle Volume Up or Down key"); + if (ad->incom) { + cm_stop_alert(ad->cm_handle); + } + } else if (!strcmp(ev->keyname, CALLUI_KEY_SELECT) || !strcmp(ev->keyname, CALLUI_KEY_HOME)) { + dbg("in KEY_SELECT"); + int result = 0; + Ecore_X_Window focus_win = ecore_x_window_focus_get(); + result = utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT); + if (result) { + dbg("KEY_SELECT key ungrab failed"); + } else { + dbg("KEY_SELECT key ungrab success"); + } + if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) { + banswering_enabled = _callui_common_is_answering_mode_on(); + if (banswering_enabled == EINA_TRUE) { + int unhold_call_count = 0; + if (ad->active) { + unhold_call_count = ad->active->member_count; + } + dbg("Answering mode on and Home key pressed on MT screen"); + + if (unhold_call_count == 0) { + dbg("No Call Or Held call - Accept"); + cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL); + if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) + _callui_common_unlock_swipe_lock(); + } else if (ad->second_call_popup == NULL) { + dbg("Show popup - 2nd MT call - test volume popup"); + _callui_load_second_call_popup(ad); + } + } else { + int result = 0; + /* Grab home key event to keep incoming call view */ + result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT, TOP_POSITION_GRAB); + if (result) { + dbg("KEY_SELECT key ungrab failed"); + } + } + + } else { + if (ad->win != NULL && focus_win == elm_win_xwindow_get(ad->win)) { + /* ToDo: Use lock-screen interface to raise the home screen */ + _callui_common_win_set_noti_type(ad, EINA_FALSE); + /* todo: once quickpanel is implemented we have to enable this + _vcui_view_common_set_quickpanel_scrollable(EINA_TRUE); + */ + } + } + } else if (!strcmp(ev->keyname, KEY_BACK)) { + /* todo*/ + dbg("KEY_BACK section"); + } + + + ad->b_earset_key_longpress = EINA_FALSE; + + if (ad->earset_key_longpress_timer) { + ecore_timer_del(ad->earset_key_longpress_timer); + ad->earset_key_longpress_timer = NULL; + } + + return EINA_FALSE; +} + +static Eina_Bool __callui_app_win_earset_key_longpress_timer_cb(void *data) +{ + dbg(".."); + + callui_app_data_t *ad = (callui_app_data_t *)data; + + ad->b_earset_key_longpress = EINA_TRUE; + ad->earset_key_longpress_timer = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool __callui_app_win_hard_key_down_cb(void *data, int type, void *event) +{ + dbg(".."); + + callui_app_data_t *ad = (callui_app_data_t *)data; + Ecore_Event_Key *ev = event; + + if (ev == NULL) { + err("ERROR!!! ========= Event is NULL!!!"); + return EINA_FALSE; + } + + if (elm_win_xwindow_get(ad->win) != ev->event_window) { + err("Event window is not main window. Ignore event"); + return EINA_FALSE; + } + + if (_callvm_get_top_view_id(ad->view_manager_handle) == -1) { + dbg("ad->view_top is -1."); + return EINA_FALSE; + } + + if (!strcmp(ev->keyname, CALLUI_KEY_MEDIA)) { + ad->earset_key_longpress_timer = ecore_timer_add(EARSET_KEY_LONG_PRESS_TIMEOUT, __callui_app_win_earset_key_longpress_timer_cb, ad); + } else if (!strcmp(ev->keyname, CALLUI_KEY_SELECT)) { + /*todo*/ + } else if (!strcmp(ev->keyname, KEY_CANCEL)) { + /*todo*/ + } + dbg("End.."); + return EINA_FALSE; +}